Extras din laborator
4.1 Transferuri prin adresare la memorie.
In acest caz, adresa efectiva este specificata de program, folosind unul din modurile de adresare prezentate anterior. Metoda va fi folosita atunci cand se doreste cunoasterea adresei de memorie respective, ea fiind impusa de algoritm. De exemplu, daca se doreste scrierea in memoria ecran care incepe la adresa A000h, adresa efectiva unde se va scrie poate fi specificata explicit de program.
4.2 Transferuri prin stiva
Pentru salvarea in memorie si readucerea din memorie a unor registre se pot folosi instructiunile complementare PUSH rs si POP rd.
Instructiunea PUSH rs:
PUSH rs:
Efect:
Mai intai, registrul SP este decrementat cu 2. Apoi, continutul registrului sursa dublu rs este trimis in memorie (in stiva) la adresa specificata de registrul SP (stack pointer).
SP<- SP-2.
[SP] <- rsL
[SP+1] <- rsH
POP rs:
Efect:
Mai intai, continutul registrului destinatie dublu rd este incarcat din memorie (din stiva) de la adresa specificata acum de registrul SP (stack pointer). Apoi, registrul SP este incrementat cu 2.
rdL <-[SP]
rdH <-[SP+1]
SP<- SP+2.
Lucrul cu stiva prin instructiunile PUSH si POP este comod deoarece nu necesita calculul sau specificarea adresei de memorie. Trebuie sa se tina cont insa de ordinea in care au fost salvate registrele in stiva, astfel ca daca dorim refacerea lor, incarcarea trebuie facuta in ordine inversa.
Preview document
Conținut arhivă zip
- Procedee de transfer cu memoria.doc