1.OFFSET
①返回数据标号的偏移量,这个偏移量按字节计算,表示该数据标号距离数据段起始地址的距离。
.DATA
MyInt DWORD 0
MyByte BYTE 0
MyShort WORD 0
MyShortArr WORD 0,1,2,3,4,5,6,7,8,9,10
.CODE
Main PROC;过程开始
MOV EAX , OFFSET MyInt
MOV EAX , OFFSET MyByte
MOV EAX , OFFSET MyShort
INVOKE ExitProcess,0 ;函数调用
Main ENDP;过程结束
EAX的结果第一个 xxxxxxx0H
EAX的结果第二个 xxxxxxx4H
EAX的结果第三个 xxxxxxx5H
②也可以直接-偏移操作数
.DATA
MyInt DWORD 0
MyByte BYTE 0
MyShort WORD 0
MyShortArr WORD 0,1,2,3,4,5,6,7,8,9,10
MOV AX, [OFFSET MyShortArr + 6]
一个指针的解引用
会把3赋给AX
③
MOV EAX, OFFSET MyShortArr + 6
直接这样的话 会获得一个32位的偏移地址 就是一个指针