Detale Repertuaru Instrukcji MCS-4
Zestaw Instrukcji Intel 4004
hexINSTRUKCJAMNEMONIC.
ODPOWIEDNIK BINARNY
1zy bajt2gi bajt
MODYFIKATORY
00 Bez OperacjiNOP00000000-nic
10 Skok WarunkowyJCN0001CCCCAAAAAAAAwarunek , adres
20 Pobierz NatychmiastFIM0010RRR0DDDDDDDDrejestr pary, dana
21 Wyślij Kontrole RejestruSRC0010RRR1-rejestr pary
30 Pobierz PośrednioFIN0011RRR0-rejestr pary
31 Skok PośredniJIN0011RRR1-rejestr pary
40 Jump NiekwestionowanyJUN0100AAAAAAAAAAAAadres
50 Przejdź do PodprogramuJMS0101AAAAAAAAAAAAadres
60 PrzyrostINC0110RRRR-rejestr
70 Przyrost i PomijanieISZ0111RRRRAAAAAAAArejestr, adres
80 DodajADD1000RRRR-rejestr
90 OdejmowaćSUB1001RRRR-rejestr
A0 ZaładujLD1010RRRR-rejestr
B0 Wymieniać XCH1011RRRR-rejestr
C0 Odgałęź z Powrotem i ŁadujBBL1100DDDD-dana
D0 Wczytaj NatychmiastLDM1101DDDD-dana
E0 Napisz do Pamięci GłównejWRM11100000-nic
E1 Napisz Port RAMWMP11100001-nic
E2 Napisz Port ROMWRR11100010-nic
E4 Zapisz Stan Znaku 0WR011100100-nic
E5 Zapisz Stan Znaku 1WR111100101-nic
E6 Zapisz Stan Znaku 2WR211100110-nic
E7 Zapisz Stan Znaku 3WR311100111-nic
E8 Odejmij Pamięć GłównąSBM11101000-nic
E9 Przeczytaj Pamięć GłównąRDM11101001-nic
EA Przeczytaj Port ROMRDR11101010-nic
EB Dodaj Pamięć GłównąADM11101011-nic
EC Przeczytaj Stan Znaku 0RD011101100-nic
ED Przeczytaj Stan Znaku 1RD111101101-nic
EE Przeczytaj Stan Znaku 2RD211101110-nic
EF Przeczytaj Stan Znaku 3RD311101111-nic
F0 Czyścić ObaCLB11110000-nic
F1 Oczyścić PrzeniesienieCLC11110001-nic
F2 Akumulator PrzyrostowyIAC11110010-nic
F3 Dopełnienie PrzeniesieniaCMC11110011-nic
F4 KompletowaćCMA11110100-nic
F5 Obrót w LewoRAL11110101-nic
F6 Obróć w PrawoRAR11110110-nic
F7 Transfer Przeniesienia i CzyśćTCC11110111-nic
F8 Akumulator SpadkuDAC11111000-nic
F9 Tr. Przeniesienia OdejmowaniaTCS11111001-nic
FA Ustaw PrzeniesienieSTC11111010-nic
FB Akumulator Regulacji DziesiętnejDAA11111011-nic
FC Proces KlawiaturyKBP11111100-nic
FD Wyznacz Linie KomendyDCL11111101-nic

Instruction Format

Zestaw mikrokomputerów MCS-4 ma dwa typy instrukcji:
a) Instrukcja zawierająca 1 słowo z kodem 8-bitowym i czasem wykonania 10,8 ůsek.
b) Instrukcja zawierająca 2 słowa z kodem 16-bitowym i czas wykonania 21,6 ůsec.

Ze wzgledu na multipleksowane czasowo działanie systemu, instrukcja 8-bitowa jest pobierana po 4 bity na raz w dwóch kolejnych okresach zegara.

Formaty instrukcji przedstawiono w tabelach I i II.

Tabela I
INSTRUKCJA JEDNEGO SLOWA
 
D3D2D1D0D3D2D1D0
xxxxxxxx
OPROPA
 
