Search   
Home  Print View  

 

Architecture

Branch Content

Instructions Set Summary

==============================================================================================
    proj HERSIM -- ISA summary
==============================================================================================
Operational Code     Mnemonic          Description                                Cy   Flags
----------------------------------------------------------------------------------------------
000 rra aaa aaa      ldz r, addr       Load  page zero   r= [000 00a aaa aaa]     1    ZN
001 rra aaa aaa      stz r, addr       Store page zero   [000 00a aaa aaa]=r      1    ----
010 rra aaa aaa      ldd r, addr       Load  direct      r=[ppp ppa aaa aaa]      1    ZN
011 rra aaa aaa      sto r, addr       Store direct      [ppp ppa aaa aaa ]=r     1    ----
----------------------------------------------------------------------------------------------
100 rrr 000 sss      ldr r, s          Register  r=s
100 rrr 100 000      ldi r, value      Immediate r=[PC+1]

----------------------------------------------------------------------------------------------
101 rrr 000 xxx      ldx r, x          Load  indirect  r=[x]                      1    ZN
101 rrr 001 xxx      stx r, x          Store indirect  [x]=r                      1    ----
101 rrr 010 xxx      ldy r, x          with auto-inc   r=[x], x++                 1    ZN
101 rrr 011 xxx      sty r, x          with auto-inc   [x]=r, x++                 1    ----  

101 000 100 xxx      ldch x            Read channel indirect   [x]=channel        2    ----  
101 000 101 xxx      stch x            Write channel indirect  channel=[x]        2    ----
101 000 110 xxx      ldct x            Read channel control register indirect     2    ----
101 000 111 xxx      stct x            Write channel control register indirect    2    ----

----------------------------------------------------------------------------------------------
110 rrr 0dd ddd      ldix r, d         Load  indexed  r=[IX+d]
110 rrr 1dd ddd      stix r, d         Store indexed  [IX+d]=r

----------------------------------------------------------------------------------------------
111 000 000 000      halt              Halt the computer
111 000 000 001      di                Disable interrupts
111 000 000 010      dt                Disable trap
111 000 000 011      ?
111 000 000 1..         ?

111 000 001 000      ?                  
111 000 001 001      ei                Enable Interrupts
111 000 001 010      et                Enable trap
111 000 001 011         ?

111 000 01. ...      ?
111 000 10. ...      ?
111 000 11. ...      ?

----------------------------------------------------------------------------------------------
111 001 0gg ggg      setp  g           Set Page
111 001 10c ccc      setch c           Set Channel

----------------------------------------------------------------------------------------------
111 010 rrf fff      ALU      (--- pending design---)
111 010 11f fff      ALU LOCK (--- pending design---)

----------------------------------------------------------------------------------------------
111 011 000 000      jp   address      Unconditional jump
111 011 000 ...      ?

111 011 001 000      jz   address      Jump if Zero
111 011 001 001      jc   address      Jump if Carry
111 011 001 010      jn   address      Jump if Negative
111 011 001 011      jv   address      Jump if Overflow
111 011 001 100      jnz  address      Jump if Not Zero
111 011 001 101      jnc  address      Jump if Not Carry
111 011 001 110      jnn  address      Jump if Positive
111 011 001 111      jnv  address      Jump if Not Overflow

111 011 010 000      ret               Unconditional return
111 011 010 ...      ?

111 011 011 000      rz                Return if Zero
111 011 011 001      rc                Return if Carry
111 011 011 010      rn                Return if Negative
111 011 011 011      rv                Return if Overflow
111 011 011 100      rnz               Return if Not Zero
111 011 011 101      rnc               Return if Not Carry
111 011 011 110      rnn               Return if Positive
111 011 011 111      rnv               Return if Not Overflow
    
111 011 100 000      call address      Unconditional call
111 011 100 ...      ?

111 011 101 000      cz   address      Call if Zero
111 011 101 001      cc   address      Call if Carry
111 011 101 010      cn   address      Call if Negative
111 011 101 011      cv   address      Call if Overflow
111 011 101 100      cnz  address      Call if Not Zero
111 011 101 101      cnc  address      Call if Not Carry
111 011 101 110      cnn  address      Call if Positive
111 011 101 111      cnv  address      Call if Not Overflow

----------------------------------------------------------------------------------------------
111 100 000 rrr      push r            SP--, [SP]=r
111 100 100 rrr      pop  r            r=[SP], SP++

----------------------------------------------------------------------------------------------
111 101 000 rrr      dec r             r--
111 101 001 rrr      inc r             r++

----------------------------------------------------------------------------------------------
111 11a aaa aaa      callz addr           Call Page Zero
                

Powered by HelpBooks version 0.86, running at: melissa