Ciao ho ricontrollato tramite debug. Ho detto una sciocchezza. La divisione viene fatta bene.
E anche a SPAMPA_NUMERO i numeri da stampare sono passati nell'ordine giusto. E' come se li stampasse da destra verso sinistra
. Lo stato di BX viene salvato nella seguente procedura e all'atto della stampa (mi sono detto) lo posso modificare senza problemi perché tanto la divisione è stata fatta...giusto? Quindi (ho sempre pensato), utilizzo la funzione che gestisce i colori di stampa, vedo i registri di cui ha bisogno, gli dico di che colore voglio il testo e basta. Mi sembrava semplice. Invece qualcosa non torna.
codice:
STAMPA_RIS PROC NEAR
PUSH AX
MOV DX,OFFSET RIS
CALL STAMPA_STRINGA
POP AX
PUSH BX
MOV BX,10 ;imposto il divisore
XOR CX,CX ;azzero il registro per il contatore delle cifre
MOV AX,SEQUENZA ;metto in AX il numero da stampare
STAMPA_RIS_1: XOR DX,DX ;azzero il registro per il dividendo
DIV BX ;divido per il divisore
PUSH DX ;salvo il resto nello stack
INC CX ;incremento il contatore delle cifre
CMP AX,0000H ;devo ripetere?
JNE STAMPA_RIS_1 ;si se AX non è nullo
STAMPA_RIS_2: POP AX ;prelevo i numeri da stampare
CALL STAMPA_NUMERO ;stampo
LOOP STAMPA_RIS_2 ;ripeto
POP BX
RET
STAMPA_RIS ENDP