otvorenie suboru v assembly
Napsal: 14 dub 2013 15:14
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:
.
.
.
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:
.
.
.