在Masm中,表示存儲單元的有標號和變量,形式相同,前者有冒號,后者沒有。偽指令offset和seg大部分教程中都表示取標號或變量的偏移地址和段地址,但稍有細微的區別:
假設有匯編代碼如下:
1 datasg segment 2 dataName dw 1234h 3 datasg ends 4 codesg segment 5 start:
6 mov ax,start 7 mov ax,offset start 8 mov ax,seg start 9 mov ax,dataName 10 mov ax,offset dataName 11 mov ax,seg dataName 12 mov ax,datasg 13 mov ax,offset datasg 14 mov ax,seg datasg 15 codesg ends 16 end start
其中6、7行效果是相同的,取偏移地址;第8行是取start所在位置的段地址。
其中9行是取dataName的值,10行是取dataName的偏移地址,11行是取dataName的段地址。
其中12和14行效果是相同,取段地址;13行是取該段的長度。