【问题标题】:What is the final output of eax for the final section (NOP) of the following x86 code snippet?以下 x86 代码片段的最后一部分 (NOP) 的 eax 最终输出是什么?
【发布时间】:2014-12-28 23:37:16
【问题描述】:

我不知道如何阅读这篇文章,对于一个我可能永远不会再接触到的关于汇编程序的问题,教程似乎很麻烦。

MOV $16457,%ebx
MOV $17458,%eax
MOV $7086,%ecx
CMP %eax,%ebx
JL L1
JMP L2
L1:
IMUL %eax,%ebx
ADD %eax,%ebx
MOV %ebx,%eax
SUB %ecx,%eax
JMP L3
L2:
IMUL %eax,%ebx
SUB %eax,%ebx
MOV %ebx,%eax
ADD %ecx,%eax
L3:
NOP

【问题讨论】:

  • 我建议您在调试器中单步执行此代码,例如。广发银行。或者,如果你最后只需要eax寄存器的状态,只需在最后一条指令(nop)或L3处设置一个断点,运行程序,当你到达断点时,检查值的eax。有关如何执行此操作的示例,请参见我对另一个问题的回答:stackoverflow.com/questions/20600780/…

标签: assembly x86


【解决方案1】:

L1 的代码计算 (16457*17458)+17458-7086 产生 287316678

【讨论】:

    猜你喜欢
    • 2020-02-14
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 2012-06-04
    相关资源
    最近更新 更多