casm.l  |  casm.y  |  casm.h  |  Makefile

/*command types*/
#define j_type  0
#define r_type  1
#define i_type  2
#define v_type  3
#define d_type  4

/*opcodes*/
#define op_NUL  0x00

#define op_PDI  0x01
#define op_PDO  0x02

#define op_HI   0x03
#define op_SET  0x04

#define op_ADD  0x05
#define op_SUB  0x06
#define op_MUL  0x07
#define op_DIV  0x08
#define op_MOD  0x09
#define op_PCA  0x0A
#define op_PCS  0x0B

#define op_AND  0x0C
#define op_OR   0x0D
#define op_XOR  0x0E
#define op_SHL  0x0F
#define op_SHR  0x10
#define op_RTL  0x11
#define op_RTR  0x12
#define op_FBS  0x13
#define op_CBS  0x14

#define op_CST  0x15
#define op_CGT  0x16
#define op_CE   0x17

#define op_JMP  0x18
#define op_JMR  0x19
#define op_BEZ  0x1A
#define op_BGZ  0x1B
#define op_ISP  0x1C

#define op_LDA  0x1D
#define op_SVA  0x1E
#define op_DTA  0x1F

/*subcodes*/
#define sc_LW   0x30
#define sc_SW   0x31

#define sc_PDI  0x01
#define sc_PDO  0x02

#define sc_HI   0x03
#define sc_SET  0x04
#define sc_XCH  0x32

#define sc_ADD  0x05
#define sc_SUB  0x06
#define sc_MUL  0x07
#define sc_DIV  0x08
#define sc_MOD  0x09
#define sc_PCA  0x0A
#define sc_PCS  0x0B

#define sc_AND  0x0C
#define sc_OR   0x0D
#define sc_XOR  0x0E
#define sc_SHL  0x0F
#define sc_SHR  0x10
#define sc_RTL  0x11
#define sc_RTR  0x12
#define sc_FBS  0x13
#define sc_CBS  0x14

#define sc_CST  0x15
#define sc_CGT  0x16
#define sc_CE   0x17

#define sc_JMP  0x18
#define sc_JMR  0x19
#define sc_BEZ  0x1A
#define sc_BGZ  0x1B
#define sc_ISP  0x1C
#define sc_ISD  0x33
#define sc_IRD  0x34
#define sc_IRE  0x35

#define sc_LDA  0x1D
#define sc_SVA  0x1E