先看课文
下面的我的试验代码
#include <iostream>
using namespace std;
int p[5] = {1,12,123,1234,12345};
void main()
{
int a;
_asm
{
mov eax,0
mov ecx, 1
aa:
inc eax
loop aa
mov a,eax
}
cout<< a <<endl;
}按照书的意思,把ECX减一之后就是0了,按就不应该在执行循环了,那最后的输出结果怎么是1
下面的我的试验代码
#include <iostream>
using namespace std;
int p[5] = {1,12,123,1234,12345};
void main()
{
int a;
_asm
{
mov eax,0
mov ecx, 1
aa:
inc eax
loop aa
mov a,eax
}
cout<< a <<endl;
}按照书的意思,把ECX减一之后就是0了,按就不应该在执行循环了,那最后的输出结果怎么是1
这里不是加了1了吗?
然后 mov a, eax;
这个时候不就是a=1了吗?
using namespace std;
int p[5] = {1,12,123,1234,12345};
void main()
{
int a =0;
int i =1; //do while 效果
__asm
{
WHILE:
cmp i,0
jle END
inc a
dec i
jmp WHILE
END:
} cout<< a <<endl;}