KOD OPERACJIMODYFIKATOR
 
xxxxADRES REJESTRU INDEKSU
RRRR

LUB
xxxxADRES REJESTRU PAR INDEKSU
RRRX

LUB
xxxxDANA
DDDD


Tabela II
INSTRUKCJE DWA SŁOWA
 
1zy CYKL INSTRUKCJI 2gi CYKL INSTRUKCJI
 
D3D2D1D0D3D2D1D0
 
D3D2D1D0D3D2D1D0
xxxxxxxx
 
xxxxxxxx
OPROPA
 
OPROPA
 
KOD OPERACJIMODYFIKATOR
 
KOD OPERACJIMODYFIKATOR
 
xxxxGÓRNY ADRES
A3A3A3A3
 
ADRES ŚRODKOWY
A2A2A2A2
NIŻSZY ADRES
A1A1A1A1

OR
xxxxWARUNEK
C1C2C3C4
 
ADRES ŚRODKOWY
A2A2A2A2
NIŻSZY ADRES
A1A1A1A1

LUB
xxxxADRES REJESTRU INDEKSU
RRRR
 
ADRES ŚRODKOWY
A2A2A2A2
NIŻSZY ADRES
A1A1A1A1

OR
xxxxADRES REJESTRU PAR INDEKSU
RRRX
 
GÓRNE DANE
D2D2D2D2
NIŻSZE DANE
D1D1D1D1



Symbole i Skróty

Następujące symbole i skróty będa używane w kilku następnych rozdziałach:

( )zawartość
-->jest przenoszone do
ACCAkumulator (4-bitowy)
CYCarry/link Flip-Flop
ACBRRejestr bufora akumulatora (4-bit)
RRRRAdres rejestru indeksowego
RRRAdres pary rejestrów indeksowych
PLPole licznika programu niskiego przekazu (4-bit)
PMPole licznika programu źrodkowego przekazu (4-bit)
PHPole licznika programu wysokiego przekazu (4-bit)
aiPrzekaz i zawartości akumulatora
CMiPrzekaz i zawartość rejestru komendy
MLokalizacja głównego znaku w pamięci RAM
MSiZnak stanu pamięci RAM i
DB (T)Zawartość magistrali danych w czasie T
Stack3 rejestry w rejestrze adresowym innym niż licznik programu

Format Opisu Każdej Instrukcji

Każda instrukcja będzie opisana w następujący sposób:
(1) Symbol i znaczenie mnemoniczne
(2) Kod OPR i OPA
(3) Symboliczna reprezentacja instrukcji
(4) Opis instrukcji ( w razie potrzeby)
(5) Przykład i/lub wyjatki (w razie potrzeby)


Instrukcja Maszynowa zawierająca Jedno Słowo

Mnemonic:NOP (No Operation)
OPR OPA:0000 0000
Symbolic:Not applicable
Opis:Nie wykonuje żadnej operacji

Mnemonic:LDM (Load data to Accumulator)
OPR OPA:1101 DDDD
Symbolic:DDDD --> ACC
Opis:4 bity danych DDDD przechowywane w polu OPA słowa inicjujacego są ładowane do akumulatora. Poprzednia zawartość akumulatora zostanie utracona. Nie ma to wpływu na bit przenoszenia/link.

Mnemonic:LD (Load index register to Accumulator)
OPR OPA:1010 RRRR
Symbolic:(RRRR) --> ACC
Opis:4-bitowa zawartość wyznaczonego rejestru indeksowego (RRRR) jest ładowana do akumulatora. Wcześniejsza zawartosc akumulatora zostanie utracona. 4-bitowa zawartość rejestru indeksu i bit przenoszenia/link pozostaja niezmienione.

Mnemonic:XCH (Exchange index register and accumulator)
OPR OPA:1011 DDDD
Symbolic:(ACC) --> ACBR, (RRRR) --> ACC, (ACBR) --> RRRR
Opis:4-bitowa zawartość wyznaczonego rejestru indeksowego jest ładowana do akumulatora. Do zaprojektowanego rejestru ładowana jest wcześniejsza zawartość akumulatora. Nie ma to wpływu na bit przenoszenia/link.

