otvorenie suboru v assembly

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

lomir
nováček
Příspěvky: 1
Registrován: duben 13
Pohlaví: Nespecifikováno
Stav:
Offline

otvorenie suboru v assembly

Příspěvekod lomir » 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:
.
.
.

Reklama
izzy1995
Level 3
Level 3
Příspěvky: 569
Registrován: prosinec 12
Pohlaví: Muž
Stav:
Offline

Re: otvorenie suboru v assembly

Příspěvekod izzy1995 » 23 dub 2013 19:19

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)

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: otvorenie suboru v assembly

Příspěvekod faraon » 23 dub 2013 19:38

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)


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 5 hostů