PDA

Visualizza la versione completa : [Assembly] addizione


Salvatore_91
09-12-2008, 16:44
CIao raga, sto imparando l'assembly a scuola. Dovrei dare un piccolo programmino, che faccia la somma tra due numeri. Ma questa somma deve essere a 4 byte. Potete darmi una dritta?

oregon
09-12-2008, 16:59
Quale assembly stai studiando? Dipende dal tipo di CPU e dalla modalita' con cui la usi ...

Salvatore_91
09-12-2008, 17:08
oopppss.. hai ragione. Sto studiando l' 8086.
Uso però un emulatore 8086.

menphisx
09-12-2008, 17:27
I registri nell'8086 sono a 2 byte ...
Comunque:



mov ax, numero1
mov bx, numero2

add ax,bx

Salvatore_91
09-12-2008, 17:29
Grz per l tuo aiuto menphisx, purtroppo quello già lo sapevo.
Il mio problema è proprio questo. Realizzarlo su 4 byte.

Salvatore_91
09-12-2008, 18:10
sapete dirmi se è possibile accodare due registri di 16 bit. Ad esempio:
DX con AX???
DX:AX.

hcka
09-12-2008, 18:19
Ciao, ahimé non ricordo quasi nulla di Assembly, comunque, se non ricordo male i professori volevano farci gestire l'overflow con questo esercizio... Quindi bisogna giocare anche con quello...

Spero di esserti stato utile.

Salvatore_91
09-12-2008, 18:21
Si, sto pensando anke a quello. Ma sapresti dirmi se posso accodare due registri generali??
tipo DX:AX???

oregon
09-12-2008, 18:45
Non puoi usare automaticamente i due registri.

Se devi fare la somma di

BX:CX

con

DX:AX

in modo che questi ultimi contengano il risultato, devi scrivere

ADD AX,CX
ADC DX,BX

Salvatore_91
09-12-2008, 21:01
Io dovrei fare un piccolo programmino che faccia la somma su 4 byte. e quindi avevo pensato di utilizzare 2 registri per ogni operando.
Non ho capito il tuo post Oregon.
Tu se ho capito bene, sommi AX con CX mettendo il risultato in AX, dopodiche, sommi DX e BX con il flag di carry memorizzando tutto in DX??

Loading