TM LAB 1.pdf

(116 KB) Pobierz
Technika Mikroprocesorowa
Laboratorium 1
Wprowadzenie do środowiska programowego, podstawowe operacje na rejestrach
i komórkach pamięci.
Cel ćwiczenia:
Podstawowym celem ćwiczenia jest zapoznanie się ze środowiskiem
programowym do którego należy:
Asembler
DSM51ASS
na procesory rodziny 8051,
Symulator
8052 Simulator for Windows.
Drugi cel to napisanie pierwszego programu i jego uruchomienie.
W ramach ćwiczenia należy opanować:
operacje na plikach(opem, close, save),
edycję programu (edycję programu prowadzimy ,
ustawianie parametrów programów,
uruchamianie napisanych programów na symulatorze,
uruchamianie krokowe,
zastawianie pułapek,
obserwacja rejestrów.
Zadania do wykonania:
1.
2.
Uruchomić symulator start/programy/8052 symulator/8052 symulator
Wczytać przykładowy program z katalogu
C:\TM LAB\DSM51\Przykłady\L01_P1.HEX
a. File/open Intel standard file
3.
Otworzyć okienka:
Online dissasembly Ctrl+D (Pamieć programu)
b. SFR Window Ctrl +S
c. I/O ports Ctrl + P
a.
4.
Wykonać program krokowo (klawisz
z jedną stopą)
a. Obserwować
i. zmienną program counter
ii. port P1
iii. okienko Online dissasembly
zresetować program (klawisz
z żółtą strzałką do tyłu)
c. Wykonać jeszcze raz
d.
zresetować program (klawisz
z żółtą strzałką do tyłu)
e.
ustawić pułapkę (ang. breakpoint ) - okienko
Online dissasembly/toggle
breakpoint
f.
Wykonać jeszcze raz by sprawdzić jak ona zadziała.
b.
5.
Otworzyć plik
L01_P1.ASM
i
L01_P1.LST i L01_P1.HEX
porównać z zawartością
Online dissasembly.
Napisać program w asemblerze sumujący zawartość dwóch rejestrów uniwersalnych
R1 i R2 i zapisujący wynik dodawania do komórki pod wybranym adresem:
6.
(R1) + (R2) -> (adres #3) – wybrany adres w RAM i dodatkowo wynik zapisać także w
XRAM
a. Napisać program przy użyciu notatnika,
i.
Program zapisać z rozszerzeniem *.asm
b.
Program zasemblować (skompilować)
i.
Komenda asemblacji/kompliacji
DSM51ASS.EXE nazwa.asm
ii.
Lub przeciągnąć plik *.asm na ikonę
DSM51ASS.EXE
c.
Przyglądnąć sie plikom wynikowym
*.lst
i
*.hex
(dodatkowe informacje na
końcu instrukcji)
d.
Uruchomić program w symulatorze i wykonując go krok po kroku sprawdzić
poprawność jego działania dla kilku zestawów argumentów, zwracając uwagę
na zmiany zawartości rejestrów procesora (zwłaszcza akumulatora i rejestru
stanu Flgi CY, AC itd.)
e.
Wyjaśnić przyczynę „błędnego” wyniku w komórce ‘adres #3’ dla
argumentów, których suma jest większa nią 255 (0FFh)
f. Poprawić tak program by wynik dodawania był poprawny dla wszystkich liczb
Elementy wymagane przy sprawozdaniu:
Napisany program z komentarzami (kod oraz opis programu)
rozszyfrować kody maszynowe z pliku *.hex i każdemu kodowi przyporządkować
odpowiedni mnemonik/komendę asemblera.
opis użytych rozkazów,
opis rejestru stanu.
SKRÓTOWY OPIS formatu HEX
Przykład pliku HEX
:10010000214601360121470136007EFE09D2190140
:100110002146017EB7C20001FF5F16002148011988
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF
Start code
– (czyli “:”)
Byte count
– liczba bajtów danych w lini
Address
– od którego są wpisywane bajty do pamieci stałej (ROM, EPROM....)
Record type
– Typ rekordu
00,
rekord danych zawierajacy 16 bitowy adres.
01,
Koniec pliku. Zwykle wygląda tak ':00000001FF'.
02,Rozszerzony
Extended Segment Address Record,
segment-base address. Used
when 16 bits are not enough, identical to 80x86 real mode addressing. The address
specified by the 02 record is multiplied by 16 (shifted 4 bits left) and added to the
subsequent 00 record addresses. This allows addressing of up to a megabyte of address
space. The address field of this record has to be 0000, the byte count is 02 (the
segment is 16-bit). The least significant hex digit of the segment address is always 0.
03,
Rekord z adresem początkowy segmenty, procesory 80x86.
04,
Rekord z rozszerzonym adresem (32bity).
05,
rekord z adresem 32bitowym dla procesorów 80386..
Data
– bajty danych
Checksum – suma kontrolna
Zgłoś jeśli naruszono regulamin