【发布时间】:2015-02-25 03:08:22
【问题描述】:
我正在尝试理解这条指令:
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
所以据我了解,如果这只是一个没有 源地址中的“ds:”前缀。然后 eax 应该持有 '0x0804c220' 价值。但是当我进一步执行时,eax 的值变成了
EAX: 0xB7FB7440
而不是期望值。所以我试图找到这种行为的解释。提前致谢。
【问题讨论】:
-
这是 x86 程序集,对吧?
-
@ScottHunter 说得对