atari.area
twoje polskie źródło informacji o Atari

Kurs Assemblera cz. 3

Autor: 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

Komentarze (0)

Brak komentarzy. Bądź pierwszy!

Dodaj komentarz

Musisz się zalogować, aby dodać komentarz.