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,其中11rm部分是寄存器,001是/ r字段并将指令转换为a or,000表示rm操作数是eax.FF是imm8.
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |