Ciao ! Grazie per la risposta.Originariamente inviato da oregon
Leggi il valore dell'operazione in un registro
Confronta con il carattere '+'
Se è uguale salta alla parte del programma che esegue l'addizione
altrimenti continua eseguendo la sottrazione
Prova ad iniziare a scrivere del codice tu ...
Ti spiego, alla parte che mi hai spiegato ci ero arrivato, un comune CMP con 2 JE ecc..
il problema è fare la somma (o sottrazione) infatti i comandi ADD e SUB non fanno somma MODULO e SEGNO ma la fanno in complemento a 2.
Pensai : potrei convertire da modulo e segno a complemento a 2 e poi riconvertire dopo aver eseguito l'operazione. Ma non funziona.
ti scrivo il codice che ho usato :
in BH operando1
in BL operando2
[...]
LEA operazione, %EDX
SHL %BH
NOT %BH
INC %BH
RCR %BH
SHL %BL
NOT %BL
INC %BL
RCR %BL
CMP $'+', (%EDX)
JE somma
CMP $'-', (%EDX)
JE diff
RET
somma: ADD %BH, %BL
JMP uscita
RET
diff: SUB %BH, %BL
JMP uscita
RET
uscita è un sottoprogramma per stampare a schermo.