Kurs Assemblera cz. 3
- TeBe / Madteam
ADC
Działanie instrukcji: dodaje do akumulatora liczbę lub wartość komórki pamięci z uwzględnieniem bitu przeniesienia C. Dlatego też, aby wynik był poprawny należy ten wskaźnik wyzerować instrukcją CLC. Rezultat operacji jest umieszczany w akumulatorze,
Wpływa na wskaźniki: N, V, Z, C
- N: jest ustawiany, gdy najbardziej znaczący bit rezultatu jest ustawiony. W przeciwnym razie jest zerowany.
- V: jest ustawiany, jeśli wynik dodawania w dopełnieniu dwójkowym jest przepełnieniem. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, jeśli wynik jest zerem. W przeciwnym razie jest zerowany.
- C: jest ustawiany, jeśli jest przeniesienie z najbardziej znaczącego bitu wyniku. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod bezpośrednie ADC #operand 2 2 69 str.zerowej ADC operand 3 2 65 str.zerowej,X ADC operand,X 4 2 75 bezwzględne ADC operand 4 3 6D bezwzględne,X ADC operand,X 4* 3 7D bezwzględne,Y ADC operand,Y 4* 3 79 (pośrednie,X) ADC (operand,X) 6 2 61 (pośrednie),Y ADC (operand),Y 5* 2 71
*jeśli granica strony jest przekroczona, to +1.
AND
Działanie instrukcji: logiczna operacja AND wykonywana jest między odpowiadającymi sobie bitami zadanej liczby lub komórki pamięci a akumulatorem. Jeśli obydwa bity są 1, to wynikiem jest 1. W pozostałych przypadkach wynikiem jest 0. Wartość komórki pamięci pozostaje bez zmian. Wynik operacji umieszczany jest w akumulatorze.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, jeśli najbardziej znaczący bit rezultatu jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, jeśli wynik jest zerem. W przeciwnym wypadku jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod bezpośrednie AND #operand 2 2 29 str.zerowej AND operand 3 2 25 str.zerowej,X AND operand,X 4 2 35 bezwzględne AND operand 4 3 2D bezwzględne,X AND operand,X 4* 3 3D bezwzględne,Y AND operand,Y 4* 3 39 (pośrednie,X) AND (operand,X) 6 2 21 (pośrednie),Y AND (operand),Y 5* 2 3l
*jeśli granica strony jest przekroczona, to +1.
ASL
Działanie instrukcji: zawartość komórki pamięci lub akumulatora jest przesuwana w lewo o 1 bit (pozycję). Bit 0 jest ładowany logicznym 0, a bit 7 jest przesuwany do wskaźnika przeniesienia.
C <- 7 6 5 4 3 2 1 0 -> C
Wpływa na wskaźniki: N, Z, C
- N: jest ustawiany, gdy najbardziej znaczący bit komórki pamięci lub akumulatora jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy wynik pamięci lub akumulatora jest zerem. W przeciwnym razie jest zerowany.
- C: jest ustawiany, gdy w rezultacie operacji ASL ustawiony jest wskaźnik przeniesienia. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod akumulatorowe ASL 2 1 0A str.zerowej ASL operand 5 2 06 str.zerowej,X ASL operand,X 6 2 16 bezwzględne ASL operand 6 3 0E bezwzględne,X ASL operand,X 7 3 lE
BCC
Działanie instrukcji: sprawdzany jest wskaźnik przeniesienia (C) i jeśli jest on zerem, to następuje odgałęzienie. W przeciwnym razie wykonywana jest instrukcja następna.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod względne BCC operand 2* 2 90
*jeśli granica strony jest przekroczona, to +1.
BCS
Działanie instrukcji: sprawdzany jest wskaźnik przeniesienia (C) i jeśli jest on ustawiony, to następuje odgałęzienie. W przeciwnym razie wykonywana jest instrukcja następna.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod względne BCC operand 2* 2 B0
*plus 1, jeśli odgałęzienie jest do tej samej strony,
plus 2, jeśli odgałęzienie jest do innej strony.
BEQ
Działanie instrukcji: sprawdzany jest wskaźnik zera(Z) i jeśli jest on ustawiony, to następuje odgałęzienie. W przeciwnym razie wykonywana jest instrukcja następna.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod względne BEQ operand 2* 2 F0
*plus 1, jeśli odgałęzienie jest do tej samej strony,
plus 2, jeśli odgałęzienie jest do innej strony.
BIT
Działanie instrukcji: używana jest do testowania bitów zawartych w akumulatorze z bitami komórki pamięci. Po wykonaniu operacji wartość akumulatora i komórki pamięci nie ulega zmianie.
Wpływa na wskaźniki: N, Z, C
- N: odzwierciedla 7 bit komórki pamięci.
- Z: jest ustawiony, jeśli żaden z bitów komórki pamięci, określonych przez odpowiadające im bity akumulatora, nie jest zapalony. W przeciwnym razie jest zerowany.
- C: odzwierciedla 6 bit komórki pamięci.
Adresowanie Asembler Cykli Bajtów Kod str.zerowej BIT operand 3 2 24 bezwzględne BIT operand 4 3 2C
BMI
Działanie instrukcji: sprawdzany jest wskaźnik N i jeśli jest on ustawiony, to następuje odgałęzienie. W przeciwnym razie wykonywana jest następna instrukcja.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod względne BMI operand 2* 2 30
*plus 1, jeśli odgałęzienie jest do tej samej strony,
plus 2, jeśli odgałęzienie jest do innej strony.
BNE
Działanie instrukcji: sprawdzany jest wskaźnik zera (Z) i jeśli jest on wyzerowany, to następuje odgałęzienie. W przeciwnym razie wykonywana jest następna instrukcja.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod względne BNE operand 2* 2 D0
*plus 1, jeśli odgałęzienie jest do tej samej strony,
plus 2, jeśli odgałęzienie jest do innej strony.
BPL
Działanie instrukcji: sprawdzany jest wskaźnik N i jeśli jest on wyzerowany, to następuje odgałęzienie. W przeciwnym razie wykonywana jest następna instrukcja.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod względne BPL operand 2* 2 10
*plus 1, jeśli odgałęzienie jest do tej samej strony,
plus 2, jeśli odgałęzienie jest do innej strony.
BRK
Działanie instrukcji: ustawiany jest wskaźnik rozkazu BREAK i licznik programu zwiększany jest o 2. Starszy i młodszy bajt licznika programu i rejestru stanu procesora są wpychane na stos. Sterowanie programem jest przeniesione do podprogramu obsługi przerwań rozkazu BREAK.
Wpływa na wskaźniki: B, I
Adresowanie Asembler Cykli Bajtów Kod Implikowane BRK 7 1 00
BVC
Działanie instrukcji: sprawdzany jest wskaźnik przepełnienia (V) i jeśli jest on wyzerowany to następuje odgałęzienie. W przeciwnym razie wykonywana jest następna instrukcja.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod względne BVC operand 2* 2 50
*plus 1, jeśli odgałęzienie jest do tej samej strony,
plus 2, jeśli odgałęzienie jest da innej strony.
BVS
Działanie instrukcji: sprawdzany jest wskaźnik przepełnienia (V) i jeśli jest on ustawiony, to następuje odgałęzienie. W przeciwnym razie wykonywana jest następna instrukcja.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod względne BVS operand 2* 2 70
*plus 1, jeśli odgałęzienie jest do tej samej strony,
plus 2, jeśli odgałęzienie jest do innej strony.
CLC
Działanie instrukcji: zerowany jest wskaźnik przeniesienia (patrz instrukcja ADC).
Wpływa na wskaźnik C (C jest zerowane).
Adresowanie Asembler Cykli Bajtów Kod Implikowane CLC 2 1 18
CLD
Działanie instrukcji: zerowany jest wskaźnik rodzaju dziesiętnego (patrz instrukcja SED).
Wpływa na wskaźnik D (D jest zerowane).
Adresowanie Asembler Cykli Bajtów Kod Implikowane CLD 2 1 D8
CLI
Działanie instrukcji: zerowany jest bit likwidacji przerwań (patrz instrukcja SEI).
Wpływa na wskaźnik I (I jest zerowane).
Adresowanie Asembler Cykli Bajtów Kod Implikowane CLI 2 1 58
CLV
Działanie instrukcji: zerowany jest wskaźnik przepełnienia. Instrukcja stosowana przy dodawaniu i odejmowaniu dużych liczb.
Wpływa na wskaźnik V (V jest zerowane).
Adresowanie Asembler Cykli Bajtów Kod Implikowane CLV 2 1 B8
CMP
Działanie instrukcji: porównanie akumulatora z zadaną liczbą lub komórką pamięci. Po operacji pozostają one bez zmian.
Wpływa na wskaźniki: N, Z, C, V
- N: jest ustawiany, gdy najbardziej znaczący bit rezultatu tego porównania jest ustawiony. W przeciwnym wypadku jest on zerowany.
- Z: jest ustawiany, gdy rezultat jest zerem. W przeciwnym razie jest zerowany.
- C: jest zerowany, gdy zawartość pamięci jest większa od akumulatora. W przeciwnym wypadku jest on ustawiany.
- V: jest ustawiany zgodnie z zasadą uzupełniania do dwóch.
Adresowanie Asembler Cykli Bajtów Kod bezpośrednie CMP #operand 2 2 C9 str.zerowej CMP operand 3 2 C5 str.zerowej,X CMP operand,X 4 2 D5 bezwzględne CMP operand 4 3 CD bezwzględne;X CMP operand,X 4* 3 DD bezwzględne,Y CMP operand,Y 4* 3 D9 (pośrednie,X) CMP (operand,X) 6 2 Cl (pośrednie),Y CMP (operand),Y 5* 2 Dl
*plus 1, jeSli granica strony jest przekroczona.
CPX
Działanie instrukcji: porównanie rejestru X z zadaną liczbą lub komórką pamięci. Po operacji pozostają one bez zmian.
Wpływa na wskaźniki: N, Z, C, V
- N: jest ustawiany, gdy najbardziej znaczący bit tego porównania jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy rezultat porównania jest zerem. W przeciwnym razie jest zerowany.
- C: jest zerowany, gdy zawartość pamięci jest większa od zawartości rejestru indeksowego X. W przeciwnym razie jest ustawiany.
- V: jest ustawiany zgodnie z zasadą uzupełniania do dwóch.
Adresowanie Asembler Cykli Bajtów Kod
bezpośrednie CPX #operand 2 2 E0 str.zerowej CPX operand 3 2 E4 bezwzględne CPX operand 4 3 EC
CPY
Działanie instrukcji: porównanie rejestru indeksowego Y z zadaną liczbą lub komórką pamięci. Po operacji pozostają one bez zmian.
Wpływa na wskaźniki: N, Z, C, V
- N: jest ustawiany, gdy najbardziej znaczący bit tego porównania jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy rezultat porównania jest zerem. W przeciwnym razie jest zerowany.
- C: jest zerowany, gdy zawartość pamięci jest większa od zawartości rejestru indeksowego. W przeciwnym razie jest ustawiany.
- V: jest ustawiany zgodnie z zasadą uzupełniania do dwóch.
Adresowanie Asembler Cykli Bajtów Kod bezpośrednie CPY #operand 2 2 C0 str.zerowej CPY operand 3 2 C3 bezwzględne CPY operand 4 3 C0
DEC
Działanie instrukcji: zawartość komórki pamięci jest zmniejszana o 1.
Wpływa na wskaźnik: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit rezultatu operacji jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy wynik operacji jest zerem. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod str.zerowej DEC operand 5 2 C6 str.zerowej,X DEC operand,X 6 2 D6 bezwzględne DEC operand 6 3 CE bezwzględne,X DEC operand,X 7 3 DE
DEX
Działanie instrukcji: zawartość rejestru indeksowego X jest zmniejszana o 1.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit rejestru indeksowego jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy rejestr indeksowy jest zerowy. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod Implikowane DEX 2 1 CA
DEY
Działanie instrukcji: zawartość rejestru indeksowego Y jest zmniejszana o 1.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit rejestru indeksowego jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy rejestr indeksowy jest zerowy. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod Implikowane DEY 2 1 88
EOR
Działanie instrukcji: operacja logiczna wykonywana między odpowiadającymi sobie bitami zadanej liczby lub komórki pamięci a akumulatorem. Jeśli obydwa bity nie są równe to wynikiem jest 1. W przeciwnym razie wynikiem jest 0. Rezultat umieszczany jest w akumulatorze. Zawartość komórki pamięci pozostaje bez zmian.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit rezultatu jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy rezultatem jest zero. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod bezpośrednie EOR #operand 2 2 49 str.zerowej EOR operand 3 2 45 str.zerowej,X EOR operand,X 4 2 55 bezwzględne EOR operand 4 3 4D bezwzględne,X EOR oparand,X 4* 3 5D bezwzględne,Y EOR operand,Y 4* 3 59 (pośrednie,X) EOR (operand,X) 5* 2 41 (pośrednie,Y) EOR (operand,Y) 5* 2 51
*plus 1, jeśli przekroczona jest granica strony.
INC
Działanie instrukcji: zawartość komórki pamięci jest zwiększana o 1.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, jeśli najbardziej znaczący bit rezultatu jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy rezultat jest zerem. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod str.zerowej INC operand 5 2 E6 str.zerowej,X INC operand,X 6 2 F6 bezwzględne INC operand 6 3 EE bezwzględne,X INC operand,X 7 3 FE
INX
Działanie instrukcji: zawartość rejestru indeksowego X zwiększana jest o 1.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit rejestru indeksowego jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy rejestr indeksowy jest zerowy. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod implikowane INX 2 1 E8
INY
Działanie instrukcji: zawartość rejestru indeksowego Y zwiększana jest o 1. Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit rejestru indeksowego jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy rejestr indeksowy jest zerowy. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod implikowane INY 2 1 C8
JMP
Działanie instrukcji: wykonywany jest skok do adresu określonego argumentem.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod bezwzględne JMP operand 3 3 4C pośrednie JMP (operand} 5 3 6C
JSR
Działanie instrukcji: skok do podprogramu. Licznik programu PC zwiększany jest o 2. Starszy bajt wpychany jest na stos i wskaźnik stosu SP zmniejszany jest o 1. Następnie młodszy bajt wpychany jest na stos i wskaźnik stosu zmniejszany jest ponownie. Skok wykonywany jest pod bezwzględny adres określony argumentem. Powrót z podprogramu następuje po napotkaniu instrukcji RTS.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod bezwzględne JSR operand 6 3 20
LDA
Działanie instrukcji: zawartość zadanej liczby lub komórki pamięci ładowana jest do akumulatora.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit akumulatora jest ustawiany. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy akumulator jest zerowy. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod bezpośrednie LDA #operand 2 2 A9 str.zerowej LDA operand 3 2 A5 str.zerowej,X LDA operand,X 4 2 B5 bezwzględne LDA operand 4 3 AD bezwzględne,X LDA operand,X 4* 3 BD bezwzględne,Y LDA operand,Y 4* 3 B9 (pośrednie,X) LDA (operand,X) 6 2 Al (pośrednie),Y LDA (operand),Y 5* 2 B1
* jeśli granica strony jest przekroczona, to +1.
LDX
Działanie instrukcji: zawartość zadanej liczby lub komórki pamięci ładowana jest do rejestru indeksowego X.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit rezultatu jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy rezultat jest zerem. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod bezpośrednie LDX #operand 2 2 A2 str.zerowej LDX operand 3 2 A6 str.zerowej,Y LDX operand,Y 4 2 B6 bezwzględne LDX operand 4 3 AE bezwzględne,Y LDX operand,Y 4* 3 BE
*plus 1, jeśli przekroczona jest granica strony.
LDY
Działanie instrukcji: zawartość zadanej liczby lub komórki pamięci ładowana jest do rejestru indeksowego Y.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit rezultatu jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy rezultat jest zerem. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod bezpośrednie LDY #operand 2 2 A0 str.zerowej LDY operand 3 2 A4 str.zerowej,X LDY operand,X 9 2 B4 bezwzględne LDY operand 4 3 AC bezwzględne,X LDY operand,X 4* 3 BC
*plus 1, jeśli przekroczona jest granica strony.
LSR
Działanie instrukcji: zawartość akumulatora lub komórki pamięci jest przesuwana w prawo o jeden bit. Logiczne zero wprowadzone jest jako najbardziej znaczący bit (7), a bit 0 wprowadzony jest jako bit przeniesienia.
0 <- 7 6 5 4 3 2 1 0 -> C
Wpływa na wskaźniki: N, Z, C
- N: jest zerowany, gdy najbardziej znaczący bit jest zerem.
- Z: jest ustawiany, gdy rezultat w pamięci lub w akumulatorze jest zerem. W przeciwnym razie jest zerowany.
- C: jest ustawiany, gdy w poprzedniej operacji bit 0 był ustawiony. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod akumulatorowe LSR A 2 1 4A str.zerowej LSR operand 5 2 46 str.zerowej,X LSR operand,X 6 2 56 bezwzględne LSR operand 6 2 4E bezwzględne,X LSR operand,X 7 3 5E
NOP
Działanie instrukcji: wykonywane są dwa "puste" cykle (bez operacji). Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod implikowane NOP 2 1 C8
ORA
Działanie instrukcji: logiczna operacja OR wykonywana jest na odpowiadających sobie bitach zadanej liczby lub komórki pamięci a akumulatorem. Jeśli obydwa bity są 0, to wynikiem jest 0. W pozostałych przypadkach wynikiem jest 1. Zawartość komórki pamięci nie ulega zmianie. Wynik umieszczany jest w akumulatorze.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit rezultatu jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy rezultat jest zerem. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod bezpośrednie ORA #operand 2 2 09 str.zerowej ORA operand 3 2 05 str.zerowej,X ORA operand,X 4 2 15 bezwzględne ORA operand 4 3 0D bezwzględne,X ORA operand,X 4* 3 1D bezwzględne,Y ORA operand,Y 4* 3 19 (pośrednie,X) ORA (operand,X) 6 2 01 (pośrednie),Y ORA (operand),Y 5* 2 11
*plus 1, jeśli przekroczona jest granica strony.
PHA
Działanie instrukcji: zawartość akumulatora jest wpychana na stos do adresu zawartego we wskaźniku stosu SP. Wskaźnik stosu zmniejszany jest o 1 (patrz instrukcja PLA).
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod implikowane PHA 3 1 48
PHP
Działanie instrukcji: zawartość rejestru stanu procesora wpychana jest na stos do adresu zawartego we wskaźniku stosu SP. Wskaźnik stosu zmniejszany jest o 1 (patrz instrukcja PLP).
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod implikowane PHP 3 1 08
PLA
Działanie instrukcji: ze stosu ściągany jest akumulator - patrz instrukcja PHA.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit akumulatora jest ustawiony
- Z: jest ustawiany, gdy zawartość akumulatora jest zerem. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod implikowane PLA 4 1 68
PLP
Działanie instrukcji: wskaźnik stosu (SP) jest zwiększany o 1. Rejestr stanu procesora jest ładowany zawartością pozycji pamięci, której adres zawarty jest we wskaźniku stosu (patrz instrukcja PHP).
Wpływa na wskaźniki: N, V, B, D, I, Z, C
Adresowanie Asembler Cykli Bajtów Kod implikowane PLP 4 1 28
ROL
Działanie instrukcji: zawartość komórki pamięci lub akumulatora jest obracana o 1 bit w lewo. Bit wskaźnika przeniesienia zostaje przesunięty w miejsce bitu 0, a najbardziej znaczący bit do wskaźnika przeniesienia.
C <- 7 6 5 4 3 2 1 0 <- C
Wpływa na wskaźniki: N, Z, C
- N: jest ustawiany, gdy po obrocie najbardziej znaczący bit komórki pamięci lub akumulatora jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy po obrocie zawartość komórki pamięci lub akumulatora jest zerem. W przeciwnym razie jest zerowany.
- C: jest ustawiany, gdy przed obrotem najbardziej znaczący bit komórki pamięci lub akumulatora był ustawiony. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod akumulatorowe ROL A 2 1 2A str.zerowej ROL operand 5 2 26 str.zerowej,X ROL operand,X 6 2 36 bezwzględne ROL operand 6 3 2E bezwzględne,X ROL opcrand,X 7 3 3E
ROR
Działanie instrukcji: zawartość komórki pamięci lub akumulatora jurt obracana o 1 bit w prawo. Bit wskaźnika przeniesienia C zostaje przesunięty w miejsce najbardziej znaczącego bitu (7), a bit 0 do wskaźnika przeniesienia.
C -> 7 6 5 4 3 2 1 0 -> C
Wpływa na wskaźniki: N, Z, C
- N: jest ustawiany, gdy po obrocie najbardziej znaczący bit komórki pamięci lub akumulatora jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy zawartość komórki pamięci lub akumulatora jest zerem. W przeciwnym razie jest zerowany.
- C: jest ustawiany, gdy przed obrotem najmniej znaczący bit komórki pamięci lub akumulatora był ustawiony. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod akumulatorowe ROR A 2 1 6A str.zerowej ROR operand 5 2 66 str.zerowej,X ROR operand,X 6 2 76 bezwzględne ROR operand 6 3 6E bezwzględne,X ROR operand,X 7 3 7E
RTI
Działanie instrukcji: wskaźnik stosu zwiększany jest o 1. Bajt magazynowany pod adresem zawartym we wskaźniku stosu jest ładowany do rejestru stanu procesora. Następnie wskaźnik stosu zwiększany jest o 1 i bajt zmagazynowany pod adresem określonym przez wskaźnik stosu ładowany jest do młodszego bajtu licznika programu PC. Wskaźnik stosu jest znów zwiększany i kolejny bajt ładowany jest do starszego bajtu licznika programu.
Wpływa na wskaźniki: N, V, B ,D, I, Z, C
Adresowanie Asembler Cykli Bajtów Kod implikowane RTI 6 1 40
RTS
Działanie instrukcji: wskaźnik stosu zwiększany jest o 1 i bajt zawarty pod adresem określonym przez ten wskaźnik ładowany jest do młodszego bajtu licznika programu PC. Wskaźnik stosu zwiększany jest ponownie o 1 i kolejny bajt ładowany jest do starszego bajtu licznika programu. Następnie wartość tego licznika ulega zwiększeniu 0 1 (patrz instrukcja 1SR).
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod implikowane RTS 6 1 60
SBC
Działanie instrukcji: odejmowanie od akumulatora liczby lub wartości komórki pamięci z uwzględnieniem bitu przeniesienia. Dlatego też, aby wynik był prawidłowy należy ustawić ten wskaźnik instrukcją SEC. Rezultat odejmowania umieszczany jest w akumulatorze.
Wpływa na wskaźniki: N, V, Z, C
- N: jest ustawiany, gdy najbardziej znaczący bit rezultatu operacji jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy rezultat jest zerem. W przeciwnym razie jest zerowany.
- C: jest zerowany, gdy zawartość pamięci plus wskaźnik przeniesienie jest większa niż wartość akumulatora.
- V: jest ustawiany, gdy wynik odejmowania w dopełnieniu dwójkowym wywołuje przepełnienie. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod bezpośrednie SBC #operand 2 2 E9 str.zerowej SBC operand 3 2 E5 str.zerowej,X SBC operand,X 4 2 F5 bezwzględne SBC operand 4 3 ED bezwzględne,X SBC operand,X 4* 3 FD bezwzględne,Y SBC operand,Y 4* 2 F9 (pośrednie,X) SBC (operand,X) 6 2 El (pośrednie),Y SBC (operand),Y 5* 2 Fl
*plus 1, jeśli przekroczone jest granica strony
SEC
Działanie instrukcji: ustawiany jest wskaźnik przeniesienia (patrz instrukcja SBC).
Wpływa na wskaźniki: C (C jest ustawiany).
Adresowanie Asembler Cykli Bajtów Kod implikowane SEC 2 1 38
SED
Działanie instrukcji: ustawiany jest wskaźnik rodzaju dziesiętnego (patrz instrukcja CLD).
Wpływa na wskaźniki: D (D jest ustawiany).
Adresowanie Asembler Cykli Bajtów Kod implikowane SED 2 1 F8
SEI
Działanie instrukcji: ustawiany jest bit likwidacji przerwań (patrz instrukcja CLI).
Wpływa na wskaźniki: I (I jest ustawiany).
Adresowanie Asembler Cykli Bajtów Kod implikowane SEI 2 1 78
STA
Działanie instrukcji: wartość akumulatora jest zapisywana w komórce pamięci.
Nie wpływa na wskaźniki.
Adresowanie Asembler Cykli Bajtów Kod str.zerowej STA operand 3 2 85 str.zerowej,X STA operand,X 4 2 95 bezwzględne STA operand 4 3 8D bezwzględne,X STA operand,X 5 3 9D bezwzględne,Y STA operand,Y 5 3 99 (pośrednie,X) STA (operand,.K) 6 2 81 (pośrednie),Y STA (operand),Y 6 2 91
STX
Działanie instrukcji: wartość rejestru X zapisywana jest do komórki pamięci.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod str.zerowej STX operand 3 2 86 str.zerowej,Y STX operand,Y 4 2 96 bezwzględne STX operand 4 3 8E
STY
Działanie instrukcji: wartość rejestru Y zapisywana jest do komórki pamięci.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod str.zerowej STY operand 3 2 84 str.zerowej,X STY operand,X 4 2 94 bezwzględne STY operand 4 3 8C
TAX
Działanie instrukcji: rejestr X zapisywany jest wartością akumulatora. Zawartość akumulatora pozostaje bez zmian.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit akumulatora jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy zawartość akumulatora jest zerowa. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod implikowane TAX 2 1 AA
TAY
Działanie instrukcji: rejestr Y zapisywany jest wartością akumulatora. Zawartość akumulatora pozostaje bez zmian.
Wpływa na wskaźniki: N, Z
- N: jest ustawiony, gdy najbardziej znaczący bit akumulatora jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy zawartość akumulatora jest zerowa. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod implikowane TAY 2 1 A9
TYA
Działanie instrukcji: akumulator zapisywany jest wartością rejestru Y. Zawartość tego rejestru pozostaje bez zmian.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit rejestru jest ustawiony. W przeciwnym razie jest zerowany. .
- Z: jest ustawiany, gdy zawartość rejestru jest zerowa. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod implikowane TYA 2 1 98
TSX
Działanie instrukcji: zawartość wskaźnika stosu przesyłana jest do rejestru indeksowego X. Zawartość SP pozostaje bez zmian.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit wskaźnika stosu jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy zawartość wskaźnika stosu jest zerem. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod implikowane TSX 2 1 BA
TXA
Działanie instrukcji: akumulator zapisywany jest wartością rejestru X. Zawartość tego rejestru pozostaje bez zmian.
Wpływa na wskaźniki: N, Z
- N: jest ustawiany, gdy najbardziej znaczący bit rejestru jest ustawiony. W przeciwnym razie jest zerowany.
- Z: jest ustawiany, gdy zawartość rejestru jest zerowa. W przeciwnym razie jest zerowany.
Adresowanie Asembler Cykli Bajtów Kod implikowane TXA 2 1 8A
TXS
Działanie instrukcji: zawartość rejestru X przesyłana jest do wskaźnika stosu SP. Zawartość rejestru X pozostaje bez zmian.
Nie wpływa na stan wskaźników.
Adresowanie Asembler Cykli Bajtów Kod implikowane TXS 2 1 9