Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [ASM] Istruzione ADC

  1. #1
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429

    [ASM] Istruzione ADC

    L'istruzione di addizione ADD nn tiene conto del riporto
    Quindi eseguendo la seguente addizione:

    AL=00100011 +
    AH=11111011 =
    -------------
    1|00011110 che è uguala ad 1Eh
    ^
    |
    |
    |
    Riporto

    Ottengo un risultato che è dato dalla somma dei due senza l'addizione del riporto alla somma finale


    Utilizzando l'istruzione ADC invece, facendo la stessa somma dovrei avere la somma finale + il riporto, quindi più uno:


    AL=00100011 +
    AH=11111011 =
    -------------
    1|00011110 che è uguala ad 1Eh
    ^
    |
    |
    |
    Riporto che si aggiunge alla somma finale (1Eh) e quindi il risultato finale è 1Fh

    Fin qui tutto dovrebbe andare bene ma eseguendo questo programma:

    codice:
    .model small
    .data
       val1 db 00100011b
       val2 db 11111011b
    
    .code
    inizio:
        mov ax,@data
        mov ds,ax
        mov ax,0
        mov al,val1
        mov ah,val2
        adc ah,al
        mov ax,4c00h
        int 21h
    end inizio
    Ed eseguendolo passo passo con il debug in ah che contiene la somma finale, sia mettendo ADD che ADC ottengo sempre 1Eh.

    Perchè????

  2. #2
    ADC aggiunge 1 solo se il flag CARRY è settato...
    il programma in questo stato ha il flag carry
    indefinito xke prima non fai nessuna aoperazione matematica
    che lo possa modificare a tuo vantaggio quindi puo essere
    sia settato che no
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  3. #3
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429
    Originariamente inviato da DYNAM!C+
    ADC aggiunge 1 solo se il flag CARRY è settato...
    il programma in questo stato ha il flag carry
    indefinito xke prima non fai nessuna aoperazione matematica
    che lo possa modificare a tuo vantaggio quindi puo essere
    sia settato che no
    E come lo setto?

  4. #4

    STC

    STC
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  5. #5
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429

    Re: STC

    Originariamente inviato da DYNAM!C+
    STC
    Ah ok, grazie mille.
    L'ho messa prima dell'istruzione ADC e adesso funge.

    Ma perchè bisogna fare questo settaggio?

  6. #6
    mah veramente l'istruzione ADC non va fatta da sola
    deve essere il completamento matematico di qualche istruzione prima...
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.