Visualizzazione dei risultati da 1 a 6 su 6

Visualizzazione discussione

  1. #5
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    20
    No scusa l'esercizio precedente l'ho risolto, è un altro l'esercizio con il medesimo errore.(Non viene compilato e mi lo stesso errore che mi dava prima sull'IMUL)

    Verso 130-131
    }
    codice:
    #include<iostream>
    using namespace std;
    void main()
     
    {
        signed short A, B;                           //Inizializzazione variabili            
        signed short temp, temp1, temp2, Ris;        //Inizializzazione variabili
     cout<<"Esercizio di Xxxxx Yyyyy ZZ"<<endl;
        cout << "inserisci A = "; 
        cin >> A;
        cout << "inserisci B = ";
        cin >> B;
      
        //if ((A < 0) && (B < 0)) {                             //confronto-salto con AND      
        //    cout << "A e B sono entrambi negativi" << endl;
        //}
     _asm {
     mov AX, A
     mov bx, 0
     cmp ax, bx
     jnl finese
     mov ax, bx
     mov bx, 0
     cmp ax, bx
     jnl finese
        }
           cout << "A e B sono entrambi negativi" << endl;
        _asm {
    finese:
        }
       
     
     //if (A < 0) 
     //{                                  //confronto-salto
          //  A = A * -1;
        // }
      _asm {
      mov AX, A
      mov BX, 0
      cmp AX, BX
      jnl finese1
      MOV AX, A 
      MOV BX, -1
      IMUL BX, AX
     finese1:
      }
    
        // if (B < 0) {                                 //confronto salto
          //  B = B * -1;
        
     _asm
     {
      mov AX, B
      mov BX, 0
      cmp AX, BX
      jnl finese2
      MOV AX, B 
      MOV BX, -1
      IMUL BX
      finese2:
     
     }
     
        cout << "calcolo con somme e sottrazioni successive ";
                                    
      cout << "calcolo con somme e sottrazioni in assembly ";
            
     //Ciclo While
     /* while (temp > 0)                       
     {                   
            temp1 = temp1 + A;
            temp = temp - 1;
        }
        temp2 = 0;
        temp = B; */
     _asm
     {
     MOV AX,0
     MOV temp1,AX
     MOV BX,B
        MOV temp,BX
     
    iniz_ciclo:
      CMP temp,0  
      JLE fin_ciclo
      MOV AX,temp1
      ADD AX,A
      MOV temp1,AX
      MOV BX,temp
      SUB BX,1
      MOV temp,BX
      JMP iniz_ciclo
    fin_ciclo:
      MOV temp2,0
      MOV CX,B
      MOV temp,CX
    
    inizio_ciclo2:
      CMP temp,3
      JLE fin_ciclo2
      MOV AX,temp
      SUB AX,3
      MOV temp,AX
      MOV BX,temp2
      ADD BX,1
      MOV temp2,BX
      MOV AX,temp1
      ADD AX,temp2
      MOV Ris,AX
      
     fine_ciclo2
     }
     
        cout << "(A * B) + (B / 3) = ";
        cout << Ris << endl;
        system("pause");
    }
    La penultima graffa, comunque se ti salta all'occhio bene se no non ti preoccupare che risolvo domani.
    Ultima modifica di MItaly; 03-06-2014 a 00:03

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.