我试图理解这个指令:试图在上下文w中理解这个指令。段寄存器
0x80496fa <yellow_preflight+18>: mov eax,ds:0x804c220
,这些都是在运行时的寄存器值:
EAX: 0x000000D2 EBX: 0xB7FB6FF4 ECX: 0xBFFFF438 EDX: 0xBFFFF3A4 o d I t S z A P c
ESI: 0x00000000 EDI: 0x00000000 EBP: 0xBFFFF468 ESP: 0xBFFFF450 EIP: 0x080496FF
CS: 0073 DS: 007B ES: 007B FS: 0000 GS: 0033 SS: 007B
所以对我的理解,如果这只是一个普通的MOV指令W/O源地址中的前缀 'ds:'。然后eax应该保持'0x0804c220' 值。但是当我进一步执行时,eax的值变为
EAX: 0xB7FB7440
而不是预期值。所以我试图找到这种行为的解释。提前致谢。
这是x86汇编,对不对? – 2015-02-24 18:24:13
@ScottHunter jap那 – Dirk 2015-02-24 18:26:48