Kezdőoldal » Számítástechnika » Programozás » Ez mit jelent és hogy tudom...

Ez mit jelent és hogy tudom megoldani? os.asm:24: error: parser: instruction expected

Figyelt kérdés

Amikor az assembly fájlt át akarom konvertálni (a Nasm programmal) img fájlként akkor ezt a hibaüzenetet dobja mindig ki... Légyszives ne fikázzatok, tényleg most kezdtem.

Ha kell itt a kód: [link]



2021. ápr. 10. 10:19
1 2
 1/14 anonim ***** válasza:
20%

LOL


DOS alá fejlesztenél manapság, valós módban?

2021. ápr. 10. 10:44
Hasznos számodra ez a válasz?
 2/14 A kérdező kommentje:
Igen
2021. ápr. 10. 10:47
 3/14 anonim ***** válasza:
29%

Így nem lehet tanulni.

Ezért buktok, ezért nem vezet sikerre az otthoni vergődésetek, mert foglamatok nincs arról, hogy mit is csináltok és még arról sem, hogy mi mást kellene és hogyan másképp.


Ez a kód egy ezer éves, boot szektorba irandó valami, ráadásul csak olyan gépen működne [ha lefordulna], ami 16 bites és valós módban bootol. Ráadásul a BIOS-ra támaszkodik, onnan hívogatja a ROM print rutinját.


Így nem lehet valaminek nekiállni, mert hamar kudarc, vagy sírás és feladás lesz a vége.

2021. ápr. 10. 10:51
Hasznos számodra ez a válasz?
 4/14 anonim ***** válasza:
93%

Nem dv hanem dw ("Define Word"):

[link]


Egyébként lefordítva

nasm -f bin -o bootloader.bin bootloader.asm

és lemezképre írva:

dd status=noxfer conv=notrunc if=bootloader.bin of=bootloader.img

virtuális gépben (Virtualbox) működik:

[link]

2021. ápr. 10. 14:12
Hasznos számodra ez a válasz?
 5/14 A kérdező kommentje:
Köszönöm a választ 4.
2021. ápr. 10. 15:44
 6/14 anonim ***** válasza:
0%

Ha nem tudsz programozni, akkor ne az assemblyvel kezdj, mert annak megértéséhez már megszerzett tudás és a tetejébe még hardver ismeretek is szükségesek.


Ez az általad válaszott kód is jól mutatja, hogy milyen problémákkal szembesülhetsz, mindjárt az elején.


1. Ha meg is tanultad volna úgy-ahogy hasonló kódfragmentumok segítségével a dolgot, az csak valós módban működött volna és a tanultaknak is csak ott látnád hasznát, viszont valós módot* ma már nem használ senki.

2. A kódod - a DOS-hoz hasonlóan - a BIOS rutinjait használja, te viszont azt sem tudod mi az. Ha történetesen tudnád is, a BIOS forráskódja nem áll rendelkezésedre, csak a függvényeinek neve és azok paraméterezhetősége. Azzal meg mit érnél? Megtanulnál 100 függvényt, azok paramétereit, de azt már nem tudnád, hogy a függvény, amit meghívsz, mit is csinál és hogyan.

3. Amíg egy pascal, egy python vagy strukturált basic megtanulásához _alapszinten_ elég kb. 15-20 kulcsszó, és négy-öt változótipus, addig assemblyben neked kell(ene) megírnod még a ciklusokat is mert abban nincsenek ilyenek, változótipusok meg végképp. Ez olyasmi, mintha a kőműves tanoncnak kellene elkészítenie a téglát, a kőműveskanalat, és a felhasználandó cementet is ő égetné.

4. Ha egy magas szintű nyelven írsz valamit, akkor azt vagy azonnal futtathatod a nyelv interpreterével, vagy lefordítod annak fordítójával és kész vagy. Assemblyben ez nem elég. Ott sok egyebet is tudnod kell, pl. hogy mi az az "org 0x07C00", vagy a "times 510-($-$$) db 0", de ismerni kell a processzor üzemmódjait, a memória címzésmódjain, a megszakításrendszeren, egyebeken túl.


Amíg ezekkel tisztában nem vagy, addig neked minden sor kód szenvedés lesz. És ilyen fiaskók mentén összeszedni a szükséges tudást, hát, az nem kevés fölösleges időráfordítást, rengeteg kudarcélményt valószinűsít.


* a valós mód az x86-os processzorok egyik üzemmódja. Ma már sehol nem használatos. Egy másik üzemmódot alkalmaz mindenki - ez a védett mód - és kivétel nélkül erre épülnek a ma használatos operációs rendszerek is.

