ورود

View Full Version : کمک برای کامل کردن یک برنامه



alquimista
جمعه 27 خرداد 1390, 11:30 صبح
سلام
این کد مشخصات شخص رو دریافت کرده و در فایل ذخیره می کند اما مشکل اینجاست که فقط رشته آخری را ذخیره می کند ، لطف کنید این کد رو برای من کامل کنید اگر برای شما مقدور بود می خواستم قسمت جست و جو نیز به این کد اضافه شود .



; 1- Define stack segment
; -----------------------
STACKSG SEGMENT STACK 'STACK'
db 256 DUP(0)
STACKSG ENDS ; End of segment
;-----------------------------------------------
; 2- Define data segment
; ----------------------
DATASG SEGMENT PARA 'DATA'

; add your data here!
MSG1 DB 'Please enter yout code: ',"$"
MSG2 DB 'Please enter your name: ',"$"
MSG3 DB 'Please enter your family: ',"$"
filename db 'D:\EXAMPLE.txt',00h
ohandle dw ?
e_creat db "error1","$"

str label byte
max DB 255
len DB ?
st_name DB 45 dup(' '),"$";,0dh,0ah
DATASG ENDS ; End of segment
;-----------------------------------------------
; 3- Define code segment
; ----------------------
;
CODESG SEGMENT PARA 'CODE'
ASSUME DS:DATASG,CS:CODESG,SS:STACKSG
START PROC FAR

MOV AX,DATASG ;1-Initialize DS
MOV DS,AX ;2- register
MOV ES,AX
; Main program
; ------------
; ------------------- write program here

call create_file ;1
mov ohandle,ax
call close_file

MOV AH,2H ;CURSOR
MOV DH,10 ;ROW
MOV DL,30 ;COLUMN
MOV BH,0 ;PAGE NUMBER
INT 10H
;2
LEA DX,MSG1 ;address massage ;3
MOV AH,9H ;number function
INT 21H

CALL GET_NAME

MOV AH,2H ;CURSOR
MOV DH,12 ;ROW
MOV DL,30 ;COLUMN
MOV BH,0 ;PAGE NUMBER
INT 10H

LEA DX,MSG2
MOV AH,9H
INT 21H

CALL get_name1

MOV AH,2H ;CURSOR
MOV DH,14 ;ROW
MOV DL,30 ;COLUMN
MOV BH,0 ;PAGE NUMBER
INT 10H


LEA DX,MSG3
MOV AH,9H
INT 21H
lea dx,str ;number interrupt
call get_name ;4
cmp len,00
jz fin


mov bx,ohandle
call w_file
;5
call get_name





fin:
end1:



;--------------------------- end of program

; Come back to operating system
; ---------------------------------
MOV AX,4C00H ;9- End of
INT 21H ;10- processing
START ENDP ;11- End of procedure

create_file proc
lea dx,filename
mov ah,3ch
mov cx,00;file mamoli
int 21h
jc error1
ret
error1:

LEA DX,e_creat;address massage
MOV AH,9H;number function
INT 21H;number interrupt



create_file endp
;************************************************* ********
get_name proc
mov ah,0ah
;lea dx,str
int 21h

ret
get_name endp
;************************************************* ********
;************************************************* ********
w_file proc
mov ah,40h
lea dx,st_name
mov cx,37
int 21h
ret
w_file endp
;************************************************* ********
;************************************************* ********
;************************************************* ******
;************************************************* ******
close_file proc
mov ah,3eh
int 21h
ret
close_file endp

CODESG ENDS ;12- End of segment
END START ;13- End of program