装配无限循环

时间:2011-01-13 07:39:16

标签: assembly x86 gas

我继续使用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:,因为它在每次迭代中都会递增

3 个答案:

答案 0 :(得分:1)

没有调试器? do_stuff是否会修改%edi?尝试评论do_stuff。

答案 1 :(得分:0)

我不知道do_exit是否后跟空格,我不知道你是如何执行汇编代码的......

但尝试在do_exit之后添加以下内容:

  

     

保留

答案 2 :(得分:0)

正如其他人所提到的,请注意do_stuff中的注册用法。你要找的真正的东西是calling conventions,特别是这一行:

寄存器EAX,ECX和EDX可用于该功能。