gpt4 book ai didi

assembly - 与汇编代码的 .L2 标签相关联的代码是否在该段中按程序调用?

转载 作者:行者123 更新时间:2023-12-04 05:58:40 25 4
gpt4 key购买 nike

我正在尝试分析汇编中的以下代码。

sub $48, %esp
mov $56, 44(%esp)
mov $3, 40(%esp)
mov $0, 36(%esp)
mov 44(%esp), %eax
mov %eax, 32(%esp)
jmp .L2
.L3:
mov 32(%esp), %eax
sub 40(%esp), %eax
mov %eax, 32(%esp)
add $1, 36(%esp)
.L2:
mov 32(%esp), %eax
cmp 40(%esp), %eax
ja .L3
mov 36(%esp),%eax
mov 32(%esp),%edx

如果我的理解清楚,前6行正常调用,然后程序跳转到.L2:并执行代码。如果 R[eax] == R[40 + R[esp],则代码将转到 .L3。

我的问题是关于这之后会发生什么。是 .L3 执行然后代码转到 .L2 因为它就在它之后,还是在执行 .L3 后它会自动跳转到最后两行?

此外,我可以使用一些有关阅读汇编代码的技巧;我试图找到 eax 和 edx 的最终值。

谢谢

最佳答案

你是对的:跳转到 .L3 后,那里和 ja .L3 之间的所有 6 条指令都将按顺序执行,并且该过程将重复执行,直到不进行条件跳转。

听起来您在阅读代码方面做得很好:)

关于assembly - 与汇编代码的 .L2 标签相关联的代码是否在该段中按程序调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197221/

25 4 0