mikroklocki

POLITECHNIKA BIAŁOSTOCKA

WYDZIAŁ ELEKTRYCZNY

KATEDRA AUTOMATYKI I ELEKTRONIKI

Sprawozdanie z zajęć laboratoryjnych:

Technika Mikroprocesorowa 2

Kod: TS1A520312

Ćwiczenie numer: 1

Temat: Obsługa struktur tablicowych na poziomie asemblera.

Wykonujący ćwiczenie:

Rafał Siemieniuk

Patryk Siwerski

Studia dzienne

Kierunek: Elektronika i Telekomunikacja

Specjalność: Aparatura Elektroniczna

Semestr: V Grupa: L02

Prowadzący ćwiczenie: dr inż. Kociszewski Rafał

……………...……..

Ocena

…………………….

Data wykonania ćwiczenia

……………………………………

Data i podpis prowadzącego

  1. Cel ćwiczenia

Celem ćwiczenia było zdobycie praktycznych umiejętności w obsłudze struktur tablicowych na poziomie języka maszynowego.

  1. Opis stanowiska badawczego

Ćwiczenie przeprowadzane zostało w dwuosobowej grupie przy stanowisku komputerowym. Wymagany był komputer klasy Pentium, z systemem operacyjnym Windows, wyposażony w kolorową kartę graficzną i takiż monitor. Na komputerze były zainstalowane programy narzędziowe ( program metaasemblera C32.EXE i symulatora ekranowego SYMULATOR.EXE).

  1. Przebieg ćwiczenia

Uruchomienie przygotowanych programów, wymagających zastosowania struktur tablicowych, w oparciu o symulator ekranowy Z80.

Zad. 1.

Wypełnienie tablicy 8 wartości 1-bajtowych w NB ciągiem

geometrycznym o a0=128 i q=1/2.

CPU "z80.TBL" podanie biblioteki rozkazów

HOF "INT8" rozkazy tłumaczone na kod szesnastkowy

ORG 0H adres początkowy programu

TAB: EQU 30H deklaracja zmiennej „TAB” i przypisanie jej

wartości 30. Określa od którego

pola zaczynać się będzie tablica

ILOSC: EQU 8 deklaracja zmiennej „ILOSC” i przypisanie

jej wartości 8.

A0: EQU 128 deklaracja zmiennej dla „A0” i przypisanie jej

wartości 128.

LD HL, TAB załadowanie pierwszego elementu tablicy TAB do

rejestru HL

LD B, ILOSC załadowanie zmiennej ILOSC do rejestru B

(określa jak długo trwa pętla)

LD A,A0 załadowanie zmiennej A0 do akumulatora

PETLA: LD(HL),A początek pętli; zapis zawartości akumulatora do

komórki pamięci określonej przez TAB

RR A dzielenie zawartości akumulatora przez 2

INC HL inkrementacja, zwiększenie zawartości rejestru

HL o 1

DJNZ PETLA realizacja pętli

HALT zatrzymanie wykonywania pętli

END wyznaczenie końca tekstu programu

Rys. 1. Końcowy stan programu.

Zad. 2.

zmiana kolejności elementów w tablicy wartości 1-bajtowych według

reguły: 0,1,2,3,4,5,6,.. -> 1,3,5,7,..., 0,2,4,6,...;

CPU "Z80.TBL" podanie biblioteki rozkazów

HOF "INT8" rozkazy tłumaczone na kod szesnastkowy

ORG 0H adres początkowy programu

TAB EQU 40H deklaracja zmiennej „TAB” i przypisanie jej

wartości 40. Określa od którego

pola zaczynać się będzie tablica.

TAB2: EQU 60H deklaracja zmiennej „TAB2” i przypisanie jej

wartości 60. Określa od którego

pola zaczynać się będzie tablica.

TAB3: EQU 68h deklaracja zmiennej „TAB3” i przypisanie jej

wartości 68. Określa od którego

pola zaczynać się będzie tablica.

ILOSC : EQU 8 deklaracja zmiennej „ILOSC” i przypisanie

