这个汇编代码是啥意思? [复制]
Posted
技术标签:
【中文标题】这个汇编代码是啥意思? [复制]【英文标题】:What is meant by this Assembly Code? [duplicate]这个汇编代码是什么意思? [复制] 【发布时间】:2013-11-20 08:11:01 【问题描述】:jmp *0x804a260(,%eax,4)
例如,eax
包含 2。这将需要 2 * 4 并将其添加到 0x804a260 给您 0x804a268,然后会跳转到该位置,对吗?
【问题讨论】:
自从我完成汇编程序以来已经很长时间了,但是从内存中 JMP 是跳转命令,所以在我看来它跳转到特定的指针/地址并正确传输 eax 寄存器的值跨度> 【参考方案1】:jmp *0x804a260(,%eax,4)
上面的 ATT 语法和下面 intel 语法一样:
jmp dword ptr [eax*4 + 0x804a260]
它计算内存位置eax*4 + 0x804a260
,从该位置读取一个双字,将其视为地址并跳转到该地址。
使用您的示例,假设 eax
是 2。计算的地址是 0x804a268
。此外,假设0x804a268
它包含0xbadf00d
。这意味着在执行jmp
之后,程序计数器eip
将尝试在内存位置0xbadf00d
处执行下一条指令。
【讨论】:
以上是关于这个汇编代码是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Domain=kCFErrorDomainCFNetwork Code=303 这个错误码是啥意思?