CPCRULE AMSTRAD CPC-KÓDOLÁS
ALAP TUDÁS
HEXADECIMÁLIS JELZÉS: ERŐS BÁTOK ÉS GYENGES BÁTOK
Mindig lehetséges, ha nagyon szeretnénk, gépi nyelven dolgozni azáltal, hogy a számítógépet olyan adatokkal látjuk el, amelyeket mindenki ismer: decimális jelölés.
Számos okból azonban ez nem ajánlott. Hármat idézhetünk:
- A program megtervezésekor mindenképpen szükség lenne néhány hexadecimális értékre történő átalakításra.
- A hexadecimális számozás kevesebb helyet foglal el, mint a tizedes számozás (különösen a 99-nél nagyobb számok esetén).
- Minden, kivétel nélkül ehhez a témához vagy hasonló témához kapcsolódó mű hexadecimális jelölést használ. Lehet, hogy rögtön megszokja.
Hogy megtudja, mi is ez pontosan, először írja be ezt a gépére (a közvetlen mód elegendő lesz, vagyis nem szükséges sort írnia):
PRINT HEX $ (43870)
A megjelenített válasz: AB5E. A HEX $ függvény megváltoztatta a 43870 decimális ábrázolását hexadecimálisá. A jobb oldali két számot vagy betűt legkevésbé jelentősnek, a bal oldalon levő kettőt pedig a legjelentősebb bájtnak nevezzük (a példában a legkevésbé jelentős az 5E és a legjelentősebb AB bájt).
Ne feledje, hogy a számítógép nem veszi a fáradtságot, hogy az utolsó számjegy vagy az utolsó betű bal oldalán található 0-t írja.
A 2060-at hexadecimális formában 80C, ami egyenértékű a 080C értékkel. A legkevésbé jelentős bájt tehát az OC és a legjelentősebb bájt 8.
HEX $ (255) = FF, amely megegyezik az OOFF értékével. Ebben az esetben a legkevésbé jelentős bájt az FF és a legjelentősebb bájt 0 (vagy ha akarja, nincs erős bájt - látni fogjuk azonban, hogy az árnyalat fontos lehet).
A fordított konverzió (hexadecimális - decimális) a következőképpen hajtható végre:
Tizedesjegyű szám = legkevésbé jelentős bájt + (256 * legjelentősebb bájt)
HEX $ (648) = 288 és & 88 + 256 * & 2 = 648
A & jel azt jelzi a számítógép számára, hogy a neki továbbított számjegy hexadecimális jelöléssel szerepel.
Végül meg kell jegyezni, hogy csak - 32768 és 65535 között lehet hexadecimális számokban ábrázolni.
A negatív számok azonban sajátos problémát vetnek fel, amelyet félreteszünk, mivel ez nem jelenik meg programjainkban. Azonban az érdeklődők számára tudassa velük, hogy:
- A - 32768 és - 1 közötti számok hexadecimális ábrázolása megegyezik a 32768 és 65535 közötti számokkal (példa: HEX $ (- 21) = FFEB és HEX $ (65515) = FFEB).
- A hexadecimális - decimális konverzió elvégzéséhez tehát valójában két lehetőség van:
- Ha nem akarjuk figyelembe venni a jelet (ha például tudjuk, hogy a szám pozitív), akkor a fent bemutatott képletet használjuk.
- Ha figyelembe akarja venni a bejelentkezést, akkor az UNT nevű függvényt kell használnia. "
UNT (& FFEB) = - 21 és & EB + 256 * & FF = 65515
EGYSZERŰ NYILVÁNTARTÁSOK
Ennek világos megfogalmazása érdekében azt mondhatnánk, hogy a gépnyelven történő programozás nagyrészt különböző "dobozok" manipulálásából áll, amelyekbe lehetőség van értékek elhelyezésére, és amelyek például összeadhatók és kivonhatók. közöttük. Ezeknek a mezőknek, amelyeket regiszternek nevezünk, van név. Egyelőre ezek közül a regiszterek közül hétre fogunk összpontosítani: A, B, C, D, E, H és L.
Tájékoztatásul adjuk meg, hogy az A regisztert akkumulátornak is nevezzük.
Ezeknek az egyszerű regisztereknek, bármennyire is hasznosak lehetnek, komoly hibájuk van: csak 0 és 255 közötti számokat tehetünk fel. Ezért vannak kettős regiszterek is.
KETTŐS NYILVÁNTARTÁSOK
Tulajdonképpen egyszerű regiszterek, kettőből kettőbe rakva. Hármat fogunk használni: BC, DE és HL.
Ezekben a kettős regiszterekben 65535-ig számokat tehetünk fel. Itt fognak megjelenni az alacsony és magas byte fogalma.
Például az & AB5E értéket (tizedesjegyben): 43870 a HL regiszterbe, szükség lesz ennek az értéknek a magas bájtját H-be és az alacsony bájtot L-be. A betöltés után a HL így jelenik meg:

Ez az utolsó példa fontos megjegyzéssel szolgál: egy kettős regiszter 255-nél kisebb vagy azzal egyenlő számmal történő betöltéséhez (ezért nincs erős bájtja) figyelembe kell venni, hogy az erős bájt 0-t ér, és be kell tölteni a megfelelő Regisztráció.
Befejezésül mutassuk meg végül, hogy egy kissé speciális kettős regisztert, a IX regisztert is használnunk kell. Ezt a regisztert indexregiszternek hívják.
Számunkra a verem nem lesz más, mint amit a neve sugall: számos adat egymásra rakva. Nem számít, hogyan kezeli a gép, a lényeg az, hogy tudják használni.
Hagyományosan a veremről való összehasonlítás során a lemezek veremét hasonlítják össze, és el kell ismerni, hogy nehéz jobbat találni.
Mondja, hogy mosogat. Először megmossz egy piros tányért, amelyet letett valahova, miközben az öblítésre várt. Ezután megmos egy kéket, amelyet a pirosra tett, majd egy sárgát, amelyet a kékre tett. Amikor a mosás befejeződött, most elkezdheti az öblítést. Ha úgy veszi a tányérjait, ahogyan a veremen látszanak, akkor először az öblítendő lesz az utolsó, ebben az esetben a sárga.