上网看了几个资料
总结如下:
org 0700h是告诉编译器,程序将会加载到0700h处。
当然编译器是无法决定程序被加载到哪里的。
如果没有这条命令,默认就会orng 0h
这样就会出现问题,比如写BOOT,BIOS默认把它加载到0700h处。然后来看下面的例子:
1 jmp CODE; 假设此指令占3个字节。 2 DATA: 3 V1 dw 0 4 V2 dw 1 5 CODE: 6 mov ax,[V1]
没有加 ORG 7c00H 时,相当于:
mov ax,[DS:3h]
加了 ORG 7c00h 时,相当于:
mov ax,[DS:7c03h]
明显可以看到其中的不同。
当然这是编译成bin的时候。如果编译成其它的ELF、PE,就是另外一回事了。