CW 02 B 8080 1

background image

AK

Ćw. 2, 3

Architektura prostego procesora (8080).
Programowanie w j
ęzyku maszynowym.

(Materiał na 2 jednostki)


Cel ćwiczenia: Poznanie programowania w języku maszynowym na przykładzie prostego procesora 8-bitowego

Literatura: A. Niederli

ński, „Mikroprocesory, mikrokomputery, mikrosystemy”, WSiP, 1987

Sprzęt i oprogramowanie: Komputer z procesorem 8-bitowym (CA80), Komputer PC z zainstalowanym

symulatorem procesora 8085

Sprzęt nadobowiązkowy: Analizator stanów logicznych

Pomoce: Tabela kodów rozkazów 8080 w kolejności alfabetycznej (do asemblacji), Tabela kodów rozkazów

8080 według numerów kodów (do dezasemblacji)

Zagadnienia:

Architektura procesora 8080 (rejestry, znaczniki, sposób adresowania pamięci, stos)

Pamięć RAM i ROM

Start komputera

Zapis szesnastkowy liczb dwójkowych

Budowa rozkazu

Zapis liczb dwójkowych, dziesiętnych i szesnastkowych

Język asembler i język maszynowy

Rozkazy procesora:

-

przesłań

-

arytmetyczne, logiczne

-

sterujące: skoki, skoki warunkowe, wywołanie podprogramu, powrót z podprogramu

-

inne: NOP, HLT, RST0

Zapis w pamięci argumentów wielobajtowych (little endian i big endian)

Tłumaczenie z języka asembler na język maszynowy

Tłumaczenie z języka maszynowego na asembler

Cykl rozkazowy – pobranie i wykonanie rozkazu

Dodawanie liczb wielobajtowych. Przeniesienie. Znacznik przeniesienia.

Polecenia:

0. Oblicz parametry, które posłużą do indywidualizacji programów

a = ( 3 ostatnie cyfry numeru indeksu) jeżeli a <100 to przyjmij a=173

10

b = ( 2 ostatnie cyfry numeru indeksu) jeżeli b <20 to przyjmij =52

10

Zamień a i b na postać szesnastkową i oznacz odpowiednio ah i bh. Do zamiany na postać szesnastkową

możesz wykorzystać kalkulator dostępny w systemie Windows.

Oblicz zmienne par1, par2, ... Wartości zapisz szesnastkowo

par1=8500H + ah

par2 = A000H + ah

par3 = 30H + bh

background image

par4 = 20H + bh

par5 = MSB(par1) (Most Significant Byte)

par6=LSB(par1) (Least Significant Byte)

par7=MSB(par2)

par8=LSB(par2)

1.

a. Przetłumacz Program 1 na język maszynowy procesora 8080. Wszystkie parametry w postaci

szesnastkowej (adresy też). Zapisz go w postaci:

Adres

kod rozkazu rozkaz w postaci mnemonicznej. Np.,:

8000

3E 50

MVI A,50H

8002

D3 21

OUT 21H

Uwaga: przekład w kodzie HEX. Znak H na końcu liczby pominięto.

Przyjmij, że pierwszy rozkaz zapisany jest w komórce 8000H.

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 maszynowy.

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

3.

Co będzie skutkiem wykonania powyższego programu?

4.

Zmień poprzedni program, tak aby wpisywał do pamięci kolejne 100 liczb począwszy od 0.

5.

Wykorzystując obliczone w punkcie 0 parametry przetłumacz na język maszynowy poniższy program.

i ustal, co będzie wynikiem jego wykonania.

Początek od adresu par1.

MVI B,par3

LXI H, par2

MVI A,par4

background image

POWT:

MOV M,A

INR A

INX H

DCR B

JNZ POWT

HLT

6.

Autor symulatora SIM8085 przewidział, że program będzie kończył się rozkazem HLT. W praktyce

prawie nigdy nie kończymy aplikacji rozkazem HLT.

a.

Dlaczego?

b.

Dokąd powinno wrócić sterowanie po zakończeniu aplikacji?

c.

Jak to zrobić?

7.

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?

8.

Wykonaj dezasemblację następującego programu zapisanego w języku maszynowym:

Program 4: 3E 22 D3 15 00 00 21 00 AA 77 C7

9.

Jakie skutki spowoduje wykonanie następującego programu:

Program 5

Adres

Zawarto

ść

F0A0

CD

F0A1

A0

F0A2

F0

10.

Napisz program dodający 2 liczby 24 bitowe umieszczone w pamięci i przetłumacz go na język

wewnętrzny procesora 8080.

11.

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

12.

Wykonaj dezasemblację poniższego programu. Jeżeli kod nie odpowiada żadnemu rozkazowi to wstaw

NR (Nielegalny Rozkaz).

Program 6: 3E 17 00 21 par3 55 par4 66 par5 par6 00 00

12. Jaki rozkaz wykonuje komputer na rysunku poniżej?


Wyszukiwarka

Podobne podstrony:
Cw 02
ĆW 02
Cw 02 M 04A Badanie wlasciwos Nieznany
acad cw 02 (2)
acad cw 02
Cw 02 ?danie wytrzymalosci dielektrycznej dielektrykow stalych przy napieciu? i?
Cw 02 Twierdzenie Thevenina i Nortona [wersja 2]
ćw 1 # 02 2011
ćw 02 15
Biofizyka Ćw 02
ćw.02.03.06 - Ścieki, Ścieki:
ćw.02.03.06 - Ścieki, Ścieki:
cad 1 I Cw 02 2014
Cw 02
Ćwiczenia PProg cw 02
CW 02 betonowy str 31 48
MD cw 02 id 290123 Nieznany

więcej podobnych podstron