汇编指令:mov word [LABEL_DESC_CODE32 + 2], ax,其中LABEL_DESC_CODE32 + 2是什么意思?
LABEL_DESC_CODE32 是一个宏,宏结构如下:
%macro Descriptor 3
dw %2 & 0FFFFh
dw %1 & 0FFFFh
db (%1 >> 16) & 0FFh
dw ((%2 >> 8) & 0F00h) | (%3 & 0F0FFh)
db (%1 >> 24) & 0FFh
%endmacro ;
追问:+2的意思是偏移地址是两个字节?
前面的word[LABEL_DESC_CODE32+2]中的word是啥意思?是不是在任何时候+2都是偏移2个字节,而不是2个字或其他的。那word或其他伪指令定义的[]中的地址有什么具体的作用吗?没明白你说的是啥意思?
答案:这条指令的功能是填充描述符的段基地址的低16位
也就是Descriptor结构的dw %1 & 0FFFFh
LABEL_DESC_CODE32是整个结构的首地址,+2正好指向dw %1 & 0FFFFh域
其他:[LABEL_DESC_CODE32 2], ax shr eax, 16;eax里的数右移n位(shl则; dd 0 ; GDT基地址 ;这里宏的dd 0是何用意? 重复 重复
上一个:汇编语言变量累加
下一个:怎么学习汇编语言?