Mnemonic:ADD (Add index register to accumulator with carry)
OPR OPA:1000 RRRR
Symbolic:(RRRR) + (ACC) + (CY) --> ACC, CY
Opis:4-bitowa zawartość wyznaczonego rejestru indeksowego jest dodawana do zawartości akumulatora z przeniesieniem. Wynik jest przechowywany w akumulatorze. Przeniesienie/link jest ustawiane na 1, jeśli wygenerowano sumę większą niż 15 w celu wskazania wykonania; w przeciwnym razie przeniesienie/link jest ustawione na 0. 4-bitowa zawartość rejestru indeksu pozostaje niezmieniona.
Przykład:
 Augend Addend
 (ACC) (CY) (RRRR)
      | | |
 a3 a2 a1 a0 | |
   | |
                c0<---------  |
     |
+)  r3 r2 r1 r0<---------------------- 
 --------------    
CARRY ---> c4 s3 s2 s1 s0<-- SUM   
|    |              |    
|     -----------    
|           |    
(CY)    (ACC)    

Mnemonic:SUB (Subtract index register from accumulator with borrow)
OPR OPA:1001 RRRR
Symbolic:(ACC) + ~(RRRR) + (CY) --> ACC, CY
Opis:Czterobitowa zawartość wyznaczonego rejestru indeksowego jest uzupełniana (uzupełnianie jedynkowe) i dodawana do zawartości akumulatora pozyczka, a wynik jest przechowywany w akumulatorze. W przypadku wygenerowania pożyczki bit przeniesienia jest ustawiany na 0; w przeciwnym razie jest ustawiony na 1. 4-bitowa zawartość rejestru indeksu pozostaje niezmieniona.
Przykład:
 Minuend Subtrahend
 (ACC) (CY) (RRRR)
      | | |
 a3 a2 a1 a0 | |
   | |
                c0<------------  |
     |
  _   _   _   _   |
+)  r3 r2 r1 r0<------------------------- 
 --------------    
Borrow ---> c4 s3 s2 s1 s0<-- Result   
|    |              |    
|     -----------    
|           |    
(CY)    (ACC)    

Mnemonic:INC (Increment index register)
OPR OPA:0110 RRRR
Symbolic:(RRRR) +1 --> RRRR
Opis:4-bitowa zawartość wyznaczonego rejestru indeksu jest zwiększana o 1. Rejestr indeksu jest ustawiany na zero w przypadku przepełnienia. Nie ma to wpływu na przeniesienie/link.

Mnemonic:BBL (Branch back and load data to the accumulator)
OPR OPA:0110 RRRR
Symbolic:(Stack) --> PL, PM, PH; DDDD --> ACC
Opis:Licznik programu (stos adresów) jest przesuwany o jeden poziom w dól. Sterowanie programem przechodzi do następnej instrukcji po ostatnim skoku do instrukcji podprogramu (JMS). 4 bity danych DDDD przechowywane w części OPA instrukcji są ładowane do akumulatora.

BBL służy do powrotu z podprogramu do programu głównego.

Mnemonic:JIN (Jump indirect)
OPR OPA:0011 RRR1
Symbolic:(RRRO) --> PM
(RRR1) --> PL; PH unchanged
Opis:8-bitowa zawartość wyznaczonej pary rejestrów indeksowych jest ładowana na najniższe pozycje 8 licznika programu. Sterowanie programem jest przekazywane do instrukcji pod tym adresem na tej samej stronie (tej samej pamięci ROM), na której znajduje się instrukcja JIN. 8-bitowa zawartość rejestru indeksu pozostaje nienaruszona.
WYJˇTKI:Kiedy JIN znajduje się pod adresem (PH) 1111 1111, sterowanie programem jest przesyłane do następnej strony w kolejności, a nie do tej samej strony, na której znajduje się instrukcja JIN. Oznacza to, że następny adres to (PH + 1) (RRRO) (RRR1), a nie (PH) (RRRO) (RRR1)

