Salve a tutti, devo risolvere questo esercizio utilizzando solamente carta e penna (senza calcolatrice). Qualcuno può spiegarmi i passi da seguire?
codice:
MOV AX,Mat
OR AX,0FFF1h
MOV BL,-4
IDIV BL ; Divis. con segno di AX per r/m8: ris. in AL, resto in AH
PUSH AX
POP Ris2
La variabile Mat è uguale a 3666(decimale),0E52(esa),
0000111001010010(bin).
Ris2 deve solamente contenere il risultato (una word di 16 bit).
I numeri negativi vanno considerati in complemento a 2.
Io ho pensato di fare uno shift a destra di due posizioni per la divisione e poi trasformare in compl. a 2 il risultato ottenuto tenendo conto solamente degli 8 bit meno significativi. Il problema è che non so come fare per calcolare il resto.
Chiaramente basterebbe calcolare fin dall'inizio il valore decimale di ax dopo aver fatto l'or e lavorare con numeri in base 10, però speravo in qualcosa di più rapido.
Grazie per l'aiuto.