tup cw1


Cele ćwiczenia

Poznanie oprogramowania narzędziowego i zasad jego wykorzystania przy uruchamianiu systemów mikroprocesorowych.

Zweryfikowanie informacji dotyczących funkcjonowania przykładowego mikroprocesora 8-bitowego.

Zdobycie praktycznych umiejętności potrzebnych przy uruchamianiu systemów mikroprocesorowych z mikroprocesorami uniwersalnymi.

Stanowisko badawcze

Ćwiczenie przeprowadzane jest w dwuosobowych grupach przy stanowisku komputerowym. Wymagany jest komputer klasy Pentium, z systemem operacyjnym Windows, wyposażony w kolorową kartę graficzną i takiż monitor. Na komputerze powinny być zainstalowane programy narzędziowe (program metaasemblera C32.EXE
i symulatora ekranowego SYMULATOR.EXE). Wymienione oprogramowanie narzędziowe w całości jest umieszczone w kartotece D:\Z80. Studenci piszą i uruchamiają swoje programy w indywidualnych podkartotekach, założonych w kartotece D:\Z80\LAB na pierwszych zajęciach

Przebieg ćwiczenia

W symulatorze procesora Z-80 zostały wpisane dwa programy, a następnie zostało sprawdzone ich działanie.

Program 1:

CPU "Z80.TBL"

HOF "INT8"

zm: equ 20h ; deklaracja zmiennej

org 0h ; adres początkowy programu

ld sp,38h ; zainicjowanie wskaźnika stosu

ld b,8 ; B=licznik pętli

petla: ld a,b ; zapis `b' do akumulatora

add a,b ; dodanie wartości b do akumulatora

ld c,a ; zapis zawartości akumulatora do rejestru c

push bc ; zapis na stos 2 bajtów

djnz petla ; realizacja pętli programowej

ld hl,zm ; zapis zmiennej 'zm' do rejestru hl

ld (hl),a ; zapis rejestru hl do akumulatora

halt

end

Opis działania programu

W programie tym najpierw została zadeklarowana zmienna oraz została podany adres początkowy adres programu. Następnie został zainicjowany wskaźnik stosu oraz licznik pętli B. Wynik działania pętli zapisywany jest do zmiennej „zm”.

Program 2:

Program ma dodawać dwie liczby trzybajtowe. Wynik ma być zapisywany w postaci liczby trzy lub cztero bajtowej.

CPU "Z80.TBL"

HOF "int8"

L1: ld A,150 ; deklaracja zmiennej; zapis wartości 150 do akumulatora

ld (41H),A ; zapis zawartości akumulatora do komórki 41H

ld A,1 ; zapis wartości 1 do akumulatora

ld (42H),A ; zapis zawartości akumulatora do komórki 42H

ld A,150 ; zapis wartości 150 do akumulatora

ld (43H),A ; zapis zawartości akumulatora do komórki 43H

L2: ld A,200 ; deklaracja zmiennej; zapis wartości 200 do akumulatora

ld (51H),A ; zapis zawartości akumulatora do komórki 51H

ld A,1 ; zapis wartości 1 do akumulatora

ld (52H),A ; zapis zawartości akumulatora do komórki 52H

ld A,200 ; zapis wartości 200 do akumulatora

ld (53H),A ; zapis zawartości akumulatora do komórki 53H

ld B,A ; zapis zawartości akumulatora do rejestru B

ld A,(43H) ; zapis zawartości komórki 43H do akumulatora

add A,B ; dodanie zawartości rejestru B do akumulatora

ld (63H),A ; zapis zawartości akumulatora do komórki 63H

ld A,(52H) ; zapis zawartości komórki 52H do akumulatora

ld B,A ; zapis zawartości akumulatora do rejestru B

ld A,(42H) ;zapis zawartości komórki 42H do akumulatora

adc A,B ; dodanie zawartości rejestru B z flagą przeniesienia do akumulatora

ld (62H),A ; zapis zawartości akumulatora do komórki 62H

ld A,(51H) ; zapis zawartości komórki 51H do akumulatora

ld B,A ; zapis zawartości akumulatora do rejestru B

ld A,(41H) ; zapis zawartości komórki 42H do akumulatora

adc A,B ; dodanie zawartości rejestru B z flagą przeniesienia do akumulatora

ld (61H),A ;zapis zawartości akumulatora do komórki 61H

JP C,PR ;skok do etykiety PR, jeżeli flaga CY=1

PR: LD A,1 ; etykieta PR; zapis wartości 1 do akumulatora

LD (60H),A ; zapis zawartości akumulatora do komórki 60H

halt

end

Program po kolei zapisuje do akumulatora bajty dwóch liczb trzybajtowych. Następnie najmłodszy bajt pierwszej liczby jest dodawany do najmłodszego bajtu drugiej liczby, całość zapisywana jest w akumulatorze w przypisanej komórce pamięci (63H). Starsze bajty są dodawane z flagą przeniesienia, gdy suma bajtów z dwóch liczb jest większa niż 255, wtedy do starszego bajtu dodawany jest 1. Wynik liczby może być czterobajtowy, gdy wynik dodawania najstarszych bajtów dwóch liczb jest większy niż 255.

Wnioski:

Procesor Z-80 może być wykorzystany do dodawania liczb wielobajtowych. Pętle mogą być wykonane przy użyciu instrukcji skoku.



Wyszukiwarka

Podobne podstrony:
Matlab cw1 2 zaoczni
ćw1 Maszyna turinga
MZ TZrokII cw1(1)
ćw1
cw1 modelowanie id 122786 Nieznany
cw1
Ćw1 Punkty pomiarowe
Ćw1 Budowa i geometria ostrzy skrawających jakieś opracowanko
Tabelka do lab-cw1, Studia Budownictwo PB, 5 semestr, laborki metal
cw1
ĆW1 doc biochemia
cw1 (2)
GRI cw1 id 195763 Nieznany
Biochemia(ŻCz)Ćw1 Właściwości fizyko chemiczne aminokwasów
cw1
ćw1&2 3M3
cw1 2
cw1 rysunek

więcej podobnych podstron