void main(void)
{
const int SIZE=2;
int array[SIZE];
int temp;
cout<<"请输入"<<SIZE<<"个整数(-214748364~214748364之间)"<<endl;
for(temp=1;temp<=SIZE;temp++)
cin>>array[temp];
cout<<"其中最小值为:\t"<<imin(SIZE,array)<<endl;
}int imin(int itmp,int iarray[])
{
int m;
__asm
{
push eax
push ecx
push esi ;保存现场环境 mov ecx,itmp ;ecx = itmp
xor eax,eax ;eax = 0
mov esi,iarray ;本来以为是汇编的问题,不过到这里发现了新的问题
mov eax,[esi]
dec ecx
minlp: add esi,4
add eax,[esi]
loop minlp
mov m,eax
pop esi
pop ecx
pop eax
}
return m;
}
{
const int SIZE=2;
int array[SIZE];
int temp;
cout<<"请输入"<<SIZE<<"个整数(-214748364~214748364之间)"<<endl;
for(temp=1;temp<=SIZE;temp++)
cin>>array[temp];
cout<<"其中最小值为:\t"<<imin(SIZE,array)<<endl;
}int imin(int itmp,int iarray[])
{
int m;
__asm
{
push eax
push ecx
push esi ;保存现场环境 mov ecx,itmp ;ecx = itmp
xor eax,eax ;eax = 0
mov esi,iarray ;本来以为是汇编的问题,不过到这里发现了新的问题
mov eax,[esi]
dec ecx
minlp: add esi,4
add eax,[esi]
loop minlp
mov m,eax
pop esi
pop ecx
pop eax
}
return m;
}
cin>>array[temp]; //这里不对了for(temp=0;temp<SIZE;temp++)
cin>>array[temp];
for(temp=1;temp<=SIZE;temp++)
cin>>array[temp]; 改成:
for(temp=0;temp<SIZE;temp++)
cin>>array[temp];
后为什么显示结果为:5443459呀????顺便再问一下,在VC 6.0中如何使用单步跟踪呀。同时能不能看寄存器的变化情况呀??????
{
const int SIZE=2;
int array[SIZE];
int temp;
cout<<"请输入"<<SIZE<<"个整数(-214748364~214748364之间)"<<endl;
for(temp=0;temp<SIZE;temp++)
cin>>array[temp];
cout<<"其中最小值为:\t"<<imin(SIZE,array)<<endl;
}int imin(int itmp,int iarray[])
{
int m;
__asm
{
push eax
push ecx
push esi mov ecx,itmp
xor eax,eax
mov esi,iarray
mov eax,[esi]
dec ecx
minlp: add esi,4
cmp eax,[esi]
ja little
jb big
little: mov eax,[esi]
big:
loop minlp
mov m,eax
pop esi
pop ecx
pop eax
}
return m;
}
你做的是求和啊!我汇编很差的,大学时重修过!
Alt+5 查看寄存器
你的基础看起来不扎实啊,先打好C的基础吧!