#1 2022-05-12 16:39:04

rcv
Участник

Instructions Table CPU_C8A

Regs : 256 x 16 bit
RAM : 256 x 16 bit

A+B>C

0x00   0000 . 0000   NOP
0x01   0000 . 0001   RET
0x02   0000 . 0010   IRET
0x03   0000 . 0011   LRET
0x04   0000 . 0100   -
0x05   0000 . 0101   -
0x06   0000 . 0110   -
0x07   0000 . 0111   -
0x08   0000 . 1000  -
0x09   0000 . 1001  -
0x0A   0000 . 1010  -
0x0B   0000 . 1011  -
0x0C   0000 . 1100  -
0x0D   0000 . 1101  -
0x0E   0000 . 1110  -
0x0F   0000 . 1111  -

; -------------------------
; 2-bytes commands
; -------------------------

; Math

0x20 0010 . 0000   RRRR.RRRR  CLR       ; Clear Register
0x21 0010 . 0001   RRRR.RRRR  ONE      ; Set Register to 1
0x22 0010 . 0010   RRRR.RRRR  MONE   ; Set Register to -1
0x23 0010 . 0011   RRRR.RRRR   INV       ; Invert
0x24 0010 . 0100   RRRR.RRRR  INC        ; Increment +1
0x25 0010 . 0101   RRRR.RRRR  DEC      ; Decrement -1
0x26 0010 . 0110   RRRR.RRRR  NBL8     ; High8<>Low8
0x27 0010 . 0111   RRRR.RRRR  NBL4     ; High4<>Low4

; Stack related
0x28 0010 . 1000 . RRRRRRRR  push <R>  ; Push register to stack
0x29 0010 . 1001 . RRRRRRRR  pop   <R>  ; Pop register from stack
0x2A 0010 . 1010 . RRRRRRRR  - ;
0x2B 0010 . 1011 . RRRRRRRR  - ;
0x2C 0010 . 1100 . RRRRRRRR  - ;
0x2D 0010 . 1101 . RRRRRRRR  - ;
0x2E 0010 . 1110 . RRRRRRRR  - ;
0x2F 0010 . 1111 . RRRRRRRR  - ;

; Bit Shift

0x30 0011 . 1010 . RRRRRRRR  SHL      ; Shift left
0x31 0011 . 1011 . RRRRRRRR  SHR      ; Shift right
0x32 0011 . 1100 . RRRRRRRR  - ;
0x33 0011 . 1101 . RRRRRRRR  - ;
0x34 0011 . 1110 . RRRRRRRR  - ;
0x35 0011 . 1111 . RRRRRRRR  - ;

; Branch Short

0x40-41  0100 . 000N  aaaa.aaaa  JA / JNA     ; A>B ?  A<=B ?
0x42-43  0100 . 001N  aaaa.aaaa  JB / JNB    ; A<B ? A>=B ?
0x44-45  0100 . 010N  aaaa.aaaa  JE / JNE    ; A=B ? A<>B ?
0x46-47  0100 . 011N  aaaa.aaaa  JZ / JNZ     ; A=0 ? A!=0 ?

0x60  0110 . 0000  aaaa.aaaa  RJMP              ; Relative jump +/- 127
0x61  0110 . 0001  aaaa.aaaa  RCALL            ; Relative call  +/- 127

; -------------------------
; 3-bytes commands
; -------------------------

; Logic

0x80  1000 . 0000   RRRR.RRRR  YYYY.YYYY     AND     ; R&=Y
0x81  1000 . 0001   RRRR.RRRR  YYYY.YYYY     OR       ; R|=Y
0x82  1000 . 0010   RRRR.RRRR  YYYY.YYYY     XOR     ; R^=Y
0x83  1000 . 0011   RRRR.RRRR  YYYY.YYYY     COPY   ; R=Y
0x84  1000 . 0100   RRRR.RRRR  YYYY.YYYY     ADD      ; R+=Y
0x85  1000 . 0101   RRRR.RRRR  YYYY.YYYY     SUB      ; R-=Y
0x86  1000 . 0110   RRRR.RRRR  YYYY.YYYY     CMP      ; R-Y > FLAGS
0x87  1000 . 0111   RRRR.RRRR  YYYY.YYYY     SWAP    ; R<>Y
0x88  1000 . 1000   RRRR.RRRR  YYYY.YYYY     
0x89  1000 . 1001   RRRR.RRRR  YYYY.YYYY     
0x8A  1000 . 1010   RRRR.RRRR  YYYY.YYYY     
0x8B  1000 . 1011   RRRR.RRRR  YYYY.YYYY     
0x8C  1000 . 1100  RRRR.RRRR  YYYY.YYYY     
0x8D  1000 . 1101  RRRR.RRRR  YYYY.YYYY     
0x8E  1000 . 1110   RRRR.RRRR  YYYY.YYYY   
0x8F  1000 . 1111   RRRR.RRRR  YYYY.YYYY   

0x90  1001 . 0000  RRRR.RRRR  MMMM.MMMM  RMEM
0x91  1001 . 0001  RRRR.RRRR  MMMM.MMMM  WMEM
0x92  1001 . 0010  RRRR.RRRR  MMMM.MMMM  RMEMSW
0x93  1001 . 0011  RRRR.RRRR  MMMM.MMMM  WMEMSW
0x94  1001 . 0100  RRRR.RRRR  MMMM.MMMM  RMEML
0x95  1001 . 0101  RRRR.RRRR  MMMM.MMMM  WMEML
0x96  1001 . 0110  RRRR.RRRR  MMMM.MMMM  RMEMH
0x97  1001 . 0111  RRRR.RRRR  MMMM.MMMM  WMEMH



0xF0  1111 . 0000  AAAA.AAAA  AAAA.AAAA   JMP
0xF1  1111 . 0001  AAAA.AAAA  AAAA.AAAA   CALL
0xF8  1111 . 1000  AAAA.AAAA  AAAA.AAAA   AAAA.AAAA  LJMP
0xF9  1111 . 1001  AAAA.AAAA  AAAA.AAAA   AAAA.AAAA  LCALL



R252  [DS]
R253  [DP]
R254  [CS]
R255  [PC]

Изменено rcv (2022-05-13 11:29:56)

Не в сети

Подвал раздела

Работает на FluxBB (перевод Laravel.ru)