这个汇编代码是啥意思? [复制]

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 这个错误码是啥意思?

perl 解释器的状态码是啥意思?

REST API:找不到数据的 HTTP 返回码是啥? [复制]

汇编语言中的call是啥意思

C5002 1204 自动矢量化原因码是啥意思?

下载的时候经常看到个MD5校验码,是啥意思,做啥用的?