sha*_*oth 2 x86 assembly disassembly
我正在审查Visual Studio 2012中某些程序的反汇编,并看到以下内容:
65F920F3 or eax, 0FFFFFFFFh
65F920F6 jmp 65F92157
Run Code Online (Sandbox Code Playgroud)
请注意or
.它占用地址F3-F5,这意味着它只占用三个字节.该eax
寄存器是四个字节,所以我假定不变0FFFFFFFFh
也是四个字节.
该指令如何适合三个字节?
因为常量0xFFFFFFFF aka -1适合有符号字节,所以它可以使用具有有符号字节的编码作为立即操作数.
所以那是
83 C8 FF
Run Code Online (Sandbox Code Playgroud)
83
是一般操作码aluop rm32, imm8
,ModRM字节C8
有组件11_001_000
,其中11
rm部分是寄存器,001
是/ r字段并将指令转换为a or
,000
表示rm操作数是eax
.FF
是imm8.
归档时间: |
|
查看次数: |
84 次 |
最近记录: |