jej wartości 8.

ILOSC2: EQU 4 deklaracja zmiennej „ILOSC2” i przypisanie

jej wartości 4.

A0: EQU 0 deklaracja zmiennej dla „A0” i przypisanie jej

wartości 0.

LD HL,TAB załadowanie pierwszego elementu tablicy TAB

do rejestru HL

LD B,ILOSC załadowanie zmiennej ILOSC do rejestru B

(określa jak długo trwa pętla)

LD A,A0 załadowanie zmiennej A0 do akumulatora

PETLA1: LD (HL),A początek pętli1; zapis zawartości akumulatora

do komórki pamięci określonej przez TAB

INC A inkrementacja, zwiększenie zawartości

akumulatora o 1

INC HL inkrementacja, zwiększenie zawartości rejestru

HL o 1

DJNZ PETLA1 realizacja pętli1

LD HL,TAB załadowanie pierwszego elementu tablicy TAB

do rejestru HL

LD IX,TAB2 załadowanie pierwszego elementu tablicy

TAB2 do rejestru IX;

LD B,ILOSC2 załadowanie zmiennej ILOSC2 do rejestru B

(określa jak długo trwa pętla)

PETLA2: LD A,(HL) początek pętli2; zapis zawartości akumulatora

do komórki pamięci określonej przez TAB

LD (IX+0),A zapis zawartości akumulatora do komórki

pamięci określonej przez zmienną TAB2

INC HL

INC HL podwójna inkrementacja, zwiększenie

zawartości rejestru o 2

INC IX inkrementacja, zwiększenie zawartości rejestru

IX o 1

DJNZ PETLA2 realizacja pętli1

LD HL,TAB+1 załadowanie drugiego elementu

tablicy TAB do rejestru HL

LD IX,TAB3 załadowanie pierwszego elementu tablicy

TAB3 do rejestru IX;

LD B,ILOSC2 załadowanie zmiennej ILOSC2 do rejestru B

PETLA3: LD A,(HL) początek pętli3; zapis zawartości akumulatora

do komórki pamięci określonej przez TAB+1

LD (IX+0),A zapis zawartości akumulatora do komórki

pamięci określonej przez zmienną TAB3

INC HL

INC HL podwójna inkrementacja, zwiększenie

zawartości rejestru o 2

INC IX inkrementacja, zwiększenie zawartości rejestru

IX o 1

DJNZ PETLA3 realizacja pętli3

HALT zatrzymanie wykonywania pętli END wyznaczenie końca tekstu programu

Rys. 2. Końcowy stan programu.

4.Wnioski

Nauczyliśmy się obsługiwać struktury tablicowe w języku asemblera. Przypomnieliśmy sobie używane wcześniej komendy oraz poznaliśmy nowe. Wyniki obu zadań umieszczone są na zamieszczonych rysunkach.


Wyszukiwarka

Podobne podstrony:
Bootloader dla mikrokontrolerów AVR
02 Mikroklimat
Mikrokontrolery Grodzki Sprawoz Nieznany
evboard, Płytka testowa dla mikrokontrolerów AT89S oraz AVR
Konfiguracja pamięci mikrokontrolera 8051 dla programów napisanych w języku C
Mikroklimat TEST nr 2, inż. BHP, V semestr
mim, studia Polibuda Informatyka, III semestr, mikroprocesory i mikrokontrolery (mim)
sprawozdanie mikroklimat i pomiary jego parametrów w środowisku górniczym
Mikroklimat kalkulatory
Mikrokontrolery F Marecki id 30 Nieznany
mikrokomputer 5
Mikrokomputer edukacyjny z 8051 cz 2
ZL5PRG Programator mikrokontrol Nieznany
06 ERGONOMIA MIKROKLIMAT
Mikrokontrolery ARM cz18
Mikrokontrolery ARM cz5
(at)MEGArewolucja nowe mikrokontrolery Atmela(1)
Przykład-mikroklimat, bhp

więcej podobnych podstron