Re: Citanje fajla iz asemblera
TechHelp ili HelpPC je odgovor. To imate na CD koji je Gvozden dao.
Tamo imas jako lepo objasnjene sve interapte (i one za izlaz - za ispis teksta iz fajla i ostalo) i sve naredbe ASM86. U TechHelp-u ima u Tech Topic -> DOS functions -> 3dh (to je otvaranje fajla). To ce vam bas dosta trebati.
Sve u svemu, za citanje iz fajla koristis DOSovski int 21h sa ah=3dh i u al stavis "open mode" a ocekujes u ax file handle. Tako otvoris fajl a sa ah=3fh ,u bx file handle , ds:dx adresa prijemnog buffer-a i u cx broj bajtova koji zelis da ocitas, read-ujes.
Srecno!
P.S: primer izvucen iz mog domaceg (septembarski)
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;FUNKCIJA OtvaranjeFajla
;ulaz:AH=3Dh, DS:DX=adresa specificiranof fajla napisana u ASCIIZ kodu (terminator je 0), AL=mod otvaranja
;izlaz: ako je greska AX=kod greske, ako nije greska AX=file handle i fileHandle= file handle
;cuva:
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
OtvaranjeFajla PROC NEAR
;//otvaranje fajla na putanji CelaPutanja
;//ulaz:AH=3Dh, DS:DX=adresa specificiranog fajla napisana u ASCIIZ kodu (terminator je 0), AL=mod otvaranja
;//izlaz: ako je greska AX=kod greske, ako nije greska AX=file handle
mov ah, 3dh
mov dx, OFFSET CelaPutanja ;putanjaTest
mov al, 00000000b
int 21h
jnc OFfileHandle
call FajlGreska
jmp OFkraj
OFfileHandle:
mov fileHandle, ax
OFkraj:
ret
OtvaranjeFajla ENDP
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;FUNKCIJA CitanjeBajtaIzFajla
;ulaz:ulaz:AH=3Fh,BX=file handle, DS:DX adresa bafera za prijem podataka, CX= broj bajtova za citanje
;izlaz: ako je greska AX=kod greske, ako nije greska AX=stvarna velicina procitanog fajla
;cuva:
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;// ako citam bajt po bajt, onda za DOS funkciju 3Fh moram u CX da postavim 1 pa da uporedjujem AX i CX:
;//AX=CX citanje je izvreno korektno i bez gresaka | AX=0 doslo se do kraja fajla
;//AX<CX (AX!=0) - poziv je procitao do EOF
CitanjeBajtaIzFajla PROC NEAR
mov bx, fileHandle
mov ah, 3fh
mov dx, OFFSET ucitano
mov cx, 1
int 21h
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!TESTIRANJE
;xor dh, dh
;mov dl, ucitano ; !izmeniti nakon uspesnog testiranja u SSat
;call IspisNovogReda
;call IspisDecimalnogBroja
;call IspisNovogReda
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!KRAJ TESTIRANJA!!!!!!!!!!!!!!!!!!!!!
ret
CitanjeBajtaIzFajla ENDP
----- Original Message -----
From: Mirko Skrbic
To: mips-nastava@titan.etf.bg.ac.yu
Sent: Saturday, January 03, 2004 5:43 PM
Subject: Re: [mips-nastava] Citanje fajla iz asemblera
Ima li neko malo prostiji primer, "for dummies" ;)
Ovaj sam pokusavao da pokrenem i protumacim, ali bezuspesno ;)
----- Original Message -----
From: Nemanja Djokovic
To: mips-nastava@titan.etf.bg.ac.yu
Sent: Thursday, January 01, 2004 1:31 PM
Subject: Re: [mips-nastava] Citanje fajla iz asemblera
evo ti primer...
----- Original Message -----
From: Mirko Skrbic
To: mips-nastava@titan.etf.bg..ac.yu
Sent: Thursday, January 01, 2004 9:54 AM
Subject: [mips-nastava] Citanje fajla iz asemblera
Koje se funkcije koriste za citanje fajla iz asemblera, i na koji nacin?
Tamo imas jako lepo objasnjene sve interapte (i one za izlaz - za ispis teksta iz fajla i ostalo) i sve naredbe ASM86. U TechHelp-u ima u Tech Topic -> DOS functions -> 3dh (to je otvaranje fajla). To ce vam bas dosta trebati.
Sve u svemu, za citanje iz fajla koristis DOSovski int 21h sa ah=3dh i u al stavis "open mode" a ocekujes u ax file handle. Tako otvoris fajl a sa ah=3fh ,u bx file handle , ds:dx adresa prijemnog buffer-a i u cx broj bajtova koji zelis da ocitas, read-ujes.
Srecno!
P.S: primer izvucen iz mog domaceg (septembarski)
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;FUNKCIJA OtvaranjeFajla
;ulaz:AH=3Dh, DS:DX=adresa specificiranof fajla napisana u ASCIIZ kodu (terminator je 0), AL=mod otvaranja
;izlaz: ako je greska AX=kod greske, ako nije greska AX=file handle i fileHandle= file handle
;cuva:
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
OtvaranjeFajla PROC NEAR
;//otvaranje fajla na putanji CelaPutanja
;//ulaz:AH=3Dh, DS:DX=adresa specificiranog fajla napisana u ASCIIZ kodu (terminator je 0), AL=mod otvaranja
;//izlaz: ako je greska AX=kod greske, ako nije greska AX=file handle
mov ah, 3dh
mov dx, OFFSET CelaPutanja ;putanjaTest
mov al, 00000000b
int 21h
jnc OFfileHandle
call FajlGreska
jmp OFkraj
OFfileHandle:
mov fileHandle, ax
OFkraj:
ret
OtvaranjeFajla ENDP
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;FUNKCIJA CitanjeBajtaIzFajla
;ulaz:ulaz:AH=3Fh,BX=file handle, DS:DX adresa bafera za prijem podataka, CX= broj bajtova za citanje
;izlaz: ako je greska AX=kod greske, ako nije greska AX=stvarna velicina procitanog fajla
;cuva:
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;// ako citam bajt po bajt, onda za DOS funkciju 3Fh moram u CX da postavim 1 pa da uporedjujem AX i CX:
;//AX=CX citanje je izvreno korektno i bez gresaka | AX=0 doslo se do kraja fajla
;//AX<CX (AX!=0) - poziv je procitao do EOF
CitanjeBajtaIzFajla PROC NEAR
mov bx, fileHandle
mov ah, 3fh
mov dx, OFFSET ucitano
mov cx, 1
int 21h
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!TESTIRANJE
;xor dh, dh
;mov dl, ucitano ; !izmeniti nakon uspesnog testiranja u SSat
;call IspisNovogReda
;call IspisDecimalnogBroja
;call IspisNovogReda
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!KRAJ TESTIRANJA!!!!!!!!!!!!!!!!!!!!!
ret
CitanjeBajtaIzFajla ENDP
----- Original Message -----
From: Mirko Skrbic
To: mips-nastava@titan.etf.bg.ac.yu
Sent: Saturday, January 03, 2004 5:43 PM
Subject: Re: [mips-nastava] Citanje fajla iz asemblera
Ima li neko malo prostiji primer, "for dummies" ;)
Ovaj sam pokusavao da pokrenem i protumacim, ali bezuspesno ;)
----- Original Message -----
From: Nemanja Djokovic
To: mips-nastava@titan.etf.bg.ac.yu
Sent: Thursday, January 01, 2004 1:31 PM
Subject: Re: [mips-nastava] Citanje fajla iz asemblera
evo ti primer...
----- Original Message -----
From: Mirko Skrbic
To: mips-nastava@titan.etf.bg..ac.yu
Sent: Thursday, January 01, 2004 9:54 AM
Subject: [mips-nastava] Citanje fajla iz asemblera
Koje se funkcije koriste za citanje fajla iz asemblera, i na koji nacin?
- References:
- Citanje fajla iz asemblera
- From: "Mirko Skrbic" <shmirko@tesla.rcub.bg.ac.yu>
- Re: Citanje fajla iz asemblera
- From: "Nemanja Djokovic" <nexy@sezampro.yu>
- Re: Citanje fajla iz asemblera
- From: "Mirko Skrbic" <shmirko@tesla.rcub.bg.ac.yu>
- Citanje fajla iz asemblera
Previous by date: Re: Citanje fajla iz asemblera
Next by date: Re: biblioteke?
Previous by thread: Re: Citanje fajla iz asemblera Next by thread: Greske iz ERC-a
Previous by thread: Re: Citanje fajla iz asemblera Next by thread: Greske iz ERC-a