TEST 语句在汇编中什么含义?
发布网友
发布时间:2022-04-25 23:40
我来回答
共2个回答
热心网友
时间:2023-10-18 06:13
Label_01 LABEL FWORD
Label_02 LABEL DWORD
DD OFFSET ProtectedModeEntryPoint
DW LINEAR_CODE_SEL
Label_01和Label_02都是标号,在这里相当于变量,指向的是同一个地址。Label_01是FWORD类型,为6个字节,包含ProtectedModeEntryPoint的DWORD(4字节)和LINEAR_CODE_SEL的WORD(2字节)。在这里Label_01是用作实模式跳转到保护模式:
mov esi, offset Label_01
jmp fword ptr cs:[si]
其中ProtectedModeEntryPoint是跳转到保护模式的地址,而LINEAR_CODE_SEL则是ProtectedModeEntryPoint所在段的选择子(该保护模式段的选择子)。执行了JMP后,会将选择子加载到CS,而EIP则是ProtectedModeEntryPoint,从而真正进入保护模式。
Label_02和Label_01都指向同一地址,由于Label_02是DWORD类型,所以它实际上是指示ProtectedModeEntryPoint,即可以使用Label_02来读取或者改写ProtectedModeEntryPoint的值。
TopOfCar未知,在这段代码中没有使用,不能得到信息。
热心网友
时间:2023-10-18 06:14
TEST REG1, REG2
REG1 & REG2。
改变状态寄存器S,Z,P状态位,A位不确定。常接跳转指令。