El lenguaje ensamblador muestra los resultados en la pantalla.
Escribí una calculadora simple (0~255) con la esperanza de ayudarte (el formato de entrada es un operador b=, por ejemplo, si quieres calcular 5 por 6, debes ingresar 5*6= )
p>Recuerde que ingresar cosas a la pantalla se puede lograr ingresando la función 02 de su código asc int 21h
SEGMENTO DE DATOS
x db 20 dup (?)
y db 'chu cuo le','$'
DATAS TERMINA
SEGMENTO DE CÓDIGOS
ASUME CS: CODIGOS ,DS:DATAS
INICIO:
MOV AX,DATAS
MOV DS,AX
LEA SI,X
A: MOV AH,01H
INT 21H
CMP AL,30H
JB B
CMP AL,3AH
JNB F
SUB AL,30H
MOV CH,AL
MOV AL,BL
MOV BL ,0AH
MUL BL
AÑADIR AL,CH
MOV BL,AL
JMP A
B : CMP AL,2BH
JNZ K
MOV X[SI],BL
INC SI
MOV CL,0H
p>AND BL,0
JMP A
K: CMP AL,2DH
JNZ D
MOV X[ SI],BL
INC SI
MOV CL,01H
AND BL,0
JMP A
D: CMP AL,2AH
JNZ E
MOV X[SI],BL
INC SI
MOV CL,02H
Y BL,0
JMP A
E: CMP AL,2FH
JNZ T
MOV X[SI],BL
INC SI
MOV CL,03H
AND BL,0
JMP A
F: MOV [SI],BL
CMP AL,3DH
JNZ T
LEA SI,X
MOV AL,X[SI]
INC SI
MOV BL,X[SI]
CMP CL,0
JNZ G
AÑADIR AL,BL
JMP J
G: CMP CL,01H
JNZ H
SUB AL ,BL
JMP J
H: CMP CL,02H
JNZ I
AND AH,0
MUL BL
JMP J
I: AND AH,0
CMP CL,03H
DIV BL p>
J: AND AH,0
CMP AL,100
JB ER
MOV BL,100
> DIV BL
MOV CL,AH
AÑADIR AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AL,CL
ER: CMP AL,10
JB YI
MOV BL,10
Y AH,0
DIV BL
AÑADIR AL,30H
MOV DL,AL
MOV CL,AH
MOV AH,02H
INT 21H
MOV AL,CL
YI: AÑADIR AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
JMP L
T: LEA DX,Y
MOV AH,09H
INT 21H
L: MOV AH,01H
INT 21H
MOV AH,4CH
INT 21H
CÓDIGOS FINALIZA
FIN INICIO