Esercizio assembly loop

di il
8 risposte

Esercizio assembly loop

Salve, dovrei fare un esercizio in assembly per scuola, il testo dice così: "Dati due numeri , moltiplicarli attraverso somme e scrivere il risultato in memoria centrale".
Io volevo fare così: fare un loop che continui a sommare il numero per se stesso e sommare 1 ad un contatore finché non arriva al numero del 2° fattore, non so se mi sono spiegato
Ho trovato su internet che basta utilizzare il comando "INC" per fare un loop ma non so di preciso come usarlo e come fare in modo che il loop si interrompa quando il contatore arrivi a il valore del 2° fattore.

8 Risposte

  • Re: Esercizio assembly loop

    Se usi una INC che incrementa devi fare il controllo se sei arrivato al valore finale con altre istruzioni per poi eseguire il salto.

    Al posto di tutto ciò, puoi utilizzare l'istruzione LOOP che decrementa il valore di cx e automaticamente controlla il valore saltando se non è zero.
    Quindi carichi in cx il valore e il ciclo lo concludi con LOOP
  • Re: Esercizio assembly loop

    Forse ho capito utilizzando INC, però mi serve una conferma, con il comando JL posso scrivere per esempio"JL BL,CL"? Scusate se sono domande banali ma sono proprio agli inizi e il prof. non spiega molto bene
  • Re: Esercizio assembly loop

    Hai letto quello che ti ho risposto?
  • Re: Esercizio assembly loop

    Sì, però non ho molto capito, praticamente con loop lui di decrementa direttamente il 2° fattore per ogni somma che è stata fatta?
  • Re: Esercizio assembly loop

    LOOP è una istruzione (come INC o JL o DEC) che effettua le seguenti operazioni mostrate qui

    http://x86.renejeschke.de/html/file_module_x86_id_161.html

    Ovvero, se tu scrivi

    MOV CX,3
    ciclo:

    LOOP ciclo

    verrà ripetuto 3 volte quello che è contenuto nel corpo del ciclo.

    Se copi in CX il valore del secondo operando e nel ciclo metti l'addizione, è tutto risolto.
  • Re: Esercizio assembly loop

    AAAAAAA ok ho capito... e una volta arrivato a zero smette in automatico e va all'operazione seguente?
  • Re: Esercizio assembly loop

    Sì, se leggi ... If the count is 0, the loop is terminated and program execution continues with the instruction following the LOOP instruction
  • Re: Esercizio assembly loop

    Perfetto, grazie mille, e complimenti per la velocità
Devi accedere o registrarti per scrivere nel forum
8 risposte