我遇到了一些麻烦,试图让我的循环正常工作。这就是我需要做的事情
将3添加到i1并将结果存储到i1中 将i2乘以3并将结果存储到i2
如果i1大于100则终止循环或如果以下两个都为真,则终止循环:循环超过15次迭代且i2已达到至少999999的值。
尚未完成,但我想知道是否可以在循环中使用2个CMP? 这是我到目前为止所做的:
{
unsigned long i1;
unsigned long i2;
unsigned long i3;
unsigned long i4;
_asm
{
mov i1, 1
mov i2, 1
mov eax, i1
mov ebx, i2
mov ecx, 3
Start:
add eax, ecx
cmp eax, 100
jnz Start
jge Done
Start2:
imult ebx, ecx
cmp ebx, 999999
Done:
mov i1, eax
}
cout << "results are " << (unsigned long) i1 << ", "
<< (unsigned long) i2 << ", "
<< (unsigned long) i3 << ", "
<< (unsigned long) i4 << endl;
}
答案 0 :(得分:1)
你有两个不同的程序cmp
(不是循环,如@harold提到的)。在cmp
Start2
之后,你可能想要某种跳跃,否则你只会回到Done
。但是,基于999999
立即,看起来这就是意图。因此,如果尚未达到该值,则可以跳回“循环”。否则,如果您达到该值,请转到Done
。