Mnemonic:SRC (Send register control)
OPR OPA:0010 RRR1
Symbolic:(RRRO) --> DB (X2)
(RRR1) --> DB (X3)
Opis:8-bitowa zawartość wyznaczonej pary rejestrów indeksowych jest wysyłana do rejestru adresu RAM w X2 i X3. Późniejsza operacja odczytu, zapisu lub operacji we/wy pamięci RAM będzie wykorzystywać ten adres. W szczególności pierwsze 2 bity adresu oznaczają układ pamięci RAM; drugie 2 bity oznaczają 1 z 4 rejestrów w chipie; ostatnie 4 bity oznaczają 1 z 16 4-bitowych znaków pamięci głównej w rejestrze. Polecenie to jest równiez używane do wyznaczania pamięci ROM do późniejszej operacji portu we/wy ROM. Pierwsze 4 bity określają numer chipa ROM, który ma zostać wybrany. Adres w pamięci ROM lub RAM nie jest usuwany do czasu wykonania następnej instrukcji SRC. 8-bitowa zawartość rejestru indeksu pozostaje nienaruszona.

Mnemonic:FIN (Fetch indirect from ROM)
OPR OPA:0011 RRRO
Symbolic:(PH) (0000) (0001) --> ROM address
(OPR) --> RRRO
(OPA) --> RRR1
Opis:8-bitowa zawartość pary rejestrów indeksów 0 (0000) (0001) jest wysylana jako adres na tej samej stronie, na której znajduje sie instrukcja FIN. 8-bitowe slowo w tej lokalizacji jest ladowane do wyznaczonej pary rejestrów indeksowych. Nie ma to wplywu na licznik programu; po wykonaniu FIN, zaadresowana zostanie nastepna w kolejnosci instrukcja. Zawartosc pary rejestrów indeksów 0 pozostaje niezmieniona, chyba ze wyznaczono rejestr indeksów 0.
WYJˇTKI:a) Chociaż FIN jest instrukcją skladającą się z jednego słowa, jej wykonanie wymaga dwóch cykli pamięci (21,6 psec).

b) Gdy FIN znajduje się pod adresem (PH) 1111 1111 dane zostaną pobrane z następnej strony ( ROM) w kolejności, a nie z tej samej strony (ROM), na której znajduje się instrukcja FIN. Oznacza to, że następny adres to (PH + 1) (0000) (0001), a nie (PH) (0000) (0001).


Instrukcja Maszynowa składająca się z Dwóch Słów

Mnemonic:JUN (Jump unconditional)
1st word OPR OPA:0100 A3 A3 A3 A3
2nd word OPR OPA:A2 A2 A2 A2  Al Al Al Al
Symbolic:Al Al Al Al --> PL,
A2 A2 A2 A2 --> PM,
A3 A3 A3 A3 --> PH
Opis:Sterowanie programem jest bezwarunkowo przekazywane do lokalizatora instrukcji pod adresem A3 A3 A3 A3, A2 A2 A2 A2, Al Al Al Al.

Mnemonic:JMS (Jump to Subroutine)
1st word OPR OPA:0101 A3 A3 A3 A3
2nd word OPR OPA:A2 A2 A2 A2  A1 A1 A1 A1
Symbolic:Al Al Al Al --> PL,
A2 A2 A2 A2 --> PM,
A3 A3 A3 A3 --> PH
Opis:Adres następnej instrukcji w kolejności po JMS (adres zwrotny) jest zapisywany na stosie push down. Sterowanie programem przekazywane jest do instrukcji umieszczonej pod adresem 12-bitowym (A3A3A3A3A2A2A2A2A1A1A1A1). Wykonanie instrukcji powrotu (BBL) spowoduje wyciągnięcie zapisanego adresu ze stosu, dlatego kontrola programu jest przenoszona do następnej instrukcji sekwencyjnej po ostatnim JMS.

Stos przesuwany ma 4 rejestry . Jeden z nich jest używany jako licznik programu, dlatego zagnieżdżanie JMS może mieć maksymalnie 3 poziomy.
PRZYKŁAD:
 Stack Stack 
No JMS ->
received
 
 
 
PC              
-> JMS#1 ->
received
 
 
PC
Rtn addr#1
->
 Stack Stack 
JMS#2 ->
received
 
PC
Rtn addr#2
Rtn addr#1
-> JMS#3 ->
received
PC
Rtn addr#3
Rtn addr#2
Rtn addr#1
->
 Stack Stack 
JMS#4 ->
received
Rtn addr#4
Rtn addr#3
Rtn addr#2
PC
-> BBL ->
received
PC
Rtn addr#3
Rtn addr#2
 
  
Najgłębszy adres zwrotny został utracony.

Mnemonic:JCN (Jump conditional)
1st word OPR OPA:0001 C1C2C3C4
2nd word OPR OPA:A2 A2 A2 A2  A1 A1 A1 A1
Symbolic:If C1C2C3C4 is true, A2A2A2A2 --> PM
A1A1A1A1 --> PL, PH unchanged
if C1C2C3C4 is false,
(PH) --> PH, (PM) --> PM, (PL + 2) --> PL
Opis:Jeśli wyznaczony kod warunku jest prawdziwy, sterowanie programem jest przekazywane do instrukcji znajdującej się pod 8-bitowym adresem A2A2A2A2, A1A1A1A1 na tej samej stronie (ROM), na której znajduje się JCN.
Jeśli warunek nie jest prawdziwy, następna instrukcja w kolejności po wykonaniu JCN.
Bity warunku są przypisywane w następujący sposób:
C1 = 0 Nie odwracaj warunku skoku
C1 = 1 Odwróć warunek skoku
C2 = 1 Skocz, jeśli zawartość akumulatora wynosi zero < br> C3 = 1 Skocz, jeśli zawartość przenoszenia/link wynosi 1
C4 = 1 Skocz, jeśli sygnał testowy (styk 10 na 4004) ma wartość zero.
Przykład:OPR    OPA
------    ------
0001    0110  Skocz, jeśli akumulator ma wartość zero lub przeniesienie = 1


Kilka warunków można przetestować jednoczesnie.

Równanie logiczne opisujące warunek skoku jest podane poniżej:

JUMP = ~C1 . ((ACC = 0) . C2 + (CY = 1) . C3 +
               ~TEST . C4) + C1 . ~((ACC = 0) . C2 +
               (CY = 1) . C3 + ~TEST . C4)
WYJˇTKI:Jeśli JCN znajduje się na słowach 254 i 255 na stronie ROM, gdy JCN jest wykonywany i warunek jest prawdziwy, sterowanie programem jest przesyłane do 8-bitowego adresu na następnej stronie, na której znajduje się JCN.

Mnemonic:ISZ (Increment index register skip if zero)
1st word OPR OPA:0111 RRRR
2nd word OPR OPA:A2 A2 A2 A2  A1 A1 A1 A1
Symbolic:(RRRR) + 1 --> RRRR, if result = 0
(PH) --> PH, (PM) --> PM, (PL + 2) --> PL:
if result <> 0  (PH) --> PH,
A2A2A2A2 --> PM, A1A1A1A1 --> PL
Opis:Zawartość wyznaczonego rejestru indeksowego jest zwiększana o 1. Akumulator i przeniesienie/link pozostają niezmienione. Jeśli wynikiem jest zero, wykonywana jest następna instrukcja po ISZ. Jeżeli wynik jest różny od 0, sterowanie programem jest przekazywane do instrukcji znajdującej się pod 8-bitowym adresem A2A2A2A2, A1A1A1A1 na tej samej stronie (ROM), na której znajduje się instrukcja ISZ.
WYJˇTKI:Jeśli ISZ znajduje się na słowach 254 i 255 strony ROM, gdy ISZ jest wykonywany i wynik nie jest zerowy, sterowanie programem jest przesyłane do 8-bitowego adresu znajdującego się na następnej stronie w kolejności, a nie na tej samej stronie, na której znajduje się ISZ jest zlokalizowany.

