29.9. FJE5

Odkazy:

Jednoduchý pětibitový procesor. Má tyto registry:

Tabulka 29.25. Registry procesoru FJE5

názevšířka [bit]popis
A5akumulátor
I5index registr, obsahuje 5 vyšších bitů 10-ti bitové adresy
SP10ukazatel na zásobník
PC10ukazatel na instrukce

Tabulka 29.26. Instrukce procesoru EFJ5

mnemonickódpopis
NOP00000PC+1→PC
XAI00001A ↔ I; PC+1→PC; //vymění se obsahy registrů A a I
LDA n00010 nnnnnn→A; PC+2→PC; //hodnota n se uloží do střadače A
LDI n00011 nnnnnn→I; PC+2→PC;
LDAI bias00100 nnnnn32*I+n→A; PC+2→PC
LDAD bias00101 bbbbbmem[mem[{I,b}]]→A; PC+2→PC
STAI bias00110 bbbbbA→mem[{I,b}]; PC+2→PC; // Store A indirectly
STAD bias00111 bbbbbA→mem[mem[{I,b}]]; PC+2→PC; // Store A double indirectly
PUSH01000A→mem[SP-1]; I→mem[SP-2]; SP-2→SP; PC+1→PC; // Push A and I on Stack
POP01001mem[SP]→I; mem[SP+1]→A; SP+2→SP; PC+1→PC; // Pop A and I from Stack
CALL addr01010 hhhhh lllllPC→mem[SP]; SP-2→SP; hl→PC; // Call a subroutine
RET01011{mem[SP],mem[SP+1]}→PC; SP+2→SP; // Return from subroutine
LDS adr01100 hhhhh lllllhl→SP; PC+3→PC; // Load SP
JP addr01101 hhhhh lllllhl→PC
JPZ addr01110 hhhhh lllllif A=0 then hl→PC else PC+3→PC;
JPNZ addr01111 hhhh llllif A!=0 then hl→PC else PC+3→PC;
ADD bias10000 bbbbbA+mem[I,bias]→A; PC+2→PC;
SUB bias10010 bbbbbA - mem[I,bias]→A; PC+2→PC
AND bias10100 bbbbbA and mem[I,bias]→A; PC+2→PC
OR bias10110 bbbbbA or mem[I,bias]→A; PC+2→PC
XOR bias11000 bbbbbA xor mem[I,bias]→A; PC+2→PC
SARA11010A>>1→A; PC++; //Shift Arithmetically Right A
SLRA11100A>>>1→A; PC++; //Shift Logically Right A
SLA11110A<<1→A; PC++; // Shift Left A
HALT11111Zastaví vykonávání programu.
Licence Creative Commons
Elektronika a počítače, jejímž autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .