In questo post, vediamo l’uso del comando SUB per effettuare la differenza in assembly su architetture x86 a16 bit.
L’idea è quella di crearci due variabili ed eseguire il conto in una terza. La procedura è simile a quella che abbiamo visto con la somma ADD. L’utilizzo delle variabili in questo caso non è strettamente necessario perché i registri basterebbero per eseguire l’operazione ma è propedeutico per altri esercizi più complessi.
Inizializziamo una variabile SOTT1 a 10, qui con numero esadecimale e SOTT2 a 1. Le operazioni, come sempre, non possono essere svolte tra variabili, ma devono sempre passare per i registri. Il risultato ottenuto dal registro AX lo reinseriamo in una variabile di appoggio DIFF.
; esempio 04
; sottrazione
.STACK
.DATA
SOTT1 dw 0Ah
SOTT2 dw 1
DIFF dw ?
.CODE
.STARTUP
MOV AX, SOTT1 ; sposto il primo numero in Ax parte bassa
SUB AX, SOTT2 ; ci sottraggo il secondo numero
MOV DIFF, AX ; sposto nella variabile
.EXIT
END
Ultima modifica 5 Giugno 2022