Mnemonic:FIM (Fetched immediate from ROM)
1st word OPR OPA:0010 RRR0
2nd word OPR OPA:D2 D2 D2 D2  D1 D1 D1 D1
Symbolic:D2D2D2D2 --> RRR0, D1D1D1D1 --> RRR1
Opis:Drugie słowo reprezentuje 8-bitowe dane, które są ładowane do wyznaczonej pary rejestrów indeksowych.


Instrukcje Wejścia/Wyjścia i pamięci RAM
(Pamięci RAM i ROM obsługiwane w instrukcjach I/O i RAM zostały
wcześniej wybrane przez ostatnią wykonaną instrukcje SRC.)

Mnemonic:RDM (Read RAM character)
OPR OPA:1110 1001
Symbolic:(M) --> ACC
Opis:Zawartość wybranej wcześniej pamięci głównej RAM jest przenoszona na akumulator. Nie ma to wpływu na przeniesienie/link. Nie ma to wpływu na 4-bitowe dane w pamięci.

Mnemonic:RD0 (Read RAM status character 0)
OPR OPA:1110 1100
Symbolic:(MS0) --> ACC
Opis:4 bity znaku statusu 0 dla wcześniej wybranego rejestru RAM są przesyłane do akumulatora. Nie ma to wpływu na przeniesienie/link i znak statusu.

Mnemonic:RD1 (Read RAM status character 1)
OPR OPA:1110 1101
Symbolic:(MS1) --> ACC

Mnemonic:RD2 (Read RAM status character 2)
OPR OPA:1110 1110
Symbolic:(MS2) --> ACC

Mnemonic:RD3 (Read RAM status character 3)
OPR OPA:1110 1111
Symbolic:(MS0) --> ACC

Mnemonic:RDR (Read ROM port)
OPR OPA:1110 1010
Symbolic:(ROM input lines) --> ACC
Opis:Dane obecne na liniach wejściowych wybranego wcześniej układu ROM są przesyłane do akumulatora. Nie ma to wpływu na przeniesienie/link. Jeśli opcja I/O ma zarówno wejścia, jak i wyjścia w tych samych 4 liniach I/O, użytkownik może wybrać opcje "0" lub "1" przeniesiona do akumulatora dla tych pinów I/O zakodowanych jako wyjścia, gdy Wykonywana jest instrukcja RDR.
PRZYKŁAD:Biorąc pod uwagę 4001 z kodowaniem I/O z 2 wejściami i 2 wyjściami, kiedy RDR jest wykonywany, transfer jest taki, jak pokazano poniżej:

I3 O2 O1 I0                  (ACC)
1  X  X  0  1  -->  1 (1 or 0) (1 or 0) 0
 Dane Wejśc.         Użyt. może wybrać

Mnemonic:WRM (Write accumulator into RAM character)
OPR OPA:1110 0000
Symbolic:(ACC) --> M
Opis:Zawartość akumulatora jest zapisywana w wybranym wcześniej miejscu w pamięci głównej RAM. Akumulator i przeniesienie/link pozostaja nienaruszone.

Mnemonic:WRO (Write accumulator into RAM status character 0)
OPR OPA:1110 0100
Symbolic:(ACC) --> MS0
Opis:Zawartość akumulatora jest zapisywana w znaku stanu 0 pamięci RAM wcześniej wybranego rejestru RAM. Akumulator i przeniesienie/link pozostaja nienaruszone.

Mnemonic:WR1 (Write accumulator into RAM status character 1)
OPR OPA:1110 0101
Symbolic:(ACC) --> MS1

Mnemonic:WR2 (Write accumulator into RAM status character 2)
OPR OPA:1110 0110
Symbolic:(ACC) --> MS2

