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;
}

解决方案 »

  1.   

    for(temp=1;temp<=SIZE;temp++)
            cin>>array[temp];  //这里不对了for(temp=0;temp<SIZE;temp++)
            cin>>array[temp];
      

  2.   

    我将:
    for(temp=1;temp<=SIZE;temp++)
            cin>>array[temp];  改成:
    for(temp=0;temp<SIZE;temp++)
            cin>>array[temp];
    后为什么显示结果为:5443459呀????顺便再问一下,在VC 6.0中如何使用单步跟踪呀。同时能不能看寄存器的变化情况呀??????
      

  3.   

    #include <iostream.h>int imin(int SIZE,int array[]);void main(void)
    {
        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;
    }
    你做的是求和啊!我汇编很差的,大学时重修过!
      

  4.   

    F10 单步执行
    Alt+5 查看寄存器
    你的基础看起来不扎实啊,先打好C的基础吧!