www.pudn.com > displayl.rar > displayl.asm


TITLE displayl 
data SEGMENT  
   bufferb  DB '?','$' 
   bufferw  DW ? 
   temp DB  ? 
   show DB 'This is what you have said:','$' 
     nl DB 'LTRD.txt',0 
   sign DW ? 
  count DW ? 
  tabel DW 524,588,660,698,784,880,988,1048 
data ENDS 
stack SEGMENT stack'stack' 
   sta DB 20 DUP(?) 
   top EQU LENGTH sta 
stack ENDS 
code SEGMENT  
     ASSUME CS:code,DS:data,SS:stack 
 start: MOV AX,data 
        MOV DS,AX 
        MOV AX,top 
        MOV SP,AX 
        PUSH DS 
        XOR AX,AX 
        PUSH AX 
;24 
        MOV DX, OFFSET show 
        MOV AH,09h 
        INT 21h 
 
        MOV AH,0eh 
        MOV AL,0ah 
        INT 10h 
         
        MOV DX,OFFSET nl 
        MOV AH,3dh 
        MOV AL,02h 
        INT 21h  
         
       MOV sign,AX 
       MOV BX,sign 
       MOV CX,0000h 
       MOV DX,0000h 
       MOV AH,42h 
       MOV AL,02h 
        INT 21h 
      
        MOV count,AX 
        MOV CX,0000h 
        MOV DX,0000h 
        MOV AH,42h 
        MOV AL,02h 
        INT 21h 
        MOV count,CX 
 again :MOV count,CX 
        MOV CX,0001h 
        MOV DX,OFFSET bufferb 
        MOV AH,3fh 
        MOV BX,sign 
        INT 21h 
;58     
        JC finish 
          
         MOV DX,OFFSET bufferb 
         MOV AH,09h 
         INT 21h 
         MOV AL,bufferb 
         SUB AL,31h 
         JC n1 
         CMP AL,9 
         JNC n1 
         SHL AL,01 
         MOV BL,AL 
         MOV AX,0000h 
         MOV DX,12h 
         MOV BH,00h 
         DIV WORD PTR[tabel+BX] 
         MOV BX,AX 
         MOV AL,10110110b 
         OUT 43h,AL 
         MOV AX,BX 
         OUT 42h,AL 
         MOV AL,AH 
         OUT 42h,AL 
         IN AL,61h 
         OR AL,03h 
         OUT 61h,AL 
         CALL delay 
n1:       MOV CX,count 
         LOOP again 
          MOV AH,3eh 
          INT 21h 
   ;90    
      IN AL,61h 
      AND AL,011111100b  
      OUT 61h,AL 
finish :MOV AX,4c00h 
        INT 21h 
delay  PROC NEAR 
       PUSH CX 
       PUSH AX 
       MOV AX,0fffh 
  x1:  MOV CX,0ffffh 
  x2:  DEC CX 
       JNZ x2 
       DEC AX 
       JNZ x1 
       POP AX 
       POP CX 
       RET 
 delay ENDP 
  code ENDS 
  END start