ARK 320 Ćw. 1
Procesor 8080 programowanie w języku wewnętrznym
Zagadnienia:
Budowa procesora. Programowanie w języku wewnętrznym. Operacje na stosie. Przekazywanie sterowania z programu użytkowego do systemu operacyjnego. Wykorzystanie znaczników.
Wykorzystywany sprzęt i oprogramowanie: Komputer PC + Windows +symulator SIM8085 oraz komputer 8-bitowy CA80
a. Przetłumacz Program 1 na język wewnętrzny procesora 8080. Zapisz go w postaci:
Adres kod rozkazu rozkaz w postaci mnemonicznej. Np.,:
D000 3E 50 MVI A,50H
D002 D3 21 OUT 21H
Uwaga: przekład w kodzie HEX. Znak H na końcu liczy pominięto.
Przyjmij, że pierwszy rozkaz zapisany jest w komórce 1000H.
Przykładowy Program 1
MVI A, 3
MVI B, 6
ADD B
HLT
b. Wpisz program 1 w postaci źródłowej do symulatora a następnie skompiluj go. Czy otrzymany program binarny jest taki sam jak uzyskany w wyniku ręcznego tłumaczenia?
c. Wypróbuj program 1 wykonując go krokowo. Czy program działa zgodnie z oczekiwaniami?
2. Przetłumacz program 2 na język wewnętrzny.
Przyjmij, że pierwszy rozkaz zaczyna się w komórce 8000H. Uwaga w symulatorze SIM8085 możemy wskazać, od jakiego adresu ma zaczynać się przekład. Służy do tego dyrektywa ;org adres np. ;org 3000 wskazuje, że przekład należy umieścić od adresu 3000H
Przykładowy Program 2
MVI B,08H
LXI H, 9000H
MVI A,50H
POWT MOV M,A
INR A
INX H
DCR B
JNZ POWT
HLT
Ustal jakie powinny być skutki wykonania tego programu.
Autor symulatora SIM8085 przewidział, że program będzie kończył się rozkazem HLT. W praktyce prawie nigdy nie kończymy aplikacji rozkazem HLT.
Dlaczego?
Dokąd powinno wrócić sterowanie po zakończeniu aplikacji?
Jak to zrobić?
Jakie będą skutki wykonania programu 3?
Program 3
POCZ: CALL POCZ
HLT
Wypróbuj ten program. Co zaobserwowałeś?
Czy działanie tego programu jest zgodne z oczekiwaniami?
Jakie skutki spowoduje wykonanie następującego programu:
Program 3
Adres Zawartość
F0A0 CD
F0A1 A0
F0A2 F0
Napisz program dodający 2 liczby 24 bitowe umieszczone w pamięci i przetłumacz go na język wewnętrzny procesora 8080.
Napisz program w języku wewnętrznym umieszczający w kolejnych 10 komórkach pamięci kolejne elementy ciągu Fibonacciego.
Ciąg Fibonacciego 1, 1, 2, 3, 5...-każda następna liczba jest sumą dwóch poprzednich