Sei sulla pagina 1di 2

TITLE asaf

.MODEL SMALL
.STACK 100H
.DATA
CR EQU 0DH ;carrige return(ENTER) - ir para o inicio da linha
LF EQU 0AH ;Line Feed - move para uma nova linha
msg1 db CR,LF,'Introduza um numero decimal: $' ;msg pedido de entrada de
dados
msg2 db CR,LF,'Tente Novamente! $' ;msg caso introduza numero invalido
msg3 db CR,LF,'Deseja continuar?(S-Sim): $'
msg4 db CR,LF,'Voce introduziu o numero: $'
msg5 db CR,LF,'Fim do Programa!! Elaborado por Angelo F. & Assil S. $'
.CODE

MOV AX,@data ;acesso a .DATA


MOV DS,AX ;alocacao no segmento de dados

inicio:
LEA DX,msg1 ;offset da msg2
MOV AH,09H ;funcao para exibicao de strings
INT 21H ;chamada da funcao

MOV AH,01H ;funcao para entrada de caracter com destino ao AL


INT 21H ;chamada da funcao para entrada de caracteres do teclado
MOV BL,AL ;salva o caracter lido em BL

CMP AL,39H ;compara o caracter lido do teclado com o numero Hexadecimal


JBE imprimir ;salto para imprimir caso condicao seja verdadeira
JMP repetir ;salto incondicional caso nao se verifique

repetir: ;metodo que exige repeticao(ERRO)


LEA DX,msg2 ;offset da msg2
MOV AH,9H ;funcao para exibicao de strings
INT 21H ;chamada da funcao

JMP inicio ;salto para inicio do programa

imprimir:
LEA DX,msg4 ;offset da msg2
MOV AH,09H ;funcao para exibicao de strings
INT 21H ;chamada da funcao para exibicao de strings

MOV AH,02H ;funcao para exibicao do caracter


MOV DL,BL ;imprime o numero introduzido
INT 21H ;chamada da funcao para exibicao de caracteres

LEA DX,msg3 ;offset da msg3


MOV AH,09H ;funcao para exibicao de strings
INT 21H ;chamada da funcao para exibicao de strings

MOV AH,01H ;funcao para entrada de caracter com destino ao AL


INT 21H ;chamada da funcao para entrada de caracteres do teclado

CMP AL,'S' ;compara se o caracter introduzido e' S


JE inicio ;caso for igual repete o programa
CMP AL,'s' ;compara se o caracter introduzido e' s
JE inicio ;caso for igual repete o programa
JMP fim ;salto para fim do programa
fim:
LEA DX,msg5 ;offset da msg5
MOV AH,09H ;funcao para exibicao de string
INT 21H ;chamada da funcao para exibicao de strings
MOV AH,4CH ;funcao para finalizar a execucao
INT 21H ;chamada da funcao que finaliza
END

Potrebbero piacerti anche