Ensamblaje: escriba un programa que convierta números binarios de 16 bits en códigos BCD. Se requieren comentarios.
; Parámetros de entrada
; AX: código binario de 16 bits
; DI: la primera dirección de la unidad preparada para código BCD
;Exportar parámetros
; NONE
BIN2BCD PROC
PUSH AX
PUSH BX
PUSH CX
p>PUSH DX
PUSH DI; Protección en sitio
MOV CX,3; Se necesitan hasta 3 bytes para convertir código binario de 16 bits. en código BCD comprimido
RE: SUB DX,DX ;borrar dx
DIV WORD PTR 0AH ;AX se divide por 10, el cociente puede cruzar el límite, por lo que DX-AX son se usan juntos, por lo que 0AH se convierte en una palabra
MOV BL,DL ;Guarde el resto porque DL==DX
SUB DX,DX ;Borrar dx
DIV WORD PTR 0AH ;Igual que arriba
SHL DL,4 ;Mover a posición alta
OR BL,DL ;Comprimir código BCD
MOV [DI ],BL ;Guardar código BCD comprimido
INC DI ;Preparar para guardar el siguiente
DEC CX ;Contar
JNE RE ;Repetir
POP DI ;Recuperación en vivo
POP DX
POP CX
POP BX
POP AX
RET
BIN2BCD ENDP