Advertisement
Rezaur_Rahman

File Read/Write Assembly

Dec 11th, 2019
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. INCLUDE "EMU8086.INC"
  2. .MODEL SMALL
  3. .STACK 100H
  4. .DATA
  5.  
  6.     FNAME1 DB "ACCOUNT.txt",0
  7.     FHAND DW ?
  8.     TEXT DB 50 DUP('$')
  9.     FLAG DB 0
  10.     CHAR DB ?
  11.  
  12. .CODE
  13.     MAIN PROC
  14.        
  15.         MOV AX,@DATA
  16.         MOV DS,AX
  17.        
  18.         CALL FILE_READ
  19.        
  20.         EXIT:
  21.         MOV AH,4CH
  22.         INT 21H
  23.        
  24.     MAIN ENDP
  25.    
  26.     ;FUNCTION TO READ LINE BY LINE FROM FILE
  27.    
  28.     FILE_READ PROC
  29.        
  30.         ;OPENING FILE
  31.         MOV AH,3DH      
  32.         MOV AL,0        
  33.         LEA DX, FNAME1  
  34.         INT 21H          
  35.         MOV FHAND, AX  
  36.    
  37.         NEW_LINE:
  38.         MOV SI,0
  39.      
  40.         READ_LINE:
  41.         MOV AH,3FH
  42.         MOV BX,FHAND
  43.         MOV CX,1
  44.         LEA DX,CHAR
  45.         INT 21H
  46.        
  47.         ;END OF FILE CHECK & EXIT
  48.         CMP AX,0
  49.         JE SET_FLAG
  50.        
  51.         MOV AL,CHAR
  52.        
  53.         ;END OF LINE CHECK
  54.         CMP AL,10
  55.         JE PRINT_LINE
  56.        
  57.         ;ADD DATA TO THE ARRAY
  58.         MOV TEXT[SI],AL
  59.         INC SI
  60.         JMP READ_LINE
  61.  
  62.         PRINT_LINE:
  63.         MOV BYTE PTR TEXT[SI],'$'
  64.         MOV AH,9  
  65.         LEA DX,TEXT
  66.         INT 21H
  67.         CMP FLAG,1
  68.         JE FILE_EXIT
  69.         PRINTN
  70.         JMP NEW_LINE
  71.        
  72.         SET_FLAG:
  73.         MOV FLAG,1
  74.         JMP PRINT_LINE
  75.        
  76.         FILE_EXIT:
  77.         MOV AH,3EH
  78.         MOV BX,FHAND
  79.         INT 21H
  80.  
  81.         RET
  82.    
  83.     FILE_READ ENDP
  84.    
  85. END MAIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement