Artykuły

    Kurs Assemblera cz. 3

    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 gości atari.area

    Momencik, uaktualniam...  

    Nie jesteś zalogowany. Tylko zarejestrowani i zalogowani użytkownicy mog± dodawać komentarze.

Lotharek.pl
Retronics
Grawitacja 2024
Lost Party 2024
Silly Venture 2024 SE

Szukaj

Wyszukiwarka przeszukuje zasoby atari.area, atariki oraz forum.

Twoliner

Momencik, uaktualniam...  .

Pamiętaj, żeby linki do Twolinera dodawać wyłącznie po skróceniu za pomocą serwisu tiny.pl. Jeśli coś Ciebie ominęło - skorzystaj z archiwum.

Network

konto

Nie jesteś zalogowany. Zaloguj się lub załóż konto

forum

Artykuły

Wywiady

Allegro

Jako, że Allegro.pl jest bardzo często odwiedzanym serwisem przez Atarowców, umiejscowiłem poniżej wyszukiwarkę produktów związanych z naszym kochanym Atari. Chcesz coś kupić - wystarczy wpisać w okienko poniżej.


Wystarczy wpisac czego szukamy i po chwili znajdujemy sie juz na Allegro.pl.