;2nd.asm      31/08/2004            Celio G.
;        exemplo das funcoes do DOS para entrada e saida de caracter
;        solicita entrada de um caracter pelo teclado ate Ctl_D ser digitado

ORG 0100h		; inicio de programas .COM
myloop:
  mov dx, msg           ; endereco da mensagem inicial
  mov ah, 9             ; para a funcao 9 do int 21h (entrada no DOS),
  int 21h               ; chama a funcao via interrupcao de software

  mov ah,08             ; entrada de caracter sem eco no video (com eco use 01)
  int 21h               ; caracter sera colocado pelo DOS em al
  cmp al, 04            ; veja se foi Ctl_D (codigo ASCII = 04)
  jz fim                ; sim, termine com um agradecimento
  mov cl,al             ; nao, salve o caracter digitado em dl
  mov dx, msg2          ; mensagem de reconhecimento
  mov ah,09
  int 21h
  mov dl,cl             ; recupera o caracter digitado
  mov ah,02             ; codigo da funcao para saida no video do caracter em dl
  int 21h               ; chama DOS
  jmp myloop            ; volta a pedir um novo caracter
fim:
mov dx,fmsg             ; end da mensagem de agradecimento
mov ah, 9               ; cod da funcao do DOS para exibir no video uma cadeia
int 21h                 ;

mov ah, 4ch             ; funcao p/ retornar ao prompt
int 21h                 ; do DOS

;*************** Dados seguem apos a ultima instrucao ***************

msg db 0dh,0ah,'Digite um alfanum[erico qualquer (Ctl_D para sair): $'
msg2: db 0dh,0ah,'Voce digitou: $'
fmsg: db 0dh,0ah, 'Obrigado, volte sempre!$'

