z_fallah
چهارشنبه 27 آبان 1388, 01:22 صبح
دوستان سلام خواهش میکنم اگر درباره نحوه ذخیره کردن فایل چیزی میدونید کمممممممممممممممممکم کنید
tdkhakpur
چهارشنبه 27 آبان 1388, 17:05 عصر
اين- الگوريتم و نمونه اين كار هست بهتره براي توضيح -وقفه هاي موجود در نمونه را از روي كتاب مطالعه كنيد.
; create and open file: c:\emu8086\vdrive\C\test1\file1.txt
OpenFile MACRO FileName, Handle
local Errore
mov ah, 3dh
mov al, 0 ; 0 read only 1 write only 2 read write
mov dx, offset FileName
int 21h
mov Handle, -1
jc Errore
mov Handle, ax
Errore:
ENDM
CreateFile MACRO FileName, Handle
local Errore
mov ah, 3ch
mov cx, 0
mov dx, offset FileName
int 21h
mov Handle, -1
jc Errore
mov Handle, ax
Errore:
ENDM
; close c:\emu8086\vdrive\C\test1\file1.txt
CloseFile MACRO Handle
mov ah, 3eh
mov bx, Handle
int 21h
ENDM
; write to file:
WriteFile MACRO Buffer, Size, Handle
local Exit_
mov ah, 40h
mov bx, Handle
mov dx, offset Buffer
mov cx, Size
int 21h
jnc Exit_
mov ax, -1
Exit_:
ENDM
; read from file
; return val is in ax if ax==0 then EOF else read bytes.
ReadFile MACRO Buffer, Size, Handle
local exit_
mov ah, 3fh
mov bx, Handle
mov dx, offset Buffer
mov cx, Size
int 21h
jnc exit_
mov ax, -1
exit_:
ENDM
stacksg segment para stack 'stack'
stacksg ends
datasg segment para 'data'
file1 db 'file1.txt', 0
buffer db 255 dup(?)
line db 13, 10
bytes dw ?
handle1 dw ?
datasg ends
codes segment para 'code'
main proc far
assume ss:stacksg, ds:datasg, cs:codes
mov ax, datasg
mov ds, ax
;------------ ur programm
OpenFile file1, handle1
WriteFile line, 2, handle1
CloseFile handle1
;------------ end of program
mov ax, 4c00h
int 21h
main endp
codes ends
end main
z_fallah
پنج شنبه 28 آبان 1388, 01:37 صبح
با تشکر از جواب شما
لطفا اگر امکانش است یه توضیح مختصری درباره کار این الگوریتم بدین:لبخندساده::خجالت:
tdkhakpur
پنج شنبه 28 آبان 1388, 14:23 عصر
همه چيز كه مشخصه مثل خوانده فايل با c يا pascal ميماند.
assume ss:stacksg, ds:datasg, cs:codes
mov ax, datasg
mov ds, ax
;------------ ur programm
OpenFile file1, handle1
ماكروي فوق فايل به اسم file1 را باز كرده و هندل فايل را داخل handle 1 قرار ميدهد
WriteFile line, 2, handle1
خط فوق از هندل بدست آمده در داخل handle1 تعداد 2 بايت از فايل را خوانده و در داخل متغيير line قرار ميدهد
CloseFile handle1
فايل را با توجه به هندل بدست آمده از file1 كه در handle1 قرار دارد را ميبندد.
;------------ end of program
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.