¿Cómo convertir un número binario de cuatro bytes en código BCD usando ensamblador?
;Existe una matriz llamada BUF que almacena una cadena de caracteres.
;Ahora es necesario convertir cada carácter al código BCD correspondiente y guardarlo en una matriz denominada BCD
DATA SEGMENT
BUF DB '5792'
BCD DB 4 DUP(?)
EXTREMOS DE DATOS
SEGMENTO DE PILA
DB 200 DUP(0)
p >EXTREMOS DE LA PILA
SEGMENTO DE CÓDIGO
ASUMIR DS:DATA,SS:STACK,CS:CODE
INICIO:
MOV AX,DATA
MOV DS,AX ;La dirección del segmento de datos se envía a DX
MOV CX,4 ;El número de ciclos se envía a CX
LEA SI,BUF ; SI guarda la primera dirección del array BUF
LEA DI,BCD+3; DI guarda la última dirección del array BCD
LOOP1:
MOV AL,[SI] ;Elimina un carácter, (AL)=(DS:SI)
AND AL,0FH ;Borra los 4 bits superiores de AL y conserva los 4 bits bajos
MOV [DI],AL ;Guarda el resultado de la operación, (DS:DI)=(AL)
INC SI ;Modifica el puntero para que SI apunte al siguiente byte de la matriz BUF
DEC DI ;Haga que DI apunte al byte anterior de la matriz BCD
DEC CX Disminuya el número de control del bucle en 1
JNZ LOOP1; Determine si se debe finalizar el bucle
MOV AH,4CH
INT 21H
CODE FINDS
END START