Documente Academic
Documente Profesional
Documente Cultură
Limbajul masina
Definitie
Un limbaj masina este un formalism proiectat pentru a coda programe de nivel jos sub
forma unor instructiuni.
Folosind aceste instructiuni, programatorul poate comanda procesorul:
sa realizeze operatii aritmetice si logice,
sa citeasca sau sa scrie valori din si in memorie
Sa mute valori dintr-un registru in altul
Sa testeze conditii booleene
Etc
Cu toate ca majoritatea programatorilor nu vor lucra direct in limbaj masina, studiul
programarii de nivel jos este o cerinta preliminara a unei intelegeri complete a
arhitecturii calculatoarelor.
De asemenea este fascinant sa observam cum programe sophisticate, sunt de fapt
formate dintr-o lunga serie de instructiuni fundamentale
Masina (computerul)
Aceasta este cea mai des utilizata metoda de adresare a unei locatii de
memorie.
Se face prin specificarea adresei sau a unui symbol ce face referinta la adresa
dupa cum urmeaza
Adresarea imediata
Exte folosita pentru a incarca valori constant, valori care apar explicit in
codul instructiunii.
In loc sa tratam valoarea, ca fiind o adresa, pur si simplu incarcam valoarea
campului intr-un registru.
Adresarea indirecta
Calculatorul Hack are o arhitectura von Neumann. Este un calculator pe 16 biti constand
dintr-un processor, 2 module de memorie separate (memorie de date si memorie de
instructiuni) si doua dispositive de I/O: ecranul si tastatura.
Spatiul de memorie – Programatorul are la dispozitie doua spatii de memorie distincte:
memoria de instructiuni si memoria de date. Amandoua au cuvinte de 16 biti si au un spatiu
de adresa de 15 biti, insemnand ca marimea maxima adresabila este de 32K.
Registrii – Programatorul are la dispozitie 2 registrii numiti D si A. Acestia pot fi manipulate
explicit prin operatii aritmetice si logice. In timp ce registrul D este folosit pentru a stoca
doar date, registrul A poate fi folosit si ca registru de date si ca registru de adresa.
Instructiunea A
Unde value este un numar pozitiv, sau un simbol ce se refera la un astfel de numar
@5 = 0000000000000101
Instructiunea C
Aceasta instructiune poate face aproape orice. Codul instructiunii e o specificatie care
raspunde la urmatoarele trei intrebari:
Ce calculam?
Unde stocam valoarea?
Ce facem dupa?
Impreuna cu instructiunea A, aceste specificarii determina toate operatiile posibile ale
calculatorului
(1)
Input/Output
Monitor
ecran alb-negru format 256*512 pixeli. Continutul ecranului este reprezentat de o harta
de memorie de 8K ce incepe la adresa 16384 (0x4000) din RAM. Fiecare rand este
reprezentat in RAM de 32 de cuvinde consecutive de 16 biti.
Pixelul de pe randul r coloana c este situate la bitul C%16 al cuvantului aflat la adresa
RAM[16384+r*32+c/16]. Pentru a citi sau scrie un pixel pe ecran, trebuie citit / scris bitul
corespunzator al hartii de momorie din RAM (1=negru, 0=alb)
Tastatura
Calculatorul interfateaza cu tastatura folosind un singur cuvant de memorie aflat la
RAM[24576].
Cand se apasa o tasta, codul ASCII al acesteia va aparea in locatia de memorie
respective. Cand nu este apasata nici o tasta codul 0 este setat.
Pe langa codurile ASCII uzuale, tastatura Hack mai recunoaste si simbolurile
din tabela urmatoare
Perspective