Calculadora feita em assembly
Por: Kevin Silveira Batista Lima • 1/4/2015 • Trabalho acadêmico • 421 Palavras (2 Páginas) • 530 Visualizações
.CR 8085
.TF ASMDP.hex,INT
.LF ASMDP.lst
LETECLA .EQ 02E7H ; Sinonimos utilizados abaixo
MOSTRAD .EQ 0363H ;
MOSTRAA .EQ 036EH ;
LEDS .EQ 22H
DELAY .EQ 05F1H
COMMAND .EQ 20H
.OR 2000H
LXI SP,22C0H ; Inicializa pilha
LOOP: MVI A,02H ; Porta B como saida
OUT COMMAND
MVI A,00H
OUT LEDS ; Acende o LED correspondente a A
CALL LETECLA ; LE OPRAÇÃO A SER FEITA
MVI B,00H
CMP B
JNZ CONTADD
CALL CLEAR
CONTADD: MVI B,01H
CMP B
JNZ CONTSUB
CALL AD1 ;se a operacão digitada for 1 = adição
CONTSUB: MVI B,02H
CMP B ;se a operacão digitada for 2 = subtração
JNZ CONTMUL
CALL SUB2
CONTMUL: MVI B,03H
CMP B ;se a operacão digitada for 3 = MULTIPLICAÇÃO
JNZ CONTDIV
CALL MTPL
CONTDIV: MVI B,04H
CMP B ;se a operacão digitada for 4 = DIVISÃO
JNZ CONTPOT
CALL DIV
CONTPOT: MVI B,05H
CMP B ;se a operacão digitada for 5 = PONTENCIA
JNZ CONT
CALL POTEN
CONT: JMP LOOP
CLEAR: MVI A,0H
MOV D,A
MVI E,0H
PUSH D
CALL MOSTRAD ; Apresenta primeiro numero
POP D
MVI A,0H
MOV E,A
PUSH PSW
CALL MOSTRAD ; Apresenta os dois numeros
POP PSW
CALL MOSTRAA
JMP LOOP
AD1: CALL LETECLA ; Le primeiro numero
MOV D,A
MVI E,0H
PUSH D
CALL MOSTRAD ; Apresenta primeiro numero
POP D
CALL LETECLA ; Le segundo numero
MOV E,A
ADD D ; Resultado em A
DAA
CALL MOSTRAT
SUB2: CALL LETECLA ; Le primeiro numero
MOV E,A
MOV D,A
MVI E,0H
PUSH D
CALL MOSTRAD ; Apresenta primeiro numero
POP D
CALL LETECLA ; Le segundo numero
MOV E,A
MOV A,D
CMP E
JNC CONTPOS
MOV A,E ; INVERTE OS TERMOS DA SUBTRAÇÃO
MOV C,D
SUB C
PUSH PSW
CALL MOSTRAD ; Apresenta os dois numeros
POP PSW
CALL MOSTRAA ; Apresenta resultado
MVI A,02H
OUT COMMAND ;ESTE LED INDICA QUE O REESULTADO DA SUBTRAÇÃO É NEGATIGO CASO ACESSO
MVI A,01H
OUT LEDS ; Acende o LED correspondente a A
PUSH PSW
MVI D,20H ; Atraso
CALL DELAY ; Espera para ver LED aceso
POP PSW
JMP LOOP
CONTPOS: SUB E ; subtrai o segundo numero digitado pelo primeiro
CALL MOSTRAT
MTPL: CALL LETECLA ; Le primeiro numero
MOV D,A
MVI E,0H
PUSH
...