Fórum témák

» Több friss téma
Fórum » Assembly program
 
Témaindító: PiTy85, idő: Dec 14, 2008
Témakörök:
Lapozás: OK   2 / 2
(#) Massawa válasza eudoxia007 hozzászólására (») Márc 1, 2018 / 1
 
Magyarrol nem igen tudok, de szerintem nem is igen fog kelleni. Az ASM sokkal inkább a logikát meg a müszaki ismereteket igényli mint egy tankönyvet. Szinte minden proci más ASM-t igényel és az egyes funkciok általában tartozékai a feljlesztö környezetnek. A legjobb kiválasztani egy menö procit, amihez van egy sereg mintapeogram ( meg kész program is) és azokbol kiindulva irod a magadét.
Van sok (föleg idegennyelvü) forum is, ahol tanácsot is kapsz meg rengeteg müködö megoldást.
(#) eyess válasza eudoxia007 hozzászólására (») Márc 1, 2018 / 1
 
Például Agárdi Gábor Gyakorlati Assembly , és a második része pedig haladónak.Vagy még egy
kicsit már komolyabb Horváth Gábor Assembly Védett módú programozás.Vagy például egy régi GDF es videó anyag is .
A hozzászólás módosítva: Márc 1, 2018
(#) tcs52 válasza eudoxia007 hozzászólására (») Márc 5, 2018 /
 
Az assembly programozással kapcsolatos téma annyira szerteágazó, hogy nagyon kevés támpont van a kérdésedben a jó válaszhoz. Pinpongozni megtanulni sem elegendő, hogy egy labdajátékokat részletesen tárgyaló könyvet beszerzünk. A programozás is egy nagyon gyakorlatias szakma, elméletben és fejben nem fog menni.
Számos kérdés merül fel:
1. Teljesen kezdő vagy-e vagy már programoztál, kezdetlegesen vagy már komolyabb feladatot is?
2. Milyen nyelveket, ismersz már melyik nyelvcsaládból (Basic, Pascal, C++, Forth, Prolog, COBOL)
2. Melyik processzorhoz kódolnál Assemblyben, milyen környezethez (pl. PC/MAC, DOS/Win/Linux, Real/Protected mód, stb.)
3. Milyen témakörben van szükség az Assembly-re (kiegészítő kódok, rendszerprogramozás, beágyazott rendszer)
4. Programozáshoz azt sem árt tudnod miben vagy erősebb: algoritmusokban, adatszerkezetekben, mindkettőben (vagy gőzöd sincs miben).
5. Szintén jó ha az ember tisztában van, a gyakorlati programozási munka sötétebb oldalaival (agygörcsöt okozó tervezési bambulás; sok ezer programsorok kódolásának favágása; hibajelenségek frusztráló özönének helyes feldolgozása; a témával kapcsolatos információmorzsák ezreinek a fejben tartása; hozzánemértő főnökök számára látszólagos tétlenséged elfogadható kimagyarázása; a termékeny haladáshoz szükséges tartós és teljes mértékű lekötöttség katasztrofális hatása a párkapcsolatokra, stb.)

PC-re 30 évvel ezelőtt még elég jó könyv jelent meg Pethő Ádámtól a Számalk kiadásában (Assembly Alapismeretek) valós módú környezethez (DOS). Az ebben leírtakat azonban mára már jelentősen ki kell egészíteni korszerű ismeretekkel.
(#) protorg hozzászólása Ápr 26, 2023 /
 
sziasztok!

egy régi program részletet nem igazán tudok értelmezni,kérlek segítsetek.
egy call ugrik ide.
adt:
push af 'miért rakja a verembe?
adt1: in a, 01H 'A-ba tölti a 01 cim értékét
and 08H 'and 8
cp 08H '???????????
jr nz,adt1 ' ugrás vissza adtr1 re ....
pop af 'ki veszi a verem ből , de ugyanazt amit az elején betett???
out (dp),a 'dp cimre ki irja A értéket
returtn

én igy gondolom ,de a push és a pop nem tiszta hogy mit csinál az AF.
(#) Hp41C válasza protorg hozzászólására (») Ápr 26, 2023 / 1
 
Idézet:
„push af 'miért rakja a verembe?”

Mert egy utasítással menti a A és a FLAG regisztert.
Idézet:
„adt1: in a, 01H 'A-ba tölti a 01 cim értékét”

Pontosabban a 0x01 című periféria regiszter értékét.
Idézet:
„and 08H 'and 8”

Csak a 3. bitet hagyja meg mivel a maszkban csak az az egy bit 1.
Idézet:
„cp 08H”

Beállítja a FLAG regiszter bitjeit mintha elvégezné az A regiszter értékének összehasonlítását a 0x08 értékkel.
Idézet:
„jr nz,adt1”

Visszaugrik az adt1 címkén levő utasításra, ha az összehasonlítás eredménye nem 0.

Magyarán adig vár, amíg a 0x1 című perifária regsizter 3 bitje 0 -ra nem vált.
Idézet:
„pop af 'ki veszi a verem ből , de ugyanazt amit az elején betett???”

Igen. Miután legalább egyszer beolvastunk adatot az A regiszterbe és a maszkolás (and) a FLAG regiszter bitjeit is megváltoztatja, a ciklusból kilépve az A tartalma 0. A push utasítással elmentett értéket visszatöltjük. Amúgy a következő utasítás fel is használja az A regiszter értékét.
Idézet:
„out (dp),a 'dp cimre ki irja A értéket”

A dp által megcímzett perifária regiszterbe kiírja az A regiszter értékét - azt amit a call utasítás vérgehajtásánál benne volt.
A hozzászólás módosítva: Ápr 26, 2023
(#) helektro válasza Hp41C hozzászólására (») Ápr 26, 2023 /
 
"Magyarán adig vár, amíg a 0x1 című perifária regsizter 3 bitje 0 -ra nem vált."

A 'jr nz,adt1' akkor ugrik vissza, ha a 3.bit =0 (nem tudom pontosan milyen CPU ez, de általában ha a 'cp 08H' összehasonlítás logikai igaz, akkor lesz a Z=1, azaz ha a==08H)

Vagyis pont fordítva, addig várakozik, míg a 3. bit nem lesz 1.

(a cp utasítás alapesetben egy kivonás, csak az eredmény nem kerül letárolásra)
(#) Hp41C válasza helektro hozzászólására (») Ápr 28, 2023 /
 
Köszönöm a helyreigazítást...
Valószínűleg egy I8080 vagy Z80 (utód) lehet.
Minek is a cp 0x08 utasítás? Az and 0x08 ugyanis beállítja a FLAG regiszter Sign, Zero, Parity bitjeit...
(#) helektro válasza Hp41C hozzászólására (») Ápr 29, 2023 /
 
Jó meglátás. Passz...
Következő: »»   2 / 2
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem