Nieudokumentowane rozkazy 6502C
From Atariki
| Wersja z dnia 17:26, 23 kwi 2012 Xxl (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 07:25, 24 kwi 2012 Xxl (Dyskusja | wkład) Next diff → |
||
| Linia 2: | Linia 2: | ||
| {| border="1" cellpadding="1" cellspacing="1" | {| border="1" cellpadding="1" cellspacing="1" | ||
| - | ! KOD !! +00 !! +01 !! +02 !! +03 !! +04 !! +05 !! +06 !! +07 !! +08 !! +09 !! +0A !! +0B !! +0C !! +0D !! +0E !! +0F !! +10 !! +11 !! +12 !! +13 !! +14 !! +15 !! +16 !! +17 !! +18 !! +19 !! +1A !! +1B !! +1C !! +1D !! +1E !! +1F | + | ! width="65px" | KOD !! width="65px" | +00 !! +01 !! width="65px" | +02 !! width="65px" | +03 !! width="65px" | +04 !! +05 !! +06 !! width="65px" | +07 !! +08 !! width="65px" | +09 !! width="65px" | +0A !! width="65px" | +0B !! width="65px" | +0C !! +0D !! width="65px" | +0E !! width="65px" | +0F |
| |- | |- | ||
| - | ! +00 || || || style="color:RED" | CIM || style="color:GREEN" | ASO || style="color:GREEN" | DOP || || || style="color:GREEN" | ASO || || || || style="color:GREEN" | ANC || style="color:GREEN" | TOP || || || style="color:GREEN" | ASO || || || style="color:RED" | CIM || style="color:GREEN" | ASO || style="color:GREEN" | DOP || || || style="color:GREEN" | ASO || || || style="color:GREEN" | NPO || style="color:GREEN" | ASO || style="color:GREEN" | TOP || || || style="color:GREEN" | ASO | + | ! +00 || || || style="color:RED" | CIM || style="color:GREEN" | ASO (Z,X) || style="color:GREEN" | DOP Z || || || style="color:GREEN" | ASO Z || || || || style="color:GREEN" | ANC #n || style="color:GREEN" | TOP Q || || || style="color:GREEN" | ASO Q |
| |- | |- | ||
| - | ! +20 || || || style="color:RED" | CIM || style="color:GREEN" | RLN || || || || style="color:GREEN" | RLN || || || || style="color:GREEN" | ANC || || || || style="color:GREEN" | RLN || || || style="color:RED" | CIM || style="color:GREEN" | RLN || style="color:GREEN" | DOP || || || style="color:GREEN" | RLN || || || style="color:GREEN" | NPO || style="color:GREEN" | RLN || style="color:GREEN" | TOP || || || style="color:GREEN" | RLN | + | ! +10 || || || style="color:RED" | CIM || style="color:GREEN" | ASO (Z),Y || style="color:GREEN" | DOP Z,X || || || style="color:GREEN" | ASO Z,X || || || style="color:GREEN" | NPO || style="color:GREEN" | ASO Q,Y || style="color:GREEN" | TOP Q,X || || || style="color:GREEN" | ASO Q,X |
| |- | |- | ||
| - | ! +40 || || || style="color:RED" | CIM || style="color:GREEN" | LSE || style="color:GREEN" | DOP || || || style="color:GREEN" | LSE || || || || style="color:GREEN" | ALR || || || || style="color:GREEN" | LSE || || || style="color:RED" | CIM || style="color:GREEN" | LSE || style="color:GREEN" | DOP || || || style="color:GREEN" | LSE || || || style="color:GREEN" | NPO || style="color:GREEN" | LSE || style="color:GREEN" | TOP || || || style="color:GREEN" | LSE | + | ! +20 || || || style="color:RED" | CIM || style="color:GREEN" | RLN (Z,X) || || || || style="color:GREEN" | RLN Z || || || || style="color:GREEN" | ANC #n || || || || style="color:GREEN" | RLN Q |
| |- | |- | ||
| - | ! +60 || || || style="color:RED" | CIM || style="color:GREEN" | RRD || style="color:GREEN" | DOP || || || style="color:GREEN" | RRD || || || || style="color:GREEN" | ARR || || || || style="color:GREEN" | RRD || || || style="color:RED" | CIM || style="color:GREEN" | RRD || style="color:GREEN" | DOP || || || style="color:GREEN" | RRD || || || style="color:GREEN" | NPO || style="color:GREEN" | RRD || style="color:GREEN" | TOP || || || style="color:GREEN" | RRD | + | ! +30 || || || style="color:RED" | CIM || style="color:GREEN" | RLN (Z),Y || style="color:GREEN" | DOP Z,X || || || style="color:GREEN" | RLN Z,X || || || style="color:GREEN" | NPO || style="color:GREEN" | RLN Q,Y || style="color:GREEN" | TOP Q,X || || || style="color:GREEN" | RLN Q,X |
| |- | |- | ||
| - | ! +80 || style="color:GREEN" | DOP || || style="color:GREEN" | DOP || style="color:GREEN" | SAX || || || || style="color:GREEN" | SAX || || style="color:GREEN" | DOP || || style="color:RED" | ANE || || || || style="color:GREEN" | SAX || || || style="color:RED" | CIM || style="color:RED" | SHA || || || || style="color:GREEN" | SAX || || || || style="color:RED" | SHS || style="color:GREEN" | SHY || || style="color:GREEN" | SHX || style="color:RED" | SHA | + | ! +40 || || || style="color:RED" | CIM || style="color:GREEN" | LSE (Z,X) || style="color:GREEN" | DOP Z || || || style="color:GREEN" | LSE Z || || || || style="color:GREEN" | ALR #n || || || || style="color:GREEN" | LSE Q |
| |- | |- | ||
| - | ! +A0 || || || || style="color:GREEN" | LAX || || || || style="color:GREEN" | LAX || || || || style="color:RED" | ANX || || || || style="color:GREEN" | LAX || || || style="color:RED" | CIM || style="color:GREEN" | LAX || || || || style="color:GREEN" | LAX || || || || style="color:RED" | LAS || || || || style="color:GREEN" | LAX | + | ! +50 || || || style="color:RED" | CIM || style="color:GREEN" | LSE (Z),Y || style="color:GREEN" | DOP Z,X || || || style="color:GREEN" | LSE Z,X || || || style="color:GREEN" | NPO || style="color:GREEN" | LSE Q,Y || style="color:GREEN" | TOP Q,X || || || style="color:GREEN" | LSE Q,X |
| |- | |- | ||
| - | ! +C0 || || || style="color:GREEN" | DOP || style="color:GREEN" | DCP || || || || style="color:GREEN" | DCP || || || || style="color:GREEN" | SBX || || || || style="color:GREEN" | DCP || || || style="color:RED" | CIM || style="color:GREEN" | DCP || style="color:GREEN" | DOP || || || style="color:GREEN" | DCP || || || style="color:GREEN" | NPO || style="color:GREEN" | DCP || style="color:GREEN" | TOP || || || style="color:GREEN" | DCP | + | ! +60 || || || style="color:RED" | CIM || style="color:GREEN" | RRD (Z,X) || style="color:GREEN" | DOP Z || || || style="color:GREEN" | RRD Z || || || || style="color:GREEN" | ARR #n || || || || style="color:GREEN" | RRD Q |
| |- | |- | ||
| - | ! +E0 || || || style="color:GREEN" | DOP || style="color:GREEN" | ISB || || || || style="color:GREEN" | ISB || || || || style="color:GREEN" | SBC || || || || style="color:GREEN" | ISB || || || style="color:RED" | CIM || style="color:GREEN" | ISB || style="color:GREEN" | DOP || || || style="color:GREEN" | ISB || || || style="color:GREEN" | NPO || style="color:GREEN" | ISB || style="color:GREEN" | TOP || || || style="color:GREEN" | ISB | + | ! +70 || || || style="color:RED" | CIM || style="color:GREEN" | RRD (Z),Y || style="color:GREEN" | DOP Z,X || || || style="color:GREEN" | RRD Z,X || || || style="color:GREEN" | NPO || style="color:GREEN" | RRD Q,Y || style="color:GREEN" | TOP Q,X || || || style="color:GREEN" | RRD Q,X |
| + | |- | ||
| + | ! +80 || style="color:GREEN" | DOP #n || || style="color:GREEN" | DOP #n || style="color:GREEN" | SAX (Z,X) || || || || style="color:GREEN" | SAX Z || || style="color:GREEN" | DOP #n || || style="color:RED" | ANE #n || || || || style="color:GREEN" | SAX Q | ||
| + | |- | ||
| + | ! +90 || || || style="color:RED" | CIM || style="color:RED" | SHA (Z),Y|| || || || style="color:GREEN" | SAX Z,Y || || || || style="color:RED" | SHS Q,Y || style="color:GREEN" | SHY Q,X || || style="color:GREEN" | SHX Q,Y || style="color:RED" | SHA Q,Y | ||
| + | |- | ||
| + | ! +A0 || || || || style="color:GREEN" | LAX (Z,X) || || || || style="color:GREEN" | LAX Z || || || || style="color:RED" | ANX #n || || || || style="color:GREEN" | LAX Q | ||
| + | |- | ||
| + | ! +B0 || || || style="color:RED" | CIM || style="color:GREEN" | LAX (Z),Y || || || || style="color:GREEN" | LAX Z,Y || || || || style="color:RED" | LAS Q,Y || || || || style="color:GREEN" | LAX Q,Y | ||
| + | |- | ||
| + | ! +C0 || || || style="color:GREEN" | DOP #n || style="color:GREEN" | DCP (Z,X) || || || || style="color:GREEN" | DCP Z || || || || style="color:GREEN" | SBX #n || || || || style="color:GREEN" | DCP Q | ||
| + | |- | ||
| + | ! +D0 || || || style="color:RED" | CIM || style="color:GREEN" | DCP (Z),Y || style="color:GREEN" | DOP Z,X || || || style="color:GREEN" | DCP Z,X || || || style="color:GREEN" | NPO || style="color:GREEN" | DCP Q,Y || style="color:GREEN" | TOP Q,X || || || style="color:GREEN" | DCP Q,Z | ||
| + | |- | ||
| + | ! +E0 || || || style="color:GREEN" | DOP #n || style="color:GREEN" | ISB (Z,X) || || || || style="color:GREEN" | ISB Z || || || || style="color:GREEN" | SBC #n || || || || style="color:GREEN" | ISB Q | ||
| + | |- | ||
| + | ! +F0 || || || style="color:RED" | CIM || style="color:GREEN" | ISB (Z),Y || style="color:GREEN" | DOP Z,X || || || style="color:GREEN" | ISB Z,X || || || style="color:GREEN" | NPO || style="color:GREEN" | ISB Q,Y || style="color:GREEN" | TOP Q,X || || || style="color:GREEN" | ISB Q,X | ||
| |- | |- | ||
| |} | |} | ||
| Linia 28: | Linia 44: | ||
| <br>Z - adres jednobajtowy danych lub adresu pośredniego, | <br>Z - adres jednobajtowy danych lub adresu pośredniego, | ||
| <br>* - dodać cykl przy zmianie strony. | <br>* - dodać cykl przy zmianie strony. | ||
| - | <br>Użyto mnemoników stosowanych w emulatorze [[Atari800Win_PLus|Atari800Win PLus]] oraz makroassemblerze [[MADS]]. | + | <br>Użyto mnemoników stosowanych w makroassemblerze [[MADS]] oraz monitorze emulatora [[Atari800Win_PLus|Atari800Win PLus]]. |
| == KODY STABILNE == | == KODY STABILNE == | ||
Wersja z dnia 07:25, 24 kwi 2012
Listę niepublikowanych kodów (zwanych również rozkazami nielegalnymi) 6502C SALLY można podzielić na dwie grupy. Kody stabilne (zielone) działają na wszystkich komputerach Atari serii XL/XE oraz tej części modeli 400/800 w której montowano procesor 6502C SALLY, natomiast kody niestabilne (czerwone) na procesorze 6502C działają w sposób nieprzewidywalny.
| KOD | +00 | +01 | +02 | +03 | +04 | +05 | +06 | +07 | +08 | +09 | +0A | +0B | +0C | +0D | +0E | +0F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| +00 | CIM | ASO (Z,X) | DOP Z | ASO Z | ANC #n | TOP Q | ASO Q | |||||||||
| +10 | CIM | ASO (Z),Y | DOP Z,X | ASO Z,X | NPO | ASO Q,Y | TOP Q,X | ASO Q,X | ||||||||
| +20 | CIM | RLN (Z,X) | RLN Z | ANC #n | RLN Q | |||||||||||
| +30 | CIM | RLN (Z),Y | DOP Z,X | RLN Z,X | NPO | RLN Q,Y | TOP Q,X | RLN Q,X | ||||||||
| +40 | CIM | LSE (Z,X) | DOP Z | LSE Z | ALR #n | LSE Q | ||||||||||
| +50 | CIM | LSE (Z),Y | DOP Z,X | LSE Z,X | NPO | LSE Q,Y | TOP Q,X | LSE Q,X | ||||||||
| +60 | CIM | RRD (Z,X) | DOP Z | RRD Z | ARR #n | RRD Q | ||||||||||
| +70 | CIM | RRD (Z),Y | DOP Z,X | RRD Z,X | NPO | RRD Q,Y | TOP Q,X | RRD Q,X | ||||||||
| +80 | DOP #n | DOP #n | SAX (Z,X) | SAX Z | DOP #n | ANE #n | SAX Q | |||||||||
| +90 | CIM | SHA (Z),Y | SAX Z,Y | SHS Q,Y | SHY Q,X | SHX Q,Y | SHA Q,Y | |||||||||
| +A0 | LAX (Z,X) | LAX Z | ANX #n | LAX Q | ||||||||||||
| +B0 | CIM | LAX (Z),Y | LAX Z,Y | LAS Q,Y | LAX Q,Y | |||||||||||
| +C0 | DOP #n | DCP (Z,X) | DCP Z | SBX #n | DCP Q | |||||||||||
| +D0 | CIM | DCP (Z),Y | DOP Z,X | DCP Z,X | NPO | DCP Q,Y | TOP Q,X | DCP Q,Z | ||||||||
| +E0 | DOP #n | ISB (Z,X) | ISB Z | SBC #n | ISB Q | |||||||||||
| +F0 | CIM | ISB (Z),Y | DOP Z,X | ISB Z,X | NPO | ISB Q,Y | TOP Q,X | ISB Q,X |
Legenda:
n - dane w trybie natychmiastowym,
Q - adres dwubajtowy,
Z - adres jednobajtowy danych lub adresu pośredniego,
* - dodać cykl przy zmianie strony.
Użyto mnemoników stosowanych w makroassemblerze MADS oraz monitorze emulatora Atari800Win PLus.
KODY STABILNE
ANC / ANC
Wykonuje AND na A i danej. Znacznik C ustawiany tak jak N.
Znaczniki: N,Z,C
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| ANC #n | $0B | 2 | 2 |
| ANC #n | $2B | 2 | 2 |
SAX / SAX
Wykonuje AND pomiędzy A i rejestrem X, wynik zapisuje w pamięci. Rejestry A i X pozostają niezmienione.
Znaczniki: -
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| SAX Z | $87 | 2 | 3 |
| SAX Z,Y | $97 | 2 | 4 |
| SAX (Z,X) | $83 | 2 | 6 |
| SAX Q | $8F | 3 | 4 |
ALR / ALR
Wykonuje AND na A i danej, następnie LSR @.
Znaczniki: N,Z,C
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| ALR #n | $4B | 2 | 2 |
SBX / SBX
Wykonuje AND pomiędzy rejestrem X i A, wynik w rejestrze X.
Znacznik C ustawiany gdy zawartość rejestru X jest większa lub równa danej.
Od rejestru X odejmuje daną (bez pożyczki).
Znaczniki: N,Z,C
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| SBX #n | $CB | 2 | 2 |
DCM / DCP
Zmniejsza o jeden wartość bajtu pamięci następnie wykonuje CMP na A i tej wartości.
Znaczniki: N,Z,C
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| DCP Z | $C7 | 2 | 5 |
| DCP Z,X | $D7 | 2 | 6 |
| DCP Q | $CF | 3 | 6 |
| DCP Q,X | $DF | 3 | 7 |
| DCP Q,Y | $DB | 3 | 7 |
| DCP (Z,X) | $C3 | 2 | 8 |
| DCP (Z),Y | $D3 | 2 | 8 |
INS / ISB
Zwiększa o jeden zawartość pamięci. Od A odejmuje wartość pamięci (z pożyczką).
Znaczniki: N,V,Z,C
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| ISB Z | $E7 | 2 | 5 |
| ISB Z,X | $F7 | 2 | 6 |
| ISB Q | $EF | 3 | 6 |
| ISB Q,X | $FF | 3 | 7 |
| ISB Q,Y | $FB | 3 | 7 |
| ISB (Z,X) | $E3 | 2 | 8 |
| ISB (Z),Y | $F3 | 2 | 8 |
NOP / NPO
Niepublikowany NOP
Znaczniki: -
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| NPO | $1A | 1 | 2 |
| NPO | $3A | 1 | 2 |
| NPO | $5A | 1 | 2 |
| NPO | $7A | 1 | 2 |
| NPO | $DA | 1 | 2 |
| NPO | $FA | 1 | 2 |
NOP / NPO (DOP)
Dwubajtowy NOP
Znaczniki: -
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| NPO Z | $04 | 2 | 3 |
| NPO Z,X | $14 | 2 | 4 |
| NPO Z,X | $34 | 2 | 4 |
| NPO Z | $44 | 2 | 3 |
| NPO Z,X | $54 | 2 | 4 |
| NPO Z | $64 | 2 | 3 |
| NPO Z,X | $74 | 2 | 4 |
| NPO #n | $80 | 2 | 2 |
| NPO #n | $82 | 2 | 2 |
| NPO #n | $89 | 2 | 2 |
| NPO #n | $C2 | 2 | 2 |
| NPO Z,X | $D4 | 2 | 4 |
| NPO #n | $E2 | 2 | 2 |
| NPO Z,X | $F4 | 2 | 4 |
NOP / NPO (TOP)
Trzybajtowy NOP
Znaczniki: -
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| NPO Q | $0C | 3 | 4 |
| NPO Q,X | $1C | 3 | 4 * |
| NPO Q,X | $3C | 3 | 4 * |
| NPO Q,X | $5C | 3 | 4 * |
| NPO Q,X | $7C | 3 | 4 * |
| NPO Q,X | $DC | 3 | 4 * |
| NPO Q,X | $FC | 3 | 4 * |
SBC / SBC (?)
Niepublikowany SBC #n.
Znaczniki: N,V,Z,C
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| SBC #n | $EB | 2 | 2 |
LAX / LAX
Załaduje daną do A i rejestru X.
Znaczniki: N,Z
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| LAX Z | $A7 | 2 | 3 |
| LAX Z,Y | $B7 | 2 | 4 |
| LAX Q | $AF | 3 | 4 |
| LAX Q,Y | $BF | 3 | 4 * |
| LAX (Z,X) | $A3 | 2 | 6 |
| LAX (Z),Y | $B3 | 2 | 5 * |
RLA / RLN
Wykonuje ROL na pamięci, następnie AND z A (wynik w A).
Znaczniki: N,Z,C
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| RLN Z | $27 | 2 | 5 |
| RLN Z,X | $37 | 2 | 6 |
| RLN Q | $2F | 3 | 6 |
| RLN Q,X | $3F | 3 | 7 |
| RLN Q,Y | $3B | 3 | 7 |
| RLN (Z,X) | $23 | 2 | 8 |
| RLN (Z),Y | $33 | 2 | 8 |
RRA / RRD
Wykonuje ROR na pamięci, następnie ADC z A (wynik w A).
Znaczniki: N,V,Z,C
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| RRD Z | $67 | 2 | 5 |
| RRD Z,X | $77 | 2 | 6 |
| RRD Q | $6F | 3 | 6 |
| RRD Q,X | $7F | 3 | 7 |
| RRD Q,Y | $7B | 3 | 7 |
| RRD (Z,X) | $63 | 2 | 8 |
| RRD (Z),Y | $73 | 2 | 8 |
ASO / ASO
Wykonuje ASL na pamięci, następnie ORA z A (wynik w A).
Znaczniki: N,Z,C
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| ASO Z | $07 | 2 | 5 |
| ASO Z,X | $17 | 2 | 6 |
| ASO Q | $0F | 3 | 6 |
| ASO Q,X | $1F | 3 | 7 |
| ASO Q,Y | $1B | 3 | 7 |
| ASO (Z,X) | $03 | 2 | 8 |
| ASO (Z),Y | $13 | 2 | 8 |
LSE / LSE
Wykonuje LSR na pamięci, następnie EOR z A (wynik w A).
Znaczniki: N,Z,C
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| LSE Z | $47 | 2 | 5 |
| LSE Z,X | $57 | 2 | 6 |
| LSE Q | $4F | 3 | 6 |
| LSE Q,X | $5F | 3 | 7 |
| LSE Q,Y | $5B | 3 | 7 |
| LSE (Z,X) | $43 | 2 | 8 |
| LSE (Z),Y | $53 | 2 | 8 |
SHX / SHX
Do starszego bajtu adresu dodaje jeden i wykonuje AND z rejestrem X.
Tak otrzymaną wartość zapisuje w pamięci.
Jeśli nastąpiło przekroczenie granicy strony zapis wykona pod adresem
którego starszy bajt jest równy otrzymanej wartości.
Znaczniki: -
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| SHX Q,Y | $9E | 3 | 5 |
SHY / SHY
Do starszego bajtu adresu dodaje jeden i wykonuje AND z rejestrem Y.
Tak otrzymana wartość zapisuje w pamięci.
Jeśli nastąpiło przekroczenie granicy strony zapis wykona pod adresem
którego starszy bajt jest równy otrzymanej wartości.
Znaczniki: -
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| SHY Q,X | $9C | 3 | 5 |
ARR / ARR
Gdy znacznik D=0 rozkaz działa następująco:
Wykonuje AND na A i danej po czym ROR.
Znacznik C wpisuje do b7, b6 do znacznika C, do V b6 EOR b5.
Znaczniki: N,V,Z,C
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| ARR #n | $6B | 2 | 2 |
KODY NIESTABILNE
CIM / CIM
Blokuje procesor.
Znaczniki: -
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| CIM | $02 | 1 | - |
| CIM | $12 | 1 | - |
| CIM | $22 | 1 | - |
| CIM | $32 | 1 | - |
| CIM | $42 | 1 | - |
| CIM | $52 | 1 | - |
| CIM | $62 | 1 | - |
| CIM | $72 | 1 | - |
| CIM | $92 | 1 | - |
| CIM | $B2 | 1 | - |
| CIM | $D2 | 1 | - |
| CIM | $F2 | 1 | - |
SHA / SHA
Do starszego bajtu adresu dodaje jeden i wykonuje AND z A, następnie AND z rejestrem X.
Tak otrzymaną wartość zapisuje w pamięci.
Jeśli nastąpi przekroczenie granicy strony zapis wykona pod adresem
którego starszy bajt jest równy otrzymanej wartości.
Znaczniki: -
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| SHA Q,Y | $9F | 3 | 5 |
| SHA (Z),Y | $93 | 2 | 6 |
SHS / SHS
Do rejestru S zapisuje wynik operacji A AND X następnie do starszego bajtu adresu dodaje
jeden, wykonuje AND z S i zapisuje wynik w pamięci.
Jeśli nastąpi przekroczenie granicy strony zapis wykona pod adresem
którego starszy bajt jest równy otrzymanej wartości.
Znaczniki: -
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| SHS Q,Y | $9B | 3 | 5 |
LAS / LAS
Wykonuje AND na zawartości pamięci i rejestru S, wynik zapisuje w rejestrach A, X, S.
Znaczniki: N,Z
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| LAS Q,Y | $BB | 3 | 4 * |
ANE / ANE
Znaczniki procesora ustawiane są wg. operacji argument AND A.
Rozkaz najpierw wykonuje sumę logiczną argumentu i wartości $EF, następnie operacji AND na rejestrze X i wyniku. W kolejnym kroku z tak otrzymaną wartością wykona AND z A. Wynik w A.
Znaczniki: N,Z
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| ANE #n | $8B | 2 | 2 |
ANX / ANX
Wykonuje operację argument AND A, wynik zapisuje w A oraz rejetrze X.
Znaczniki: N,Z
| Assembler | kod | dł. | cykle |
|---|---|---|---|
| ANX #n | $AB | 2 | 2 |
CIEKAWOSTKI
Rozkazy niepublikowane użyte zostały w grze Alley Cat.
