Calculadora ensambler
PILA SEGMENT STACK "STACK"
DW 100 DUP (?)
TCP LABEL WORD
PILA ENDS
DATOS SEGMENT "DATOS"
CANTIDAD1 DB (?)
CANTIDAD2 DB (?)
CANTIDAD3 DB (?)
CANTIDAD4DB (?)
CANTIDAD5 DB (?)
BANDERA EQU 00H
DATOS ENDS
CODIGO SEGMENT PUBLIC "CODIGO"
ASSUME CS: CODIGO
ASSUME DS: DATOS
ASSUME SS: PILA
CONVERSION1 PROC NEAR
MOV Ax,CANTIDAD1MUL 10H
ADD Ax,CANTIDAD2
MOV Cx,Ax
RET
ENDP
CONVERSION2 PROC NEAR
MOV Ax,CANTIDAD4
MUL 10H
ADD Ax,CANTIDAD5
MOV Dx,Ax
RET
ENDP
SUMA PROC NEAR
ADD Cx,Dx
OUTLCD,Cx
RET
ENDP
RESTA PROC NEAR
SUB Cx,Dx
OUT LCD,Cx
RET
ENDP
MULTIPLICACION PROC NEAR
CMP Cx,0
JE CERO
CMP Dx,0
JE CERO
CMP Cx,1
JE DESPDX
CMP Dx,1
JEDESPCX
MOV Ax,Cx
MUL Dx
OUT LCD,Ax
CERO:
OUT LCD,0H
DESPDX:
OUT LCD,Dx
DESPCx:
OUT LCD,Cx
RET
ENDP
DIVISION PROC NEAR
CMP Cx,0
JE ERROR
CMP Dx,0JE ERROR
CMP Cx,1
JE DESDX
CMP Dx,1
JE DESCX
MOV Ax,Cx
MUL Dx
OUT LCD,Ax
ERROR:
OUT LCD,ERROR
DESDX:
OUT LCD,Dx
DESCX:
OUT LCD,Cx
RET
ENDPn! PROC NEAR
MOV Ax,Cx
CMP Ax,0
JE FIN1
CMP Ax,1
JE FIN1
MOV Cx,Ax
CICLO:
CMP Cx,1
JE FIN
DEC Cx
MUL Cx
JMP CICLO
FIN1:
MOV Ax,1H
FIN:
OUTLCD,Ax
RET
ENDP
BANDERA0 PROC NEAR
MOV CANTIDAD1,Ax
OUT LCD,CANTIDAD1
INC BANDERA
RET
ENDP
BANDERA1 PROC NEAR
CMP Ax,SUMA
JE NUM1
CMP AX,RESTA
JE NUM1
CMPAx,MULTIPLICACION
JE NUM1
CMP Ax,DIVISION
JE NUM1
CMP Ax,n!
JE RESU
MOV CANTIDAD2,Ax
CALL CONVERSION1
OUT LCD,Cx
INC BANDERA
NUM1:
MOV CANTIDAD3,Ax
OUTLCD,CANTIDAD3
INC BANDERA
INC BANDERA
MOV Cx,CANTIDAD1
RESU:
MOV CANTIDAD3,Ax
CALL n!
RET
ENDP
BANDERA2 PROC NEAR
CMP Ax, SUMA
JE OPER
CMP Ax,RESTA
JE...
Regístrate para leer el documento completo.