c00l 0 Newbie Poster

hi, I need help for my project in tasm

1. Create file "data.txt" in your working directory.
The file should have 10 numbers
each between 0 and 100 and separated by a space.

2. Write code to do the following:
a. search for the file; exit with error message if not found.
b. open the file, read the contents and close the file.
c. display error and exit if the contents are not numbers.
d. find and display the average of the numbers in the file.
e. handle a file with more or less than 10 entries eg. 9, 11, 100

this is what i done so far:

; Assembly project

.model small
.stack
.code 

;;;;;;;Start code;;;;;;;;;;;;;

mov ax,@data 	; base address of data segment
mov ds,ax 	; put it in ds

;;;;;;;Start Message;;;;;;;;;;

mov dx,offset StartMessage 
mov ah,09h 
int 21h 

;;;;;;;;search for file;;;;;;;

mov dx,offset File 	; address of filename to look for
mov cx,3Fh 		; file mask 3Fh - any file
mov ah,4Eh 		; function 4Eh - find first file
int 21h 		; call dos service
jc FileDontExist

mov dx,offset FileExist 
mov ah,09h 
int 21h
 
;;;;;;;;open file;;;;;;;;;;;;;

mov dx,offset FileName 	; put offset of filename in dx
mov al,2 		; access mode -read and write
mov ah,3Dh 		; function 3Dh - open the file
int 21h 		; call dos service
jc OpenError 		; jump if there is an error
mov Handle,ax 		; save value of handle 

;;;;;;;;read file;;;;;;;;;;;;;

mov dx,offset Buffer 	; address of buffer in dx
mov bx,Handle 		; handle in bx
mov cx,40 		; amount of bytes to be read
mov ah,3Fh 		; function 3Fh - read from file
int 21h 		; call dos service
jc readError     	; jump if carry flag set - error! 

;;;;;;;;;C D E;;;;;;;;;;;;;;;;

;         (?)

;;;;;;;;;close a file;;;;;;;;;

mov bx,Handle 		; put file handle in bx 
mov ah,3Eh 		; function 3Eh - close a file
int 21h 		; call dos service
jc closeError 		; jump if there is an error

;;;;;;;;End Message;;;;;;;;;;;

mov dx,offset EndMessage 
mov ah,09h 
int 21h 

;;;;;;;;;;;;;EXIT;;;;;;;;;;;;;;

mov ax,4C00h 		; terminate program 
int 21h 

;;;;;;;;;;;ERRORS;;;;;;;;;;;;;;

FileDontExist:
mov dx,offset NoFile  
jmp EndError

OpenError:
mov dx,offset OpenMessage 
jmp EndError

readError:
mov dx,offset readMessage 
jmp EndError 

closeError:
mov dx,offset closeMessage 
jmp EndError

EndError:
mov ah,09h 
int 21h 
mov ax,4C01h 
int 21h 


;;;;;;;;;;;;;;;;;;;;DATA;;;;;;;;;;;;;;;;;;;;;;

.data 

StartMessage DB "This program display the average in DATA.TXT"
	     DB ,"on the C drive.$"

File 	DB "C:\data.txt",0

EndMessage  DB " DONE $"
FileExist DB "file exists$"
NoFile DB "An error has occurred (SEARCHING)$"
OpenMessage   DB "An error has occurred (OPENING)$"
readMessage   DB "An error has occurred (READING)$"
closeMessage  DB "An error has occurred (CLOSING)$"


FileName DB "C:\data.txt",0 ; name of file to open 
Handle   DW ? 	; to store file handle 
Buffer DB 100 dup (?) 	; buffer to store data
;;;;;;;;;;;end code;;;;;;;;;;;;;;;

END
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.