83021 Untitled31 (2)

83021 Untitled31 (2)



54 6. RAM czy SFR ?

Z instrukcjami bitowymi związane są również instrukcje umożliwiające rozgałęzienia programu. Wynika to ze szczególnej roli jaką pełnią bity rejestru statusowego PSW i bity w ogóle. Rozgałęzienia programu są efektem zaistnienia pewnych warunków, dlatego instrukcje realizujące te funkcje nazwane zostały skokami warunkowymi. W skład instrukcji skoków warunkowych wchodzą następujące rozkazy:

rozkazy 2-bajtowe:

JZ

rei

;jeśli A=0 to skok do adresu = PC + 2 + rei

JNZ

rei

;jeśli A*0 to skok do adresu = PC + 2 + rei

JC

rei

;jeśli C=1 to skok do adresu = PC + 2 + rei

JNC

rei

;jeśli C=0 to skok do adresu - PC + 2 + rei

rozkazy 3-bajtowe:

JB

bit,rel

;jeśli bit=l to skok do adresu PC + 3 + rei

JNB

bit,rel

;jeśli bit=0 to skok do adresu = PC + 3 + rei

JBC

bit,rel

;jeśli bit=l to bit 4- 0 (zerowanie bitu) oraz

skok do adresu = PC + 3 + rei

We wszystkich podanych rozkazach licznik rozkazów PC zawiera adres wykonywanej instrukcji. Ponieważ każdy z rozkazów jest rozkazem 2 lub 3-bajtowym, dlatego do wartości licznika rozkazów PC dodawane jest 2 lub 3.

Wszystkie rozkazy testujące bity (z wyjątkiem rozkazu JBC) nie zmieniają wartości testowanego bitu. Instrukcja JBC bit,rel zeruje wskazany bit jeśli bit przed wykonaniem rozkazu miał wartość 1 i wykonuje skok do podanego adresu.

Konstruktorzy mikrokontrolera 8051 przewidzieli bitowy i bajtowy przepływ danych.

Jedyną operacją wykonywana na słowie, zmiennej 2-bajtowej, jest 3-baj-towy rozkaz:

MOV DPTR,#dana_16

gdzie dana_16 jest zmienną 2-bajtową.

Nawet 16-bitowe rejestry wewnętrznych układów, takich jak rejestry liczników i rejestry sterujące pracą liczników, nie są dostępne słowowo. Dlatego wpisywanie do nich 16-bitowych wartości musi odbywać się dwu-etapową Najpierw do części mniej znaczącej, a później do części bardziej znaczącej (lub odwrotnie). Przykładowo wpis wartości początkowej 4AC6h do licznika Tl

MOV    TLI ,#0C6h    ;TL 1 <- 0C6h

MOV    THl,#4Ah    ;TH1 <- 4Ah

lub wykorzystując właściwości asemblera (polecenia asemblera):

MOV    TLl/#Low4AC6h    ;TL1 <-0C6h

MOV    THl,#High 4AC6h    ;TH1 <- 4Ah

Polecenia High i Low mają za zadanie wyodrębnić ze zmiennej 2-bajtowej 4AC6h:

•    Low - bajt mniej znaczący czyli wartość 0C6h,

•    1 iigh - bajt bardziej znaczący czyli wartość 4Ah.


Pytania i problemy

1.    Jakie są sposoby adresowania wewnętrznej pamięci RAM i rejestrów specjalnych SFR ?

2.    Czy rejestry specjalne SFR trzeba dołączać do mikrokontrolera jak zewnętrzną pamięć danych ?

3.    Jakie adresy przyporządkowane są rejestrom speqalnym SFR ?

4.    Ile rejestrów posiada mikrokontroler 8051, a ile 8052 ?

5.    Co to są banki rejestrów, jak je zmieniać i adresować ?

6.    Podaj przykłady instrukcji, w których do adresowania drugiego argumentu posłużono się adresowaniem:

a) rejestrowym    b) pośrednim    c) bezpośrednim

d) natychmiastowym    e) indeksowym

Podaj ograniczenia wynikające z sposobu adresowania.

7.    Wyjaśnij jaka jest różnica między instrukcjami XCH, XCHD oraz SWAP.


Wyszukiwarka

Podobne podstrony:
89366 Untitled29 50 6. RAM czy SFR ? 5 KAM czy SI R ? 51 przy odczytywaniu bajtów ze stosu instrukcj
Untitled30 52__6. RAM czy SFR ? Rejestr ten stosowany jest do adresowania zewnętrznej pamięci danych
Untitled27 (2) 46 6. RAM czy SFR ? •    wymiana typu XCH A,Rn zastąpiona trzema
39789 Untitled28 48 6. RAM czy SFR ? 6 RAM cz> SFR
Untitled24 (2) * 6. RAM czy SFR ? Wewnętrzna pamięć RAM w mikrokontrolerze 8051 liczy
66821 Untitled26 45 44 6. RAM czy SFR ? (y RAM czy SFR ? •    podanie jego symbolu i
Untitled32 56 6. RAM czy SKR 0 8. Do czego służą rejestry: 56 6. RAM czy SKR 0 a) A d) SP b) B e) DP
Untitled32 56 6. RAM czy SKR 0 8. Do czego służą rejestry: 56 6. RAM czy SKR 0 a) A d) SP b) B e) DP
Untitled25 (2) 42 6. KAM czy SFR ? MOV    R0,#80h    ;R0 *- 80h M
Untitled32 56 6. RAM czy SKR 0 8. Do czego służą rejestry: 56 6. RAM czy SKR 0 a) A d) SP b) B e) DP

więcej podobnych podstron