Cykl pamięci (ang. memory cycle) - ciąg operacji składających się na jeden dostęp (odczyt lub zapis) do pamięci. W każdym cyklu maszynowym następuje wysłanie:
adresu na magistralę adresową,danych na magistralę danych,sygnałów sterujących, informujących o rodzaju cyklu, na magistralę sterującą.
Układy pamięci lub wejścia - wyjścia powinny w tym czasie wykonać odpowiednie czynności - zapisać dane lub wysłać je na magistralę danych. Cykl pamięci często jest utożsamiany z cyklem maszynowym.
Licznik rozkazów (ang. program counter) – rejestr procesora; adresuje pamięć programu, przechowując adres, spod którego należy pobrać kod następnego rozkazu lub argument bieżącego rozkazu (np. rozkaz MOVC A,@A+PC z listy procesora Intel 8051).
Przykład:
Rozkazy Znaczenie
MOV R2, #n; R2 ß n
MOV [R1],[R3+]; wykonaj n-razy:
{
[R1] ß [R3]
R1 ß R1 + 1
R3 ß R3 + 1
}
R1, R2, R3 – rejestry robocze,
[Rx] – adres komórki pamięci zapisanej w Rx.
Wskaźnik stosu (ang. stack pointer) – rejestr procesora; adresuje pamięć o organizacji typu „stos” (ang. LIFO – last in first out), wskazując tzw. wierzchołek stosu, czyli adres ostatnio zapisanych danych. Wykorzystywany jest do:
· tymczasowego zapisu danych:§ przechowywanych w rejestrach (rozkazy połóż na stos, zdejmij ze stosu),§ w fazie wykonywania niektórych rozkazów przez mikroprocesor (np. dodawanie danych wielobajtowych);· zapisu zawartości licznika rozkazów PC podczas wykonywania rozkazu wywoływania podprogramu lub obsługi przerwania. Adres przechowywany w PC zostaje zapamiętany na stosie w celu umożliwienia powrotu do programu głównego po zakończeniu wykonywania podprogramu;· przechowywania danych wyrażanych za pomocą notacji przyrostkowej, zwanej również odwrotną notacją polską.
Rozkazy procesora – typy i przetwarzanie
Rozkazy maszynowe są przetwarzane przez procesor jako dane binarne (zerojedynkowe). Każdy rozkaz posiada unikatowy kod operacji oraz opcjonalnie dodatkowe elementy:
przedrostek (ang. prefix) – warunkuje sposób wykonania rozkazu,kod operacji (ang. opcode) – określa operację, jaka ma być przeprowadzona;przyrostek (ang. postfix) – określa rodzaj i typ argumentów, odniesienie do argumentów źródłowych (ang. source), którymi mogą być: dane bezpośrednie, adresy pamięci lub układów we-wy, rejestry procesora;odniesienie do argumentów przeznaczenia (ang. destination) lub wyniku (ang. result), którymi mogą być: adresy pamięci lub układów we-wy, rejestry procesora;odniesienie do następnego rozkazu – określa adres następnego rozkazu, który będzie wykonany po rozkazie bieżącym.
Przykład 1:
NOP; nic nie rób
NOP – opcode zapisany w języku symbolicznym, tzw. mnemonik,
Przykład 2:
ADD A , R1; A ß A + R1
ADD – opcode,
A, R1 – argumenty źródłowe, A – argument przeznaczenia.
Przykład 3:
MOVX A , @R1; A ß [R1]
MOV – opcode, X – przyrostek, oznacza zewnętrzną pamięć lub układy wejścia-wyjścia,
[R1] – argument źródłowy, A – argument przeznaczenia.
Przykład 4:
LJMP adres; PC ß adres
L – przyrostek (ang. long)
JMP – opcode,
adres – adres następnego rozkazu.
Typowe rodzaje operacji wykonywane przez procesor:
transferu (przesłań) danych,arytmetyczne,logiczne,konwersji (translacji),wejścia-wyjścia,sterowania systemowego,przekazywania sterowania.
Opis skrótów:
aź – argument źródłowy,
ad – argument docelowy (przeznaczenia),
aźd – argument jednocześnie źródłowy i docelowy.