Gépi kódok és összeszerelési nyelvek programozása - a gépi kódok első lépései -
3. A Z -80 processzor architektúrája.
A processzorszerkezet több regisztert tartalmaz. Számukra dolgozunk gépi kóddal. Tekintse ezeket a regisztereket a processzor belső memóriájába. Ha sejtekből számítógép állandó memória (ROM) csak olvasni információk, és amikor dolgozik elsődleges memória (RAM) információ a rekord, és olvassa el, ha a nyilvántartások is gyártanak nagy számú különböző aritmetikai és logikai műveleteket a regiszter tartalma .
F, A, B, C, D, E, H, L, SP, PC, IX, IY, I, R.
Ez a nyilvántartások alapvető készlete. Van még egy további készlet, más néven alternatívaként, ezt alaposan megvizsgáljuk.
Néhány ilyen nyilvántartások, - nyolc-bites (egy bájtos) és tartalmazhatnak egész szám 0 és 255 között Ez regisztrálja F, A, B, C, D, E, H, L, I, R.
Mások 16 bites (kétbájtos). Ezek 0 és 65535 közötti egész számokat tartalmazhatnak. Ezek az SP, PC, IX, IY regiszterek.
Egyes egybájtos regiszterek BC, DE, HL két bájt regiszterpárokkal kombinálhatók. Ebben az esetben egy ilyen párról beszélhetünk, mint egy külön hexadecimális regiszter.
A Z-80 processzor egy nagyon aszimmetrikus processzor, azaz minden regiszternek olyan sajátosságai vannak, amelyek különböznek a többiektől, és különböző regisztereket úgy terveztek, hogy különböző funkciókat hajtsanak végre.
Tekintsük az alapkészlet regisztereit.
Regisztráljon egy A - akkumulátort.
Ezt a regisztert akkumulátorként hívják sok esetben a művelet végrehajtásának eredménye továbbra is benne van. Ebben a nyilvántartásban a legtöbb aritmetikai és logikai parancs végrehajtásra kerül. Ez a processzor legfontosabb egybájtos regisztere. Sok csapat még azt sem adja meg, hogy melyik regiszterhez tartoznak: ezek az A. regiszterhez tartoznak.
A B, C, D, E, H, L regiszterek általános célú regiszterek.
Ezeket a regisztereket a processzor széles körben használják különféle parancsok végrehajtása során. A jellemző az, hogy lehet használni, mint egybájtos egységes és regisztrálja, mint egy kétbájtos hexadecimális regiszter pár: BC, DE, HL.
Ebben az esetben a parancsok maximális száma a HL regiszterrel rendelkezik. Kétbájtos egész számokkal végzett munka esetén ugyanolyan fontos, mint az A regiszter, amikor egy bájtos értékekkel dolgozik.
A DE nyilvántartáshoz egy rövidítést használnak a "cél" szóhoz. Sőt, sok olyan műveletben, ahol valami mozgásban van valami, a HL-nyilvántartás jelzi, hogy hol szerezheti meg, és a DE nyilvántartja, hogy hova küldje.
A BC regiszterhez kiválaszthatja a hátsó számláló ("fordított számláló") csökkentését. Ezekben az esetekben, amikor egy bizonyos parancssorozatot meg kell ismételni n-szer, azaz. Amikor a számítási ciklus megszervezése történik, a ciklus számlálója a BC regiszterben tárolódik.
Amikor egyes regisztereket párosba egyesít, az első a felső bájtot tárolja, a második pedig a fiatalabb. Szóval, B, D, H - az idősebb, és C, E, L - a fiatalabb. Azok számára, akik kevés angolul ismerkednek meg, az emlékeztető a HL-regiszter neve. Először, H magas, majd L alacsony.
Az SP regiszter egy veremmutató.
Azokban az esetekben, ahol ez szükséges egy bizonyos idő, hogy kiadja a nyilvántartás (vagy regiszter) és jegyezze meg a tartalmát, amíg a további felhasználás, a számítógép lehet használni, mint egy átmeneti tárolója bizonyos része RAM nevezett halom gép. Ügyeljen a "gép" szóra. Vannak más halmok, mint például a számológép vagy egy halom, mondjuk, a felhasználó verem, amely akkor jön létre maguk számára, saját használatra, hanem az, hogy még csak most jön, de most beszéljünk a gép verem. A verem egy olyan memóriaorganizáció, amelyben az adatokat letölti és feltölti LIFO alapon (utoljára az első ki).
A PC regiszter programszámláló.
Az F regiszter a zászlók nyilvántartása.
Ez a regiszter különbözik mindenektől. Nem kezelnek külön regiszterként, amely nyolc számjegyű számot tárol, hanem mint nyolc külön zászlóbit. Minden zászló beállítható vagy törölhető; A megfelelő bit BE (1) vagy OFF (0). Az alábbiakban a zászlóregiszter felépítése látható:
· Bit 1 - addíció / kivonási flag N;
· Bit 2 - túlcsordulás / paritás zászló P / V
· 3. bit - nem használt;
· Bit 4 - féligáteresztő zászló H;
· 5-ös bit - nem használt;
· 6-os bit - nulla zóna Z;
· A 7-es bit az S jel zászlója.
Zászlók C. P / V. Z. S - különböző csoportokban aktívan használják. Figyelembe kell venni ezen zászlókkal való munkát az 5.9.5 fejezetben.
Az N és H zászlókat a programozó nem használja. Részt vesznek a műveletek végrehajtásában, tizedes számmal, bináris formában. Erről a következő fejezetben fogunk beszélni.
IX, IY - index regisztereket regisztrál.
Regisztráció R - regenerációs regiszter.
Ez egy belső rendszerregiszter, amelyet a processzor automatikusan használ, a programozó részvétele nélkül. A memória chipek elektromos töltése általában "leereszkedik", ezért a normál számítógépes működéshez szükség van a RAM újratöltésére (regenerálására). Ebből a célból az R-regisztert használják.
Regisztrálj I a megszakítások vektora.
A Z-80 processzor alapján szerelt egyéb rendszerek számítógépei számára ez a regiszter a perifériás eszközökkel történő cserét szervezi. A "Spectrum" -ben ezt a lehetőséget nem használják, és ez a regiszter csak a televíziós jel kialakításában vesz részt.
Alternatív nyilvántartások.
A Z-80 processzor egyik megkülönböztető jellemzője egy alternatív regiszter-készlet. Ezek a regiszterek F ', A', B ', C', D ', E', H ', L'. Teljesen azonosak az F, A, B, C, D, E, H, L nyilvántartásokkal.
Az ilyen alternatív készletek jelenléte lehetővé teszi, hogy gyorsan átkapcsoljon egyik készülékről a másikra. Ha általános műveletekkel kell végrehajtania bizonyos műveleteket, és már elfoglalták őket, és nem tudják elveszíteni az általuk tárolt adatokat, háromféle módon lehet előtte:
1. Küldje el a tartalmat a memóriába, majd küldje vissza.
2. Helyezze a tartalmat a kötegre, majd tegye vissza.
3. Váltson egy alternatív regisztersorozatra, és dolgozzon vele, majd kapcsolja vissza a fő készletet.
A harmadik út a leggyorsabb.
Egy alternatív készlet rendelkezésre állása miatt a processzor egyidejűleg két feladatot is ellát. Abban az időben, amikor átkapcsoltál egy alternatív készletre, akkor válik a főbbé, és az előbbi a legfontosabb - válik alternatívává. Fizikailag ezek a készletek teljesen azonosak, ezért nincsenek szoftvereszközök annak meghatározására, hogy melyik készleten dolgozik. A program kiderül, hogy túl bonyolult és a programozónak szüksége van némi figyelmet.
A gépi kódok első lépései - A nagyon - az első lépés.
A gépi kódok első lépései - Miért kell programozási programot tanulni a gépi kódokban?
A gépi kódok első lépései a Z-80 processzor architektúrája.
A számok ábrázolásának formái a Z-80 processzorban - Numerikus rendszerek. Bináris kiegészítő rekord formája. Decimális számtani értelemben.
Számtani és logikai parancsok - Addíciós parancsok. Kivonási parancsok. Összehasonlító parancsok. Logikai parancsok.
Elágazási műveletek - Ugrás parancsok. Műveletek egy ciklusban. Stack parancsok. Subroutines hívás.
Parancsok a ROM eléréséhez - Startup pontok a ROM-ban. A beépített számológép leírása.
Parancsok a bitekkel való munkához - Parancsok a bitek eltolásához, forgatásához és ellenőrzéséhez.
Memória - Memóriablokk feldolgozási utasításai.
I / O - Parancsok a külső eszközökkel való munkavégzéshez.
Megszakítások - a Z80 processzor megszakító rendszerének leírása.
Egyéb parancsok - a Z80 processzor specifikus parancsainak leírása.
Következtetés - a könyv első részének vége és megjegyzései.
II. Rész - "A gépi kódok programozásával foglalkozó workshop". Bevezetés.
A Z80 processzor jellemzői - az első rész anyagának rövid reprodukálása több oldala, a processzor főbb jellemzőinek áttekintése.
A processzorvezérlő rendszer bővítése aritmetikai konstrukció.
A processzor parancsrendszerének bővítése - logikai konstrukciók.
A parancsfeldolgozó rendszer bővítése - az adatátvitel kialakítása.
A processzor parancsrendszerének bővítése - elágazó struktúrák.
A processzor parancsrendszerének bővítése - az alprogramhívás tervezése és visszatérése. Egyéb építmények.
Programok elemzése gépi kódokban - kimenet a színes csíkok szegélyéhez.
Programok elemzése gépi kódokban - adatok küldése a képernyőre a gépi kódtól.
Programok elemzése a gépi kódokban - a program kezelése a Kempston joystickból.
Programok elemzése gépi kódokban - a program vezérlése a billentyűzetről.
Programok elemzése gépi kódokban - a számítógép RAM-jának ellenőrzése.
A gépi kódok programjának elemzése gyakorlati módja a számológép használatának.
A gépkódok programjainak elemzése egy példa a második típusú megszakítások használatára.
A csatornák és a patakok standard csatornák. Más csatornák. Információcsatorna a csatornákról. Csatlakozó szálak. Gyakorlati módszerek a csatornákkal és áramlásokkal való együttműködésre.
2. kiegészítés - a tipikus hibák áttekintése, amelyek a gépi kódok programozásakor jelentkeznek.
III. Rész - útmutató a gépi kódok programozásához. Bevezetés.
Parancsrendszer - a kódértékek összefoglaló táblázata 0-tól 255-ig a Basic és Assembler számára.
A parancsrendszer az Assembler kódértékének táblázata.
3. táblázat - beépített számológép parancsrendszer.
Dictionary assembler mnemonika - a Z-80 processzor gépi kódjának összes betűrendes betűrendben történő emlékeztetése.
5. táblázat - megszakítási mutató táblázat ROM-ból.
Oroszítás - Ruszifikálás UDG szimbólumokkal.
Oroszítás - Oroszítás a generátor cseréjével. Russifikáció "a nyomtató alatt" és "az írógép alatt".
Hasznos tippek - néhány gyakorlati javaslat a számítógép számítógépesítéséhez.
Következtetés - köszönjük figyelmét a könyvünkre. Ha elolvastad a végét, és mindent, ami benne világos, akkor nagy előrelépést tett, de ez még csak az első lépés.