我正在调试一个 C# 程序,反汇编视图显示如下:
0x006E2813 弹出 ebx
0x006E2814 弹出 esi
因此pop ebx
存储在 1 个字节中(在一个地址中),但是由于pop
指令本身是 1 个字节大,怎么可能呢?
或者它仅显示数据(ebx
),那么指令存储在哪里?
答案1
因为 pop 指令本身只有 1 个字节大,所以怎么会这样呢?
根据所使用的寄存器,它被编码为不同的字节。pop ebx
是 0x5B,pop esi
是 0x5E。有许多网站和手册记录了 x86 指令编码。