Kezdőlap › Fórumok › Programozás › Az elsõ bootolható programom
- This topic has 85 hozzászólás, 18 résztvevő, and was last updated 19 years telt el by
tovis.
-
SzerzőBejegyzés
-
2006-06-26-17:32 #2061914
No meg a string összehasonlítás meg valahogy így fog kinézni (8 bites karakterkészlet esetén, csupán egy db. referencia paranccsal, valós/16 bites módban/segmensben):
Code:xor reg16,reg16
next_char:
mov reg8,[m8/1 + reg16]
cmp reg8,13
jz command_end
cmp reg8,[m8/2 + reg16]
jnz invalid_command
inc reg16
jmp next_charahol
m8/1 a billentyûzetrõl beolvasott parancs
m8/2 referencia parancs(Ja és ez sem space-t, sem semmit nem vizsgál! Na, ezekért ilyen egyszerû.)
2006-06-26-17:40 #2061915„Mindez egy pop al -re”
Ez így nem jó, legyenCode:pop reg16/reg32ami az sp (16 bit), ill. esp értékét növeli 2 ill. 4-gyel, amíg a push fordítva.
2006-06-26-17:46 #2061916Köszi a példákat, késõbb meglesem, hogy menne a progimnban.
2006-06-26-20:02 #2061917Bocs, és a stack pointer inicializálva van?
2006-06-26-20:10 #2061918tovis wrote:Bocs, és a stack pointer inicializálva van?Az egy nasm utasítás? Mert a progi le se fordult ha stack-et akartam használni (ami egyébként nem lényeges), szóval ilyen szempontból szerintem mindegy. Amúgy amikor megpróbáltam (ha ezzel arra utalsz hogy megadom a memóriában a stack helyét), de az lefagyasztotta a progit.
2006-06-26-20:14 #2061919Maul wrote:szóval ilyen szempontból szerintem mindegyJa.
Megbízod a postást, hogy hozza el a leveledet.
De nem mondod meg neki, honnan kéne elhozni.Tényleg mindegy.
2006-06-26-20:20 #2061920kisbetu wrote:Ja.
Megbízod a postást, hogy hozza el a leveledet.
De nem mondod meg neki, honnan kéne elhozni.
Tényleg mindegy.Imádom a beszólásaidat, de azért olvasd el rendesen, mire válaszolsz. A mindegy az az, hogy a progi le se fordul, tehát hiába nem mûködne futás közben, a hiba nem ott van.
2006-06-26-20:29 #2061921vizsla wrote:No meg a string összehasonlítás meg valahogy így fog kinézni (8 bites karakterkészlet esetén, csupán egy db. referencia paranccsal, valós/16 bites módban/segmensben):Tudom, hogy hülyén hangzik, de konkrétan hova milyen változót írjak? Kipróbáltam így, de nem megy:
(help: a stringem, konkrétan egy help szó és utána egy nullás byte
di: elvileg a stosb ide menti a stringet, billentyû lenyomás után másolja be)nezur:
mov al,00
stosb
mov al,0
nezur2:
mov ax,[di+al]
cmp ax,00
je hang
cmp ax,[help+al]
jne nezur3
inc al
jmp nezur2
nezur3:
jmp ujsora
mov ax,[di+al]
és
cmp ax,[help+al]
parancsokra invalid effective addresst ír. De nem értem, miért nem tudja így elérni.2006-06-26-21:20 #2061922Csak egy kis kitérõ: találtam egy 8085-ös kódkészletet… mellékelve küldöm :happy:
Ha valaki átírná a bináris alakokat hexába, és visszaküldené, megköszönném, ma már nem volt se kedvem, se idõm… :blush:
(az elsõ egy KSpead állomány, míg a második egy sima text)[off]
kisbetu: elsõ sorban diák vagyok, másodsorban programozónak tanulgatok, autodidakta módon
[/off]2006-06-27-08:50 #2061923Wait!
Ne aggódj, majd én átváltogatom neked 😀
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz