Compilación de suma de 16 binarios de un dígito en lenguaje ensamblador
MSG DB "Ingrese dos números entre 0 y F: ",' $ '
CONT DB "¿Quiere continuar? (Sí/No) ", ' $ '
WARN DB "¡El número debe estar entre 0 y F!", '$'
SHOW DB "Hagamos ejercicios de suma.
", '$'
SUM DB?,?, '$'
Fin de los datos
Parte extra
BUF DB 80 DUP (?)
Dos extremos adicionales
Fragmento de código
Supongamos DS: DATA, CS: CODE, ES: EXTRA
Iniciar :
MOV AX, DATOS
MOV DS, AX
MOV AX, EXTRA
MOV AX
lop 0: MOV AH, 09H
LEA DX, mensaje
INT 21H
MOV SI, 0
MOV CX, 2 años antiguo
MOV, 01H
INT 21H
CMP AL, ' 0 '
Error JB
CMP AL, '9'
JA Siguiente
JMP Zero Nine
Siguiente: CMP AL, "A"
Error JB p>
CMP AL, 'F'
Error JA
Cero Nueve:
MOV: Buff [Oeste], Al
Corporación SI
Diciembre CX
JNZ S0
JMP Drama
Error: llamada a CRLF
LEA DX, advertencia
MOV, 09H
INT 21H
JMP S0
Llamar CRLF
MOV, 09H
LEA DX, display
INT 21H
Llamada CRLF
MOV DL, ES: BUF
MOV , 02H
INT 21H
MOV DL, ' '
INT 21H
MOV DL, ES: BUF 1
INT 21H
MOV DL, ' = '
INT 21H
MOV al , ES: BUF
CMP AL, '9'
JBE Z0_9
SUB AL, 07H
Z0_9: Aluminio, 30 Horas
MOV AL, ES: BUF 1
MOV AL, ES: BUF 1
CMP AL, '9'
JBE Z0 9N
SUB AL, 07H p>
Z0_9N: Aluminio, 30H
Añadir AL, ES: BUF
MOV CL, 4
ROL Co., Ltd.
MOV · Bligh
También BL, 0FH
CMP BL, 0
JZ Blanc
CMP BL, 9
JBE Z0_9NA
AÑADIR BL, 07H
Z0_9NA: AÑADIDO BL, 30H
Suma MOV, BL
JMP NEXT1
En blanco: suma MOV, 20H
Siguiente 1: ROL Ltd.
También AL, 0FH
Aluminio pulido mecánicamente y químico , 9
JBE Z0_9_2
Aluminio añadido, 07H
Z0_9_2: Alcan, 30H
MOV suma 1, AL
MOV, 09
LEA DX, SUM
INT 21H<
/p>
Llamar CRLF
MOV, 09H
LEA DX, continuación
INT 21H
MOV , 01 p>
INT 21H
CMP AL, ' Y '
JNZ LY
JMP CF
LY : CMP AL, 'y'
JNZ completo
CF: Llamar CRLF
JMP LOP0
Finalizar: MOV AX, 4C00H
INT 21H
CRLF:
MOV, 02H
MOV DL, 0DH
INT 21H
MOV DL, 0AH
INT 21H
Remojado en agua para suavizar
Fin del código
Fin inicio