Stránka 1 z 1

otvorenie suboru v assembly

Napsal: 14 dub 2013 15:14
od lomir
Zdravím mám taký problém s jedným programom, kde mám na začiatku zadať reťazec (názov súboru) a potom mám ďalej pracovať s daným súborom, program má korektne spracovať súbory s dĺžkou do 128 kB, keď na pevno zadám názov súboru v dátovom segmente:

subor db 'a.asm',0

tak program ide, ale ako náhle to pozmením tak program končí. Prosím o radu ďakujem

DATA SEGMENT

TEXT5 DB 10,13, 'Zadaj meno suboru : $'
subor db 64000 dup (?)
suborh DW 0
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:ZAS


START: MOV AX, SEG DATA
MOV DS, AX
MOV ES, AX


subo: MOV DX, OFFSET TEXT5 ; do DX vloz posunutie retazca v datovom segmente,
MOV AH, 09H ; funkcia na vypis retazca (write string)
int 21h ; DOS-ovske prerusenie na vykonanie funkcie 9

mov ah,0ah ;nacitanie retazca bez buffera
int 21h
mov subor, al ;ulozenie adresy retazca do premennej subor

lea dx, subor ;nacitanie effektiv addres subor
mov AX, 3D00h ; otvor subor
xor al,al ;nulovanie al, len pre citanie
int 21h

jc koniec

mov suborh, ax
xor cx, cx

menu:
.
.
.

Re: otvorenie suboru v assembly

Napsal: 23 dub 2013 19:19
od izzy1995
Vyzerá to tak, že sa tu nikto nestará o assembler, je to geniálny programovací jazyk, no je na dosť nízkej úrovni a ľudia sa ho boja. Ja sa tiež venujem assembleru (AVR Studio) ale len na programovanie kontroly led napr. semafóry alebo nejaké efekty. Mrzí ma to, ale s týmto ti nepomôžem, skús si to naprogramovať v C++ (viem, nie je to dosť efektívny spôsob, zahlcuje procesor aj pamäť)

Re: otvorenie suboru v assembly

Napsal: 23 dub 2013 19:38
od faraon
Assembleru 8086 v MS-DOSu se tu fakt asi nikdo nevěnuje, takže aspoň souhrn opsaný odsud: http://spike.scu.edu.au/~barry/interrupts.html

Kód: Vybrat vše

AH = 3Dh - "OPEN" - OPEN EXISTING FILE

Entry:
    * AL = access and sharing modes
    * DS:DX -> ASCIZ filename

Return:
    * CF clear if successful, AX = file handle
    * CF set on error AX = error code (01h,02h,03h,04h,05h,0Ch,56h)

Notes:
    * file pointer is set to start of file
    * file handles which are inherited from a parent also inherit sharing and access restrictions
    * files may be opened even if given the hidden or system attributes

SeeAlso: AH=0Fh,AH=3Ch,AX=4301h,AX=5D00h