Wykl-instr8051-II.pdf
(
5517 KB
)
Pobierz
Week4
Lista Instrukcji procesora
8051
Część druga – skoki i wywołania
podprogramów, operacje na stosie,
operacje bitowe
Przeniesienie sterowania
Nasze dotychczasowe instrukcje wykonują się sekwencyjnie – jedna po
drugiej
Programy, które rozwiązyją rzeczywiste problemy muszą mieć oczywiście
możliwość zmiany sekwencji wykonywanych instrukcji w zależności od
pewnych warunków
“If” akumulator jest równy 0 “then”
Odpal rakiet
“Else”
Poczekaj jeszcze chwilk
Osiąga się to przez instrukcje
skoków
i
skoków warunkowych
(czyli przez
przeniesienie sterowania
oraz
warunkowe przeniesienie sterowania
)
Przeniesienie sterowania
Mamy do wykonania następujące zadanie:
A = R1+R0
Wylicz R1 + R0 i zachowaj w A
Umieść 0 w R2
R2 = 0
“ If” A = 0 “ then”
Umieść 13 w R2
A == 0
FALSE
TRUE
Wylicz R2 + R3 i umieść wynik w
R2 = 13
R5
By wykonać to zadanie potrzebujemy instrukcji
skoku warunkowego
R5 = R2 + R3
JZ rel
Przeniesienie sterowania:
JZ rel
Instrukcja
Instrukcja ma długość 2
bajtów
JZ rel
By zrozumieć jak działa ta
instrukcja (i inne instrukcje
skoków) przyjrzyjmy się
jeszcze adresowaniu
instrukcji w pamięci
programu.
Jeżeli A jest równe zero zmienia
licznik programu (czyli adres
następnej instrukcji) o wartość
równą rel
rel
jest 8 bitową liczbą ze
znakiem
możliwe jest przeniesienie
sterowania zarówno w
przód, jak i w tył
Adresowanie instrukcji
Rozważmy sekwencję
poniższych instrukcji
W pamięci programu kod
będzie miał następującą
postać:
MOV A,R0
ADD A,#55
MOV R5,A
MOV R1,#26H
Niektóre z instrukcji
maja rozmiar jednego
bajtu, niektóre dwóch.
0000H
E8
}
MOV A,R0
24
ADD A,#55
0002H
37
}
0003H
FD
MOV R5,A
}
0004H
79
0005H
26
MOV R1,#26H
}
0001H
Plik z chomika:
inf4
Inne pliki z tego folderu:
Różne drobiazgi.pdf
(1627 KB)
Język C51 - implementacja.pdf
(2335 KB)
Controller area network.pdf
(1264 KB)
Lokalne interfejsy szeregowe.pdf
(5565 KB)
Realizacja algorytmów regulacji.pdf
(1815 KB)
Inne foldery tego chomika:
Emulatory
Zgłoś jeśli
naruszono regulamin