¡Te ruego que obtengas puntuaciones altas! Compilación recopilatoria! Programación de montaje sencilla
Conversión hexadecimal
SEGMENTO DE DATOS
DATOS1 DB 6 DUP(?), '$'; ingrese aquí el código del segmento de datos
LOS DATOS TERMINAN
SEGMENTO DE CÓDIGO
ASUMIR CS: CÓDIGO, DS: DATOS
INICIO:
MOV AX, DATOS
MOV DS, AX
MOV DI, OFFSET DATA1 5
MOV BX, 0; BX borrado
MOV CH, 4; 4 dígitos hexadecimales
MOV CL, 4; desplazamiento a la izquierda 4 dígitos por ciclo
MOV SI, 0AH; dividendo
INTCHR :
MOV AH, 01H; caracteres de entrada
INT 21H
CMP AL, 30H; entrada ilegal
JL EXIT
CMP AL, 39H; el número ingresado es 0~9
JLE DIG
CMP AL, 41H; entrada ilegal
JL EXIT p>
CMP AL , 46H; entrada ilegal
JG EXIT
SUB AL, 37H; la entrada es A~F mayúscula, reste 37H para convertirlo en número hexadecimal
JMP LS1
DIG: SUB AL, 30H
LS1: SHL BX, CL; la primera vez es todo ceros, el desplazamiento a la izquierda no cambia en 4 bits. Para cada guardado posterior, desplaza 4 bits. a la izquierda
AGREGAR BL, AL; almacenar
DEC CH
JNZ INTCHR
;MOV AH, 02H
;INT 21H ;BX almacena el número hexadecimal de entrada
;............ ................. .......
MOV AX, BX
AG: XOR DX, DX
DIV SI Encuentra resto-gt, cociente-; gt; AX
AGREGAR DL, 30H
MOV [DI], DL
DEC DI
CMP AX, 0
JNZ AG
XOR DX, DX
MOV AH, 09H
INT 21H
SALIDA: ; /p>
MOV AH, 4CH
INT 21H
CÓDIGO FINALIZA
FIN INICIO
Agregar
SEGMENTO DE DATOS
da
ta1 db '23', '88'
data2 db '23 88=', 3 dup(?), '$'
DATOS FINALES
CÓDIGOS SEGMENTO
ASUME CS:CODIGOS,DS:DATAS
INICIO:
MOV AX,DATAS
MOV DS,AX
mov ah, 0
mov al, dato1 1
agregar al, dato1 3
aaa
agregar al, 30h
mov [datos2 8], al
mov al, datos1
añadir al, datos1 2
añadir al, ah
mov ah, 0
aaa
agregar al, 30h
mov [datos2 7], al
agregar ah, 30h
mov [datos2 6], ah
mov dx, compensar datos2
mov ah, 9
int 21h
MOV AH, 4CH
INT 21H
CÓDIGOS FINALIZA
FIN INICIO
¡Ejecución aprobada! Dame puntos