我继续使用x86程序集的传奇,我正在使用这段代码进入无限循环,我有点困惑。
movl $1, %ecx
movl $4, %edi
do_loop:
cmpl %edi, %ecx
je do_exit
.........
do_stuff
.........
incl %ecx
jmp do_loop
do_exit:
当%ecx达到4时,我期待跳转到 do_exit:,因为它在每次迭代中都会递增
答案 0 :(得分:1)
没有调试器? do_stuff是否会修改%edi?尝试评论do_stuff。
答案 1 :(得分:0)
我不知道do_exit是否后跟空格,我不知道你是如何执行汇编代码的......
但尝试在do_exit之后添加以下内容:
假
保留
答案 2 :(得分:0)
正如其他人所提到的,请注意do_stuff
中的注册用法。你要找的真正的东西是calling conventions,特别是这一行:
寄存器EAX,ECX和EDX可用于该功能。