Mnemonic:WR3 (Write accumulator into RAM status character 3)
OPR OPA:1110 0111
Symbolic:(ACC) --> MS3

Mnemonic:WRR (Write ROM port)
OPR OPA:1110 0010
Symbolic:(ACC) --> ROM output lines
Opis:Zawartość akumulatora jest przenoszona do portu wyjściowego ROM wybranego wcześniej układu ROM. Dane są dostępne na pinach wyjściowych, dopóki nowy WRR nie zostanie wykonany na tym samym chipie. Treść ACC i przeniesienie/link pozostaja nienaruszone. (Bit LSB akumulatora pojawia się na I/O 0, styk 16, 4001). Żadna operacja nie jest wykonywana na liniach I/O zakodowanych jako wejścia.

Mnemonic:WMP (Write memory port)
OPR OPA:1110 0001
Symbolic:(ACC) --> RAM output register
Opis:Zawartość akumulatora jest przenoszona do portu wyjściowego RAM wcześniej wybranego układu RAM. Dane są dostępne na pinach wyjściowych, dopóki nowy WMP nie zostanie wykonany na tym samym układzie RAM. Nie ma to wpływu na zawartość ACC i przeniesienie/link. (Bit LSB akumultora pojawia się na O0, Pin 16 w 4002.)

Mnemonic:ADM (Add from memory with carry)
OPR OPA:1110 1011
Symbolic:(M) + (ACC) + (CY) --> ACC, CY
Opis:Zawartość wybranej wczesniej pamięci głównej RAM jest dodawana do akumulatora z przeniesieniem. Charakter pamięci RAM pozostaje niezmieniony.

Mnemonic:SBM (Subtract from memory with borrow)
OPR OPA:1110 1000
Symbolic:~(M) + (ACC) + ~(CY) --> ACC, CY
Opis:Zawartość poprzednio wybranej postaci RAM jest odejmowana od akumulatora z pożyczka. Charakter pamięci RAM pozostaje niezmieniony.


Instrukcje dotyczące Grupy Akumulatorów

Mnemonic:CLB (Clear both)
OPR OPA:1111 0000
Symbolic:0 --> ACC, 0 --> CY
Opis:Ustaw akumulator i przeniesienie/link na 0.

Mnemonic:CLC (Clear carry)
OPR OPA:1111 0001
Symbolic:0 --> CY
Opis:Ustaw przeniesienie/link na 0.

Mnemonic:CMC (Complement carry)
OPR OPA:1111 0011
Symbolic:~(CY) --> CY
Opis:Treść przeniesienia/linku jest uzupełniana.

Mnemonic:STC (Set carry)
OPR OPA:1111 1010
Symbolic:1 --> CY
Opis:Ustaw przeniesienie/link na 1

Mnemonic:CMA (Complement Accumulator)
OPR OPA:1111 0100
Symbolic:~a3 ~a2 ~a1 ~a0 --> ACC
Opis:Uzupełnienie zawartości akumulatora. Nie ma to wpływu na przeniesienie/link.

Mnemonic:IAC (Increment accumulator)
OPR OPA:1111 0010
Symbolic:(ACC) +1 --> ACC
Opis:Zawartość akumulatora jest zwiększana o 1. Brak przepełnienia ustawia przeniesienie/link na 0; przepełnienie ustawia carry/link na 1.

Mnemonic:DAC (decrement accumulator)
OPR OPA:1111 1000
Symbolic:(ACC) - 1 --> ACC
Opis:Zawartość akumulatora jest zmniejszana o 1. Pożyczka ustawia przeniesienie/link na 0; brak pożyczki ustawia przeniesienie/link na 1.
PRZYKŁAD:(ACC)
|
    a3 a2 a1 a0
+)  1  1  1  1
      ------------------
C4  S3 S2 S1 S0
|                |
CY           ACC

Mnemonic:RAL (Rotate left)
OPR OPA:1111 0101
Symbolic:C0 --> a0, a(i) --> a(i+1), a3 -->CY
Opis:Zawartość akumulatora i przeniesienia/link są obracane w lewo.

