Ma come faccio ad inserire il valore che io ho nei registri CX e BX in DX:AX?!
E poi io di solito chiamo DIV con: DIV numero per cui dividere
E in questo modo mi divide quello che è presente in AX, mette ancora lì il risultato e in DX il resto...
il codice che uso è fatto da due funzioni, queste:
STAMPA_NUM1 PROC NEAR
XOR DX,DX
XOR CX,CX
MOV AX,BX
XOR BX, BX
MOV BX, 10 ;imposta il divisore
MEMONUM1: XOR DX,DX ;azzero DX
DIV BX ;divido per 10
PUSH DX ;salvo il resto
INC CX ;incremento il contatore cifre
CMP AX, 0 ;devo ripetere?
JNZ MEMONUM1
STAMPANUM1: POP DX ;riprende i numeri come LIFO
MOV AX, DX ;metto in AX numero da stampare
CALL STAMPA_NUMERO ;stampo
LOOP STAMPANUM1 ;ripeto
RET ;Ritorno alla procedura chiamante
STAMPA_NUM1 ENDP
STAMPA_NUMERO PROC NEAR
ADD AL,'0' ;La base da cui partire e' '0'
MOV AH,W_CHR_TTY ;Servizio BIOS 'Write Char in TTY'
INT BIOS_VIDEO
RET ;Ritorno alla procedura chiamante
STAMPA_NUMERO ENDP
Ovviamente qui come dicevo ho il mio numero di uno in BX (registro che non basta da solo) e lo copio in AX prima di cominciare le divisioni successive...