Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem ASSEMBLER - nacitanie mena suboru a jeho otvorenie

Zdravim ... nacital som meno suboru a ked ho chcem otvorit (urcite taky mam v projekte) proste napise ze taky subor neexistuje. Mam pocit ze zle nacitavam nazov suboru preto ho to nenajde (znak naviac alebo daco take)

;NACITANIE MENA SUBORU
zadaj_sub:
call clrscr
nacitaj_sub:
vypis uvod_sub ;pomocny vypis
mov ah,0ah ;funkcia DOS na nacitanie retazca
mov dx,OFFSET subMeno ;do dx=zaciatok retazca
int 21h ;prerusenie
cmp subMeno[1],0 ;test ci je prazdny
jz prazdny_sub
xor bx,bx
mov bl,[subMeno+1] ;do bl=skutocnu velkost retazca
mov [subMeno+bx+2],'$' ;na koniec retazca pridaj '$'
jmp menu_vypis
prazdny_sub: ;ak bol zadany prazdny retazec tak skusi nacitat retazec znovu
call clrscr
vypis prazdny_ret
jmp nacitaj_sub

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
mam subor textak halo.txt a ked to tam zadam ze halo.txt stale nic nejde :/ a spravil som to tak ako…
Parker 06.03.2017 21:53
Parker
Ma tam byt 0, ziadne uvodzovky. Skus si trebars napevno buffer DB 'halo.txt',0 mov dx, buffer a za…
MM.. 06.03.2017 22:36
MM..
Pise to uplne to iste :/ dal som mov dx,offset buffer
Parker 06.03.2017 22:55
Parker
Program spustas z jakej zlozky? Jak presne to spustas? ... a ano ma tam byt offset buffer to mas dob… nový
MM.. 06.03.2017 23:04
MM..
BTW. Neni ten halo.txt nahodou uz otvoreny inym programom? Skus ho premenovat. nový
MM.. 06.03.2017 23:06
MM..
subor je presne v tej zlozke v akej mam obj asm aj exe su tam spolu vsetky skusil som aj premenovat… nový
Parker 06.03.2017 23:09
Parker
Spustam to cele cez GUI Turbo Assembler aj run nový
Parker 06.03.2017 23:10
Parker
GUI to spusta z inej zlozky. Spust si cmd a vlez tam cez cd prikaz a spust si exe. potom ti to pojde… nový
MM.. 06.03.2017 23:13
MM..
aha :/ to ma mohlo napadnut :( ale bohuzial ak to chcem cez CMD spustit vypise to: This version of… nový
Parker 06.03.2017 23:16
Parker
Neviem jak spusta ten gui DOS programy, to mas 64bitove windows a v nom turbo assembler ci co??? To… nový
MM.. 06.03.2017 23:18
MM..
Ked sa chces vyhnut problemom so zlozkou tak si daj nazov suboru plnu cestu buffer DB 'C:\neco\neco\… nový
MM.. 06.03.2017 23:15
MM..
ani s plnou cestou to nejde :D :D :D toto je hrozne :/ myslis ze by bol problem ak mam projekt na ex… nový
Parker 06.03.2017 23:21
Parker
Neviem kde mas problem ale skusil by som si na tvojom mieste stiahnut dosbox, a tam si to skus spust… nový
MM.. 06.03.2017 23:23
MM..
jasne chapem idem to skusit dakujem :) ozvem sa ci to pojde :) nový
Parker 06.03.2017 23:25
Parker
http://devdocs.inightmare.org/x86-assembly-dos-fil e-inputoutput/ toto proste musi fungovat (OFFSET… nový
MM.. 06.03.2017 23:26
MM..
uz o funguje s DOS Boxom :) dakujem ti velmi pekne :) poslední
Parker 06.03.2017 23:41
Parker

Ma tam byt 0, ziadne uvodzovky.

Skus si trebars napevno

buffer DB 'halo.txt',0

mov dx, buffer
a zavolaj to otvorenie suboru 

potom sa stane co?
Program spustas z jakej zlozky a si vobec v DOSe a ne vo Windows? halo.txt je v ktorej zlozke?

P.S> dos programy by mali ist aj v 32bitovych win, int21 samozrejme emuluje Win.
P.S.2. DS register dufam nemenis nikde, ak ano tak ho musis nastavit nazad jak bol.

GUI to spusta z inej zlozky. Spust si cmd a vlez tam cez cd prikaz a spust si exe. potom ti to pojde.
Pracovna zlozka neni ta kde je exe ale moze byt ina v zavislosti na tom ze jak sa to spusta.
Napr. ak som v zlozke C:\
a napisem
test\program\neco.exe
tak spustim neco.exe ale pracovna zlozka je C:\ a subory sa hladaju v C:\
!!!

aha :/ to ma mohlo napadnut :( ale bohuzial ak to chcem cez CMD spustit vypise to:

This version of E:\...\zad1.exe is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher. Hmm neda sa na tom IDE nejako nastavit aby to bralo ten textak? :/

Neviem jak spusta ten gui DOS programy, to mas 64bitove windows a v nom turbo assembler ci co??? To ale tak nefunguje.
P.S. ale skus si za prve pozriet nastavenia projektu tam je pracovna zlozka pre spustanie debugovanie apod, a za druhe mozes si dat ten .txt subor do vyssiej zlozky o jedno apod to je zvycajne to spravne.

Zpět do poradny Odpovědět na původní otázku Nahoru