Hi,
I've been trying to get my head around x86 assembly lately, and I've been working on this one problem. I'm trying to write a program that reads characters from a text file, then display them on the console. It's a simple exercise in file operations, but I'm having a bit of trouble with it!
Here's what I've got so far:
.model small
.data
Filename db 'test.txt'
FHndl dw ?
Buffer db 80h dup(?)
.stack 100h
.code
Program:
mov ah, 3dh ;Open the file
mov al, 0 ;Open for reading
lea dx, Filename ;Presume DS points at filename
int 21h ; segment.
; jc BadOpen
mov FHndl, ax ;Save file handle
LP: mov ah,3fh ;Read data from the file
lea dx, Buffer ;Address of data buffer
mov cx, 1 ;Read one byte
mov bx, FHndl ;Get file handle value
int 21h
; jc ReadError
cmp ax, cx ;EOF reached?
jne EOF
mov al, Buffer ;Get character read
call write ;Print it
jmp LP ;Read next byte
EOF: mov bx, FHndl
mov ah, 3eh ;Close file
int 21h
;jc CloseError
PROC write
push ax bx cx dx
mov ah, 2
mov dl, Buffer ;char to be printed
int 21h
pop ax bx cx dx
ret
ENDP
End Program
My problem here, I think, is with my write procedure. I'm not quite sure how to go about completing this program, any help would be much appreciated!