一直都以为学汇编很简单啊,可是该死的书从一开始到结尾都没说过汇编没有固定的语法,有那么多汇编编译器!就有那么多种语法!?
比如最简单的例子:
1:MASM编译器:
assume cs:code
code segment
start:mov ax,offset ssdy
mov ax,4c00h
int 21h
ssdy:db 0
code ends
如果SSDY的偏移地址为000B,那么ax=000B;
但是!!但是!!如果把这个程序安装(复制代码)到其他内存地址
假如偏移地址不是0开头,那么ax不等于ssdy的实际位置,而且ax还是等于000B;
2:nasm
直接这样写了mov ax,ssdy,不需要offset这个伪指令了,不管程序安装到哪里
也不管偏移地址是否0开头,ax始终等于ssdy的偏移地址吗?
比如最简单的例子:
1:MASM编译器:
assume cs:code
code segment
start:mov ax,offset ssdy
mov ax,4c00h
int 21h
ssdy:db 0
code ends
如果SSDY的偏移地址为000B,那么ax=000B;
但是!!但是!!如果把这个程序安装(复制代码)到其他内存地址
假如偏移地址不是0开头,那么ax不等于ssdy的实际位置,而且ax还是等于000B;
2:nasm
直接这样写了mov ax,ssdy,不需要offset这个伪指令了,不管程序安装到哪里
也不管偏移地址是否0开头,ax始终等于ssdy的偏移地址吗?