egzamin nr1

background image

1. Zbiór typu .hex jest wynikiem pracy assemblera. Jest to standardowy format zapisywany
w kodzie ASCII wierszami o następujących polach: kod startu ':' liczba bajtów danych
(dwa znaki), adres pamięci kodu, od którego wpisywane będą dane tego wiersza (4 znaki),
typ pola danych (dwa znaki, 00 - oznacza treść programu, 01 - oznacza wiersz końca), 2n
znaków dla n bajtów danych, najmniej znaczący bajt sumy kontrolnej utworzonej ze
wszystkich bajtów bez pola ':' i bez siebie samej.
Ten bajt sumy przed zapisem ma zmieniony znak wg "uzupełnienia dwójkowego" (czyli
wynik powstaje z odjęcia od 0x100 albo przez XOR x 0xFF i dodaniu 0x01). Przykład
wiersza programu do ładowania od adresu 00A0, oraz wiersza sygnalizującego koniec
zbioru:
:1000A000C0E0C0D0D2D3C2D4C2AAC218753AFFC22F
:00000001FF
Sprawdź, czy następujący wiersz jest poprawny:
:10022000D2A8D2A9D2ABD2ACE4F52FF52AF5477506
TAK

2. Napisz obsługę przerwania timera T0, zliczającego cykle maszynowe w trybie 16-bitowym.
Załóż, że T0 jest uruchomione. W przerwaniu zwiększana jest wartość zmiennej ILE aż
osiągnie ona wartość 0xDE. Wtedy T0 ma zostać zatrzymane.
potrzebna tylko procedura Timer0
Adres przerwania T0: 0Bh
Rejestr TMOD dla trybu 16-bitowego timera 0 wygląda tak: 00000001b
On/Off przerwań dla timera 0: ET0
On/Off timera 0: TR0
On/Off globalny przerwań: ET

ILE DATA 20h

CSEG AT 0Bh
AJMP timer0_interrupt

CSEG AT 0h
AJMP reset

CSEG AT 30h

reset:

MOV TMOD, #0000001b

SETB ET0

SETB EA

SETB TR0

CLR A


start:

SJMP $

timer0_interrupt:

INC A

MOV ILE, A

CJNE A, #0DEh, dalej

CLR TR0

dalej:

RETI


END


background image

3. Podaj cechy architektury ARM, które zasadniczo różnią ją od „rodziny 8051” i AVR.
ARM - wykonuje praktycznie wszystkie instrukcje w jednym cyklu podczas gdy 8051 potrzebuje
przeważnie więcej niż 1 np: BNEQ w ARM potrzebuje 1 cyklu DJNZ w 8051 potrzebuje 3. ARM jest
bazowany na RISK gdy 8051 jest bazowany na architekturze CISC. ARM oparty jest na architekturze
ładuj/zapisz, dane musza być przechowywane w rejestrze przed przetwarzaniem a w 8051 można
dostęp uzyskać do pamięci bezpośrednio. ARM posiada warunkowe instrukcje przetwarzania danych
(tj. przed wykonaniem instrukcji sprawdzany jest określony warunek), 8051 nie posiada takiej funkcji.
Główną różnicą między rodziną AVR a 8051 są typy adresowania. O wiele więcej rejestrów możemy
zaadresować w AVR niż w 8051, co ułatwia programowanie i skraca kod. Inną różnicą jest to, że
instrukcje AVR zmieniają o wiele więcej flag mikrokontrolera.


4. Napisz w assemblerze program, który ustawia zmienną PARITY na 1, gdy liczba jedynek w
trzech bajtach 24-bitowej zmiennej umieszczonej w adresach BAJT, BAJT+1, BAJT+2 jest
nieparzysta, a ustawia - w przypadku przeciwnym.
napisane w asemblerze MCS-51 [ 1- nieparzyste, 0-parzyste]
CSEG AT 0H
AJMP start

ZMIENNA DATA 30h
PARITY BIT 0h

start:
MOV 30h,#00010001B
MOV 31h,#01000000B
MOV 32h,#00000000B
CLR PARITY
MOV R0,#ZMIENNA
MOV R1,#3
sprawdzaj:
MOV A,@R0
JNB PSW.0,dalej
CPL PARITY
dalej:
INC R0
DJNZ R1,sprawdzaj
MOV P2,20h
END