Mnemonic:RAR (Rotate right)
OPR OPA:1111 0110
Symbolic:a0 --> CY, a(i) --> a(i-1), C0 -->a3
Opis:Zawartość akumulatora i przeniesienia/link są obracane w prawo.

Mnemonic:TCC (Transmit carry and clear)
OPR OPA:1111 0111
Symbolic:0 --> ACC, (CY) --> a0, 0 --> CY
Opis:Akumulator jest wyczyszczony. Najmniej znacząca pozycja akumulatora jest ustawiona na wartość przeniesienia/link.
Przeniesienie/link jest ustawione na 0.

Mnemonic:DAA (Decimal adjust accumulator)
OPR OPA:1111 1011
Symbolic:(ACC) + (0000 or 0110) --> ACC
Opis:Akumulator jest zwiększany o 6, jeśli albo przeniesienie/link ma wartość 1 lub jeśli zawartość akumulatora jest większa niż 9.
Przeniesienie/link jest ustawione na 1, jeśli wynik generuje przeniesienie, w przeciwnym razie nie ma to wpływu.

Mnemonic:TCS (Transfer carry subtract)
OPR OPA:1111 1001
Symbolic:1001 --> ACC if (CY) = 0
1010 --> ACC if (CY) = 1
0 --> CY
Opis:Akumulator jest ustawiony na 9, jeśli przeniesienie/kink ma wartość 0.
Akumulator jest ustawiony na 10, jeśli przeniesienie/link to 1.
Przeniesienie/link jest ustawione na 0.

Mnemonic:KBP (Keyboard process)
OPR OPA:1111 1100
Symbolic:(ACC) --> KBP, ROM --> ACC
Opis:Konwersja kodu jest wykonywana na zawartości akumulatora, z 1 z n na kod binarny. Jeśli zawartość akumulatora ma więcej niż jeden bit, akumulator zostanie ustawiony na 15 (aby wskazać błąd). Nie ma to wpływu na przeniesienie/link.
Tabela konwersji jest pokazana poniżej:

(ACC) przed KBP 
 
(ACC) po KBP
0000---->0000
0001---->0001
0010---->0010
0100---->0011
1000---->0100
0011---->1111
0101---->1111
0110---->1111
0111---->1111
1001---->1111
1010---->1111
1011---->1111
1100---->1111
1101---->1111
1110---->1111
1111---->1111


Mnemonic:DCL (Designate command line)
OPR OPA:1111 1101
Symbolic:a0 --> CM0, a1 --> CM1, a2 --> CM2
Opis:Zawartość trzech najmniej znaczących bitów akumulatora jest przesyłana do rejestru sterowania komendami w CPU. Ta instrukcja zapewnia wybór banku RAM, gdy używanych jest wiele banków RAM (jeśli nie jest wysyłana żadna instrukcja DCL, numer zerowego banku RAM jest wybierany automatycznie po zastosowaniu co najmniej jednego RESETU). DCL pozostaje zablokowany, dopóki nie zostanie zmieniony.

Wyboru dokonuje sie zgodnie z poniższą tabelą prawdy.
(ACC)CM-RAMi EnabledBank No.
---------------------------------------------
X000CM-RAM0Bank 0
X001CM-RAM1Bank 1
X010CM-RAM2Bank 2
X100CM-RAM3Bank 3
X011CM-RAM1, CM-RAM1Bank 4
X101CM-RAM1, CM-RAM3Bank 5
X110CM-RAM2, CM-RAM3Bank 6
X111CM-RAM1, CM-RAM2, CM-RAM3Bank 7



add adm bbl clb clc cma cmc daa dac dcl fim fin iac inc isz jcn jin jms jun kbp ld ldm nop ral rar rd0 rd1 rd2 rd3 rdm rdr sbm src stc sub tcc tcs wmp wrm wr0 wr1 wr2 wr3 wrr xch