PDA

View Full Version : [Assembly] ADD DOUBLEWORD, WORD


StockBreak
29-06-2007, 10:50
Ciao a tutti!
Questa volta il mio problema è di carattere generale, infatti non riesco a sommare una WORD ad una DOUBLEWORD. In linea teorica dovrei effettuare una semplice estensione del segno con l'istruzione CWD, tuttavia essa estende la mia variabile dal registro AX a DX. Dovendo quindi effettuare una somma del tipo ADD var1, var2 dove var1 è una doubleword e var2 è una word, quali sono gli step da seguire? Come faccio a recuperare il valore contenuto nei due registri e sommarlo alla doubleword? Spero di essere stato abbastanza comprensibile, grazie!

N.B: il numero è negativo, quindi devo necessariamente effettuare l'estensione del segno.

andbin
29-06-2007, 11:33
Ciao a tutti!
Questa volta il mio problema è di carattere generale, infatti non riesco a sommare una WORD ad una DOUBLEWORD. In linea teorica dovrei effettuare una semplice estensione del segno con l'istruzione CWD, tuttavia essa estende la mia variabile dal registro AX a DX. Dovendo quindi effettuare una somma del tipo ADD var1, var2 dove var1 è una doubleword e var2 è una word, quali sono gli step da seguire? Come faccio a recuperare il valore contenuto nei due registri e sommarlo alla doubleword? Spero di essere stato abbastanza comprensibile, grazie!

N.B: il numero è negativo, quindi devo necessariamente effettuare l'estensione del segno.Esempio: devi sommare AX a ECX.

Opzione 1:
CWDE ; sign extension EAX <- AX
ADD ECX,EAX

Opzione 2:
MOVSX EAX,AX ; sign extension EAX <- AX
ADD ECX,EAX

StockBreak
29-06-2007, 14:31
Esempio: devi sommare AX a ECX.

Opzione 1:
CWDE ; sign extension EAX <- AX
ADD ECX,EAX

Opzione 2:
MOVSX EAX,AX ; sign extension EAX <- AX
ADD ECX,EAX

Ecco l'istruzione che mi mancava, grazie mille!
Avevo in mente solo MOVZX per gli interi ma è vero che esiste anche MOVSX, ancora grazie :)