2021. ápr. 10. 18:16
Hasznos számodra ez a válasz?
 7/14 anonim ***** válasza:
47%

Tényleg nem kötöszködésből írom, amit írok. ...csak jött pár gondolat.


A DOS-ban való real (valós) illetve protected (védett) mód programozását lehetett a hagyományos értelemben vett igazi programozásnak nevezni. Akit érdekelt és az időt, energiát sem sajnálta rá, az egészen szépen megtanulhatott programozni, megértette hogyan működik egy számítógép.


Néha, ha rámjön a "görcs", még manapság is el-elkap a hév, hogy írjak valamit asszembly-ben, persze manapság vagy építesz egy régi gépet vagy virtuális gépen vagy DOSBox-ban.


Nem kell lefikázni a gyereket, ha neki ez tetszik, had csinálja. Na persze lehet, hogy nem éppen egy boot-szektorban elinduló kóddal kellene kezdeni, de végül hátha kijön majd egy új operációs rendszer, a kezdők egyik nagy kedvence... :-)


#6-osnak: Egy kicsit túlzásbavitted az okoskodást, de a neten ezt már megszokhattuk.


1.: "...viszont valós módot* ma már nem használ senki."


Attól, hogy te nem használsz, hidd el, hogy azért akadnak páran, akik érdeklődnek az "új" dolgok iránt.



2.: "...a BIOS forráskódja nem áll rendelkezésedre, csak a függvényeinek neve és azok paraméterezhetősége. Azzal meg mit érnél?..."


Mi van? A számítógépben interruptokon keresztűl valósul meg nagyon sokminden, legalábbis a CISC-típusú processzoroknál. ...és ezeknek nagyon jó leírásuk van, az egyik legismertebb a Ralf Brown-féle:


[link]


...és itt nem 100 függvényről van szó... :-) ...és ezt nem kell bemagolni. De ha belemerülsz akaratlanul is rádtapad egy nagyrakás.



3.: "...addig assemblyben neked kell(ene) megírnod még a ciklusokat is mert abban nincsenek ilyenek, változótipusok meg végképp..."


Úristen, reméltem, hogy nagyobb hülyeséget már nem fogsz írni, de sikerült. Hogy assemply-ben nem lenne ciklus? ...és változótípusok végképp???


Ciklus:

[link]


Akár még egysoros változatban is, ismétlésnek nevezik:

[link]


Adattípusok:

[link]


Amúgy a többi részével a hozzászólásodnak többé-kevésbé egyet lehet érteni.

2021. ápr. 12. 13:58
Hasznos számodra ez a válasz?
 8/14 anonim ***** válasza:
0%

" Egy kicsit túlzásbavitted az okoskodást,"


Ezt sajnos rólad lehet elmondani, de úgy teszed ezt, hogy nincs mire okoskodj, mert iszonyatosan hülye vagy ahhoz, amiről írsz.


Hogy szokjad:

Assemblyben NINCS ciklus, majom, ahogy általános, vagy absztrakt adattipusok sem [én egyébként változókról írtam, seggfej]. Adatok vannak, bizonyos méretben. 8, 16, 32, 64 bit, stb.


Még valami: A te "tudásod", az nulla, használhatatlan, semmi.

Te csak egy utolsó, tanulatlan, kis ripacs vagy. Hozzám választ a jövőben ne címezz, mert nem vagyok kiváncsi a birkaságaidra, tévedéseidre, hülyeségeidre.

2021. ápr. 12. 14:19
Hasznos számodra ez a válasz?
 9/14 anonim ***** válasza:
0%

Hazug mondó:


Azon nincs mit csodálkozni, hogy te, azzal ellentétben amit hazudtál, assembly-ben még egy hello world-ot sem írtál, mert erre sem lennél képes, na de, hogy alapszinten angolul se tudj, ezt azért nem illene reklámoznod:


Amire hivatkoztál, az asm ciklus okán:


"The JMP instruction can be used for implementing loops."

"The processor instruction set, however, includes a group of loop instructions for implementing iteration."


Ennyit rólad, meg a "tudásodról", ostoba pancser.

2021. ápr. 12. 14:35
Hasznos számodra ez a válasz?
 10/14 anonim ***** válasza:

Ez meg lemaradt, de hát, nem csoda, hiszen ha tudnál csak egy picit is angolul, akkor nem hivatkoztál volna rá:


"The REP prefixes apply only to one string instruction at a time. To repeat a block of instructions, use the LOOP instruction or another looping construct."

2021. ápr. 12. 17:01
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!