5. Wymień najważniejsze różnice architektur RISC i CISC.
Architektura CISC (Complex Instruction Set Computer - komputer o złożonym zbiorze rozkazów)
cechuje się dużą ilością złożonych rozkazów (mikrokodowanych) mających zmienny format, małym
zestawem rejestrów strukturalnych oraz zazwyczaj rozbudowanym sposobem adresowania, Nacisk
na sprzęt
architektury RISC (Reduced Instruction Set Computer - komputer o zredukowanym zbiorze instrukcji)
cechy to zastosowanie niewielkiej listy prostych rozkazów, stałej długości rozkazu, dużej ilości
uniwersalnych rejestrów wewnętrznych, uproszczenie trybów adresowania i, zazwyczaj,
zastosowanie architektury load/store (ładuj/zapisz), czyli rozdzielenie rozkazów operujących na
pamięci od reszty rozkazów. możliwość wykonywania rozkazów w jednym cyklu zegara, a dokładniej
kończenia jednego rozkazu w jednym cyklu zegara przy spełnieniu określonych warunków, Nacisk na
oprogramowanie

background image

6. z tablicy pod adresem 0x50 o długości 0x40 wybierz bajty z parzysta liczba jedynek i utworzyc z
nich nową tablice
Ogólnie pod adresem na który wskazuje zmienna BUFOR (50h) mamy aktualną tablice. Przenosimy te
elementy, które mają parzystą liczbę jedynek w zapisie bitowym do tablicy o adresie zdefiniowanym
w TABLICA (70h). Wykorzystujemy bit PSW.0 (patrz zad. 4).

ILE EQU 8 ; 0x60 = dec. 64 = 8 bajtów (elementów)
BUFOR DATA 50h
TABLICA DATA 70h

CSEG AT 0h
JMP start
start:

MOV R0, #TABLICA

MOV A, #0

MOV DPTR, #BUFOR

MOV R1, #ILE


loop:

MOV A, #0

MOVC A, @A+DPTR ; Do A ladujemy WARTOSC z adresu 0x50 ...

INC DPTR ; ... ktory zwiekszamy z kazdym obrotem petli

JNB PSW.0, dodaj_do_tablicy ; jezeli PSW.0 = 0 (parzyste) to skocz

do event

powrot:

DJNZ R1, loop ; licznik petli 8 do 0

AJMP $


dodaj_do_tablicy:

MOV @R0, A ; Ladujemy element do adresu 0x70...

INC R0 ; ...ktory zwiekszamy z kazdym obrotem petli

AJMP powrot


CSEG AT BUFOR
DB 1,2,3,4,5,6,7,8
; tablica z kolejnymi wartosciami
; bitowo: 1, 10, 11, 100, 101, 110, 111, 1000
; mamy 3 elementy z parzysta liczba bitow

END


7. DAC 10-bitowy o Uref =2.048V jaka będzie odpowiedź analogowa gdy rejestr danych
przechowują wartosci: DACDATAH = 0 DACDATAL = 0xF3
Nie jestem pewien co do tego wzoru, ale ciężko znaleźć coś sensownego na ten temat.
D = 0xF3 = 243 dec.
N = 10
U

ref

= 2,048

U

out

=U

ref

*D/2

N


U

out

= 2,04800 * (243 / (2^10)) = 0,486


background image

8. napisz podprogram dla uzyskania opóźnienia 1ms. Procesor ma cykl maszynowy równy 0.5us
Obliczamy x - liczbę potrzebnych cykli
1ms = 1000µs
1000 = x*0,5
x = 2000

MOV R1, #4
petla:
MOV R0, #165
DJNZ R0, $
DJNZ R1, petal
NOP
NOP
NOP


1+(1+165*3+3)*4 = 1997 + 3 = 2000

NOP, MOV – 1 cykl
DJNZ – 3 cykle

9. bufor danych znajduje się w pamięci pod adresem umieszczonym w R0 o długości umieszczoniej
w R1 utwórz 16 bitową sumę kontrolną w parze R2,R3
Nie do końca poprawnie, bo adres pamięci jest adresowany bezpośrednio (MOV DPTR, #50h) a nie
poprzez R0.

CSEG AT 0h
JMP start

start:

MOV R1, #08h

MOV R2, #0

MOV R3, #0

MOV DPTR, #50h

petla:

MOV A, #0

MOVC A, @A+DPTR

; tmp

MOV R5, A

MOV A, R3

ADD A, R5

MOV R3, A

MOV A, #0

ADDC A, R2

MOV R2, A

INC DPTR

DJNZ R1, petla


CSEG AT 50h
DB 132,245,135,234,215,134,156,159

END


Wyszukiwarka

Podobne podstrony:
egzamin nr1
egzamin nr1 odp
Egzamin zaoczne
Pytania egzaminacyjneIM
ANALIZA WYNIKÓW EGZAMINU GIMNAZJALNEGO DLA UCZNIÓW KLAS III
zadania egzaminacyjne
Egzamin 2008 2009
Egzamin poprawkowy I 2009 2010
Egzamin II ze statystyki luty 2007
312[01] 01 122 Arkusz egzaminac Nieznany (2)
Egzamin praktyczny Zadanie Nr 4
konta egzaminacyjne id 246765 Nieznany

więcej podobnych podstron