我是Intel x86程序集的新手 - 这实际上是我为它编写的第一个程序。
我正在尝试使用类似于此的循环:
mov ecx,5
numLoop:
[OTHER CODE - DOESN'T OVERWRITE ECX]
loop numLoop
这看起来很好,但它只是在输出中永远循环,我无法弄清楚为什么。在额外的代码中,我根本没有改变ECX
的值。
答案 0 :(得分:1)
小技巧:当你使用loop
时,你应该push
ecx
在代码之前和loop
调用之前进行堆叠,你应该像这样从堆栈中弹出它。
mov ecx,5
numLoop:
push ecx
[OTHER CODE - DOESN'T OVERWRITE ECX]
pop ecx
loop numLoop