主题:[原创]有关VC++与汇编嵌入式编程出现的问题
最近我用VC++和汇编混合编程,在此过程中未出现预定的结果而是一个“-858993459”的一个数值,编译时也没有出现错误和警告。经过几天反复查看每有发现错误,特向大家请教。望大家不吝赐教。
代码如下:
#include <iostream.h>
int imin(int SIZE,int array[SIZE]);
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
xor eax,eax
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;
}
完毕。
代码如下:
#include <iostream.h>
int imin(int SIZE,int array[SIZE]);
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
xor eax,eax
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;
}
完毕。