Red de conocimiento informático - Conocimiento sistemático - El lenguaje ensamblador muestra los resultados en la pantalla.

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

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