循环不断重启

时间:2013-11-01 23:43:44

标签: loops assembly x86 inline-assembly

我是Intel x86程序集的新手 - 这实际上是我为它编写的第一个程序。

我正在尝试使用类似于此的循环:

mov ecx,5
numLoop:
[OTHER CODE - DOESN'T OVERWRITE ECX]
loop numLoop

这看起来很好,但它只是在输出中永远循环,我无法弄清楚为什么。在额外的代码中,我根本没有改变ECX的值。

1 个答案:

答案 0 :(得分:1)

小技巧:当你使用loop时,你应该push ecx在代码之前和loop调用之前进行堆叠,你应该像这样从堆栈中弹出它。

mov ecx,5
numLoop:
push ecx
[OTHER CODE - DOESN'T OVERWRITE ECX]
pop ecx
loop numLoop