asm kolokwium #1


1. Podaj przykład adresowania bitowego na przykładzie bitu 2 akumulatora:

CLR ACC.2 - zerowanie

SETB ACC.2 - ustawianie

MOV ACC.2,P1.7 - kopiowanie

CPL ACC.2 - negowanie

2. Stosując operację maskowania na rejestrze PSW zmień bank 1 na bank 2

ANL PSW,#11110111B

ORL PSW,#00010000B

3. Podaj przykład odwołań do pamięci programu oraz zewnętrznej pamięci danych

MOVC A,PC

MOVX A,DPTR

4. Napisz dwie przykładowe pętle licznikowe opierające się na rozkazach DJNZ oraz CJNE

MOV R2,#10

LOOP:

NOP

DJNZ R2,LOOP

==>

MOV R2,#10

LOOP:

NOP

INC R2

CJNE R2,#20,LOOP

5. Napisz procedurę zamiany liczby zapisanej w kodzie BCD na kod U2. Wykorzystaj stos pamięci. Przyjmij przekazywanie danych poprzez rejestry R6 (BCD) i R7 (U2):

BCD EQU R6

U2 EQU R7

BCD_U2:

MOV A,BCD

ANL A,#11110000B

SWAP A

MOV B,#10

MUL A,B

PUSH A

MOV A,BCD

ANL A,#00001111B

MOV U2,A

POP A

ADD A,U2

MOV U2,A

RET

==>

BCD EQU R6

U2 EQU R7

BCD_U2:

MOV A,BCD

ANL A,#11110000B

SWAP A

MOV B,#10

DIV A,B

PUSH ACC

MOV A,BCD

ANL A,#00001111B

MOV B,A

POP ACC

ADD A,B

CPL A

ADD A,#1

MOV U2,A

RET

6. Na przykładzie obsługi Timera 1 pracującego w trybie 1, odmierzającego czas 50ms napisz stosowne podprogramy i procedurę obsługi przerwania. Wskaż miejsce obu procedur w kodzie programu.

LJMP START

ORG 1BH

MOV TL1,#0

MOV TL1,#76

CPL

P1.7

RETI

ORG 100H

START:

LCALL CONF

LCALL

==>

STRAT_TIMERA

SJMP $

CONF:

MOV TMOD,#00010000B

MOV TL1,#0

MOV TH1,#76

SETB EA

SETB ET1

RET

START_TIMERA:

SETB TR1

RET


1. Podaj przykład selektywnego ustawiania, negowania i zerowania bitów 0,2,3,6 w porcie P1.

ORL P1,#01001101B - selektywne ustawianie

XRL P1,#010011001B - selektywne negowanie

ANL P1,#10110010B - selektywne zerowanie

2. Podaj przykład pośredniego zapisu i odczytu pemięci wewnętrznej danych.

MOV R0,#21H

MOV ACC,@R0 - odczyt komórki 21H

MOV @R0,#0FFH - zapis do komórki 21H

3. Stosując adresowanie bitowe skopiuj bit 7 portu P! do bitu 2 rejestru o adresie 20H

MOV C,P1.7

MOV 22H,C

4. Podaj stan rejestrów IE i IP, jeżeli: uaktywniamy przerwania od INT1, T0 i ES. ES ma najwyższy priorytet.

IE = 10010110B

IP = 00010000B

5. Napisz procedurę zamiany zmiennej BIN (30H) w kod U2 (31H) dla liczb z zakresu 0 - 30H. W tym celu wykonaj porównanie arytmetyczne.

BIN EQU 30H

U2 EQU 31H

BIN_U2:

PUSH ACC

CJNE BIN,#30H,DALEJ

DALEJ:

JNC PRZEPISZ; gdy C ustawiony, to BIN < #30H

MOV A,BIN

CPL A

INC A

SJMP KONIEC

PRZEPISZ:

MOV A,BIN

KONIEC:

MOV U2,A

6. Stosując pętlę programową (rozkaz DJNZ) oraz indeksując rejestr R1 poprzez adresowanie pośrednie zaadresuj co drugą komórkę pamięci od adresu 30H do adresu 40H. Do komórek pamięci wpisz ich adresy.

MOV R1,30H

MOV A,#9; będziemy adresować 3-tą komórkę

LOOP:

MOV @R1,R1

INC R1

INC R1

DJNZ A,LOOP



Wyszukiwarka

Podobne podstrony:
asm skrot prezentacji
do kolokwium interna
WODA PITNA kolokwium
KOLOKWIUM 2 zadanie wg Adamczewskiego na porownawczą 97
kolokwium 1
Materiały do kolokwium III
Fizjologia krążenia zagadnienia (II kolokwium)
Algebra liniowa i geometria kolokwia AGH 2012 13
analiza funkcjonalna kolokwium
kolokwiumzTMIC
kolokwium probne boleslawiec id Nieznany
EMP7700 ASM E B SM
Kolokwium (2)

więcej podobnych podstron