3 Lista instrukcji mikrokontrolera . uwagi ogólne 23
• znacznik przeniesienia połówkowego AC ma podobne znaczenie jak znacznik przeniesienia (C) ale dotyczy przeniesienia między mniej znaczącą i bardziej znaczącą tetradą akumulatora. Jeśli wystąpi przeniesienie między bitami A3 i A4 w skróde A413, wówczas ustawiany jest znacznik AC. Znacznik ten wykorzystywany jest tylko w operacjach arytmetycznych wykonywanych dla liczb zapisanych w kodzie BCD, którym towarzyszy instrukcja korekqi dziesiętnej DA A.
• znacznik nadmiaru OV informuje o:
-* przekroczeniu zakresu 8-bitowych liczb całkowitych ze znakiem, -128D..+127D, -+ iloczynie większym od 255 przy mnożeniu dwóch wartości,
-> próbie dzielenia przez zero przy obliczaniu ilorazu.
Przykładem pierwszego znaczenia jest operacja dodawania dwóch zmiennych:
MOV A,#7FH ;Ac=#7FH
ADD A,#l ;A e= A + 1 - 80H »-128D, OV-l
,-zakres liczb wynosi: -128D..+127D
Znacznik nadmiaru OV jest aktywny (przyjmuje wartość jedynki logicznej) jeśli wystąpiło przeniesienie między bitem Ag i Ay, tzn. A716, które zmieniło bit Ay. Stan znacznika nadmiaru (OV) można określić za pomocą wyrażenia:
OV - C xor Ay \ g
Przykładem drugiej sytuacji jest obliczanie iloczynu zawartości akumulatora i rejestru B:
MOV A,#2 MOV B,#8 MUL AB
; A <= #2
;BA <= A • B,
;$tan procesora: B = 0, A = 10H, C « 0, OV=()
• stan znacznika parzystości P jest taki, aby liczba jedynek w akumulatorze i znaczniku parzystości była parzysta. Znacznik len ustawiany jest po każdej instrukcji zmieniającej stan akumulatora (A):
MOV A.#OFH ;A c= OFH ■ 00001111B. znacznik parzystości P = 0
ADD A,#l ;AeA*l, A = 10H - 0001 OOOOB. znacznik P = 1
ADD A,#l ;A c= A + 1, A =* 11H = 0001 0001B, znacznik P = 0
Wicie z przedstawionych w dalszych rozdziałach instrukcji wpływa na stan niektórych znaczników rejestru statusowego (PSW). Dotyczy to przede wszystkim operacji arytmetycznych i logicznych oraz przesłań międzybitowych, w których jednym 7. argu mentów jest zawsze znacznik przeniesienia.(C). W tabeli 3-1 przedstawiono instrukcje zmieniające znaczniki: przeniesienia (O, przeniesienia połówkowego (AC) i nadmiaru (OV).
Mikrokontroler 80fCl51 - proCTamowanir
i wykonanie skoku względnego do adresu będącego sumą u wartości licznika rozkazów (PC) l przesunięcia rei.'V,.. '*
Stan znacznika przeniesienia (O w wyniku wykonania operacji porównania jest następujący:
• jeśli argumentjl < argument_2 to C = 1,
• jeśli argument_l Z argument_2 to C * 0,
Instrukcje CJNE są jedynymi instrukcjami porównania.
Przykład: ,
Programowa pętla opóźnienia, komórka pamięci RAM o adresie ÓE011 pełni rolę licznika pętli:
Czefcaj_RAM:
MOV R0,#0E0H ;R0 <= OEOH
MOV @R0,*Jak Długo ;(R0) <= Jak_Dlugo Czekaj:
i DEC ORO ,-(R0) <= R0 • 1
CJNE @R0,W,Czekaj ;jeśli (R0)*0 to skok do etykiety Czekaj
Czas trwania opóźnienia określony jest wartością Jak_Dlugo * 3 cykle maszynowe. Dla procesora z rezonatorom kwarcowym f=6 MHz czas opóźnienia wynosi Jak Dlugoł6 ns-
JMP adr
PC cr PC + 2. PC c= PC + 3, PC e= PC + 2. \C cr ix: ♦ 2.
Działanie:
jump Unconditional
PC <= adr_11 PC <= adr_16 PC cr PC + rei PC c= A ♦ DPTR
Adresowanie: Mnemonik:
Struktura bajtów:
Cykle Znacz-
maszynowe: tuki:
natychmiastowe: AJMP adr_ll
A10 a9 a8 0
0 0 0 1
A7"A0
Mitrrnkftnrrolrr - r rnpramownnir