Exp 7
Exp 7
UID: 2023800094
Experiment No. 7
AIM: Program for File Handling using BIOS interrupts in Assembly Language.
STRING DB 30 DUP(?)
HANDLE DW ?
CHAR DB ?
DISPLAY MESS1
MOV AH,0AH ;PLACE KEYBOARD CHARACTER INTO INPUT BUFFER
MOV DX,OFFSET STRING ;START OF THE INPUT BUFFER
MOV STRING,27 ;MAXIMUM LENGTH OF THE STRING
INT 21H
MOV BX,DX ;LENGTH OF THE STRING ACTUALLY ENTERED
MOV AL,STRING+1 ;
SUB AH,AH ;CLEAR AH
ADD BX,AX
MOV BYTE PTR [BX+2],0 ;LAST CHARACTER OF THE STRING 00H
; New Line
MOV AH,02H
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
;-----------------------
;OPEN THE FILE
;-----------------------
MOV AL,0 ;MODE OF ACCESS
MOV AH,3DH ;OPEN A FILE
MOV DX,OFFSET STRING+2 ;IDENTIFY THE FILE
INT 21H
INC
JC ERROR1
MOV HANDLE,AX ;UNLESS ERROR OCCURS AX CONTAINS THE FILE
HANDLE
;---------------------------
;READ THE FILE CHAR BY CHAR
;---------------------------
LOOP1: MOV CX,1 ;THE NUMBER OF BYTES TO READ
MOV BX,HANDLE ;FILE HANDLE RETURNED BY OPEN FILE
MOV AH,3FH ;READ FROM A FILE
MOV DX,OFFSET CHAR ;BYTE OF MEMORY TO PLACE THE INFORMATION
INT 21H
JC ERROR2
CMP AX,0 ;ACTUAL NUMBER OF BYTES TO READ 00H FOR E.O.F.
JE CLOSE
;-------------------------
; DISPLAY THE CHAR ON SCREEN
;-------------------------
MOV DL,CHAR ;ASCII CODE FOR THE CHARACTER TO BE DISPLAYED
MOV AH,02H ;DISPLAY THE CHARACTER AT THE O/P DEVICE
INT 21H
JMP LOOP1
;------------------
; CLOSING THE FILE
;-----------------------
CLOSE: MOV BX,HANDLE
MOV AH,3EH ;CLOSE A FILE HANDLE(UPDATE FILE DIRECTORY, FLUSHES
INT 21H ;ALL INTERNAL BUFFERS ASSOCIATED WITH THE FILE)
JC ERROR3
JMP QUIT
;----------------------
;ERROR MESSAGE
;-----------------------
ERROR1: DISPLAY MESS2
JMP QUIT
ERROR2: DISPLAY MESS3
JMP QUIT
ERROR3: DISPLAY MESS4
QUIT:
MOV AH,4CH
INT 21H
END
RESULT: