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:
.
.
.
otvorenie suboru v assembly
Re: otvorenie suboru v assembly
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äť)
Intel Core i7-4710HQ 3,5Ghz, Intel HM86 Chipset, 8GB DDR3 1600Mhz, SATA HDD 1TB(7200rpm) + 2TB samsung HDD,IPS LED 15,6" 1920x1080px,Intel Graphics 4600, Nvidia GeForce GTX860M 4GB GDDR5,Wi-fi 802.11 a/g/n, Bluetooth
ASUS N551JM-DM157H
Born to be FIIT (STU)
ASUS N551JM-DM157H
Born to be FIIT (STU)
Re: otvorenie suboru v assembly
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
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti