CPCRULE AMSTRAD CODIFICARE CPC

CUNOSTINTE DE BAZA

NOTARE HEXADECIMALĂ: BYTI PUTERI ȘI BYT SĂBIL

Ar fi întotdeauna posibil, dacă am vrea cu adevărat, să lucrăm în limbajul mașinii, oferind computerului date într-o formă pe care toată lumea o știe: notația zecimală.
Din mai multe motive, însă, acest lucru nu este recomandat. Putem cita trei:

  • Unele conversii în hexazecimale ar fi necesare oricum la proiectarea programului.
  • Numerotarea hexazecimală ocupă mai puțin spațiu decât numerotarea zecimală (în special pentru numerele mai mari de 99).
  • Toate lucrările fără excepție care se ocupă de acest subiect sau de un subiect asociat utilizează notație hexazecimală. S-ar putea la fel de bine să te obișnuiești cu el imediat.

Pentru a afla exact ce este, începeți tastând acest lucru pe mașina dvs. (modul direct va fi suficient, adică nu este nevoie să puneți un număr de linie):

PRINT HEX $ (43870)

Răspunsul afișat este: AB5E. Funcția HEX $ a schimbat reprezentarea zecimală a 43870 la reprezentarea hexazecimală. Cele două numere sau litere din dreapta sunt numite octetul cel mai puțin semnificativ, iar cele două din stânga sunt numite cel mai semnificativ octet (în exemplu, cel mai puțin semnificativ octet este 5E și cel mai semnificativ octet AB).
Rețineți că computerul nu se deranjează să scrie 0 posibil situat în stânga ultimei cifre sau a ultimei litere.

2060 este reprezentat în hexazecimal de 80C, care este echivalentul lui 080C. Prin urmare, octetul cel mai puțin semnificativ este OC și cel mai semnificativ octet 8.

HEX $ (255) = FF, care este echivalentul OOFF. În acest caz, cel mai puțin semnificativ octet este FF și cel mai semnificativ octet 0 (sau, dacă doriți, nu există un octet puternic - vom vedea totuși că nuanța poate fi importantă).
Conversia inversă (hexazecimală - zecimală) se poate face după cum urmează:
Număr în zecimal = octetul cel mai puțin semnificativ + (256 * cel mai semnificativ octet)

HEX $ (648) = 288 și & 88 + 256 * & 2 = 648

Semnul & indică computerului că cifra transmisă acestuia este în notație hexazecimală.
În cele din urmă, trebuie remarcat faptul că putem reprezenta numai în numere hexazecimale de la - 32768 la 65535.
Cu toate acestea, numerele negative reprezintă o problemă specială, pe care o vom lăsa deoparte, deoarece nu va apărea în programele noastre. Cu toate acestea, pentru cei interesați, anunțați-i că:

  1. Reprezentarea hexazecimală a numerelor variind de la - 32768 la - 1 este aceeași cu cea a numerelor de la 32768 la 65535 (exemplu: HEX $ (- 21) = FFEB și HEX $ (65515) = FFEB).
  2. Pentru a face conversia hexazecimală - zecimală, există, prin urmare, două posibilități:
  • Dacă nu dorim să ținem cont de semn (dacă știm de exemplu că numărul este pozitiv), folosim formula prezentată mai sus.
  • Dacă doriți să țineți cont de semn, trebuie să utilizați o funcție numită UNT. "

UNT (& FFEB) = - 21 și & EB + 256 * & FF = 65515

ÎNREGISTRĂRI SIMPLE

Pentru a da o idee clară despre acest lucru, am putea spune că programarea în limbajul mașinii constă într-o mare măsură în manipularea diferitelor „casete” în care este posibil să punem valori și pe care le putem de exemplu adăuga și scădea. între ele. Fiecare dintre aceste cutii, numită registru, are un nume. Deocamdată, ne vom concentra pe șapte dintre aceste registre: A, B, C, D, E, H și L.
Pentru informații, să precizăm că registrul A se mai numește acumulator.
Aceste registre simple, oricât de utile ar fi acestea, au un defect serios: putem pune doar numere de la 0 la 255. De aceea există și registre duble.

ÎNREGISTRĂRI DUBLE

Acestea sunt, de fapt, registre simple puse câte două. Vom folosi trei: BC, DE și HL.
În aceste registre duble, putem pune numere până la 65535. Aici vor intra în joc noțiunile de octet mic și octet mare.
Pentru a pune de exemplu valoarea & AB5E (43870 în zecimal) în registrul HL, va fi necesar să punem (spunem și încărcare) octetul mare al acestei valori în H și octetul mic în L. Odată încărcat, HL va apar așa:

cpcrule

Acest ultim exemplu aduce o remarcă importantă: pentru a încărca un registru dublu cu un număr mai mic sau egal cu 255 (deci neavând un octet puternic), este necesar să se ia în considerare faptul că octetul puternic valorează 0 și să îl încărcați în Inregistreaza-te.

În concluzie, să subliniem în cele din urmă că va trebui să folosim și un registru dublu oarecum special, registrul IX. Acest registru se numește registru index.

Pentru noi, stiva nu va fi altceva decât ceea ce sugerează numele său: o serie de date stivuite una peste alta. Nu contează modul în care este gestionat de mașină, principalul lucru este să știi cum să o folosești.
În mod tradițional, comparația utilizată pentru a vorbi despre stivă este cea a stivei de plăci și trebuie recunoscut că este dificil de găsit mai bine.

Spuneți că faceți vasele. Mai întâi spălați o farfurie roșie pe care o așezați undeva în timp ce așteptați clătirea. Apoi speli unul albastru pe care l-ai pus pe roșu, apoi un galben pe care l-ai pus pe albastru. Când spălarea este terminată, puteți începe acum să clătiți. Dacă vă luați farfuriile așa cum apar pe stivă, prima care va fi clătită va fi ultima care va fi plasată, în acest caz cea galbenă.