Showing posts with label file handling. Show all posts
Showing posts with label file handling. Show all posts

Append in file in Assembly

Following is the program to append in a file in Assembly language.

TITLE Append in file in Assembly Language
.model small
.stack

.data
file db "myfile.txt",0
msg db "This is a program to append in file in Assembly language.",'$'

.code
start:
main proc
mov ax,@data
mov ds,ax

;load file handler
mov dx,offset file
mov al,1
mov ah,3dh
int 21h

;Appending File
mov bx,ax
mov cx,0
mov ah,42h
mov al,02h
int 21h

;Writing File
mov cx,lengthof msg; should have been 1 less than length of msg.
mov dx,offset msg
mov ah,40h
int 21h

;close file
mov ah,3eh
int 21h

;exit
mov ax,4c00h
int 21h
main endp
end start
end

Write to file in Assembly Lanugage

.model small
.stack
.data
buffer db "I'm writing.",'$'
file db "myfile.txt",0


.code
mov ax,@data
mov ds,ax
 
mov dx, offset file
;mov al,0            ;Open file (read-Only)
mov al,1            ; Write only
;mov al,2            ; Read & Write
mov ah,3dh           ; Load File handler and store in ax
int 21h

mov cx,10            ; no. of bytes to be written. I want only first 10 bytes to be written in my already created file
mov bx,ax            ; Move file Handler to bx
mov dx,offset buffer ; load offset of string which is to be written to file
mov ah,40h
int 21h

mov ah,4ch
int 21h
end

Read from file Assembly Language

.model small
.stack
.data
buffer db 5000 dup("$")
file db "myfile.txt",0


.code
mov ax,@data
mov ds,ax
 
mov dx, offset file
mov al,0            ;Open file (read-Only)
;mov al,1            ; Write only
;mov al,2            ; Read & Write
mov ah,3dh           ; Load File handler and store in ax
int 21h

mov bx,ax            ; Move file Handler to bx
mov dx,offset buffer
mov ah,3fh
int 21h

mov ah,9h
int 21h

mov ah,4ch
int 21h
end