📄 h8300.h
字号:
RSPOSTINC = SRC | POSTINC, RDPOSTINC = DST | POSTINC, RSPREINC = SRC | PREINC, RDPREINC = DST | PREINC, RSPOSTDEC = SRC | POSTDEC, RDPOSTDEC = DST | POSTDEC, RSPREDEC = SRC | PREDEC, RDPREDEC = DST | PREDEC, RSIND = SRC | IND, RDIND = DST | IND, R3_IND = OP3 | IND,#define MS32 (SRC | L_32 | MACREG)#define MD32 (DST | L_32 | MACREG)#if 1 OR8 = RS8, /* ??? OR as in One Register. */ OR16 = RS16, OR32 = RS32,#else OR8 = RD8, OR16 = RD16, OR32 = RD32#endif};enum ctrlreg{ C_CCR = 0, C_EXR = 1, C_MACH = 2, C_MACL = 3, C_VBR = 6, C_SBR = 7};enum {MAX_CODE_NIBBLES = 33};struct code { op_type nib[MAX_CODE_NIBBLES];};struct arg { op_type nib[3];};/* Availability of instructions on processor models. */enum h8_model{ AV_H8, AV_H8H, AV_H8S, AV_H8SX};struct h8_opcode { int how; enum h8_model available; int time; char *name; struct arg args; struct code data;};#ifdef DEFINE_TABLE#define DATA2 DATA, DATA#define DATA3 DATA, DATA, DATA#define DATA5 DATA, DATA, DATA, DATA, DATA#define DATA7 DATA, DATA, DATA, DATA, DATA, DATA, DATA#define IMM8LIST IMM8, DATA#define IMM16LIST IMM16, DATA3#define IMM16ULIST IMM16U, DATA3#define IMM24LIST IMM24, DATA5#define IMM32LIST IMM32, DATA7#define DISP16LIST DISP | L_16, DATA3#define DISP24LIST DISP | L_24, DATA5#define DISP32LIST DISP | L_32, DATA7#define ABS8LIST ABS | L_8, DATA#define ABS16LIST ABS | L_16U, DATA3#define ABS24LIST ABS | L_24, DATA5#define ABS32LIST ABS | L_32, DATA7#define DSTABS8LIST DST | ABS | L_8, DATA#define DSTABS16LIST DST | ABS | L_16U, DATA3#define DSTABS24LIST DST | ABS | L_24, DATA5#define DSTABS32LIST DST | ABS | L_32, DATA7#define OP3ABS8LIST OP3 | ABS | L_8, DATA#define OP3ABS16LIST OP3 | ABS | L_16, DATA3#define OP3ABS24LIST OP3 | ABS | L_24, DATA5#define OP3ABS32LIST OP3 | ABS | L_32, DATA7#define DSTDISP16LIST DST | DISP | L_16, DATA3#define DSTDISP24LIST DST | DISP | L_24, DATA5#define DSTDISP32LIST DST | DISP | L_32, DATA7#define A16LIST L_16, DATA3#define A24LIST L_24, DATA5#define A32LIST L_32, DATA7/* Extended Operand Prefixes: */#define PREFIX_010 0x0, 0x1, 0x0#define PREFIX_015 0x0, 0x1, 0x5#define PREFIX_017 0x0, 0x1, 0x7#define PREFIX_0100 0x0, 0x1, 0x0, 0x0#define PREFIX_010_D2 0x0, 0x1, 0x0, B30 | B21 | DISP2SRC#define PREFIX_0101 0x0, 0x1, 0x0, 0x1#define PREFIX_0102 0x0, 0x1, 0x0, 0x2#define PREFIX_0103 0x0, 0x1, 0x0, 0x3#define PREFIX_0104 0x0, 0x1, 0x0, 0x4#define PREFIX_0105 0x0, 0x1, 0x0, 0x5#define PREFIX_0106 0x0, 0x1, 0x0, 0x6#define PREFIX_0107 0x0, 0x1, 0x0, 0x7#define PREFIX_0108 0x0, 0x1, 0x0, 0x8#define PREFIX_0109 0x0, 0x1, 0x0, 0x9#define PREFIX_010A 0x0, 0x1, 0x0, 0xa#define PREFIX_010D 0x0, 0x1, 0x0, 0xd#define PREFIX_010E 0x0, 0x1, 0x0, 0xe#define PREFIX_0150 0x0, 0x1, 0x5, 0x0#define PREFIX_015_D2 0x0, 0x1, 0x5, B30 | B21 | DISP2SRC#define PREFIX_0151 0x0, 0x1, 0x5, 0x1#define PREFIX_0152 0x0, 0x1, 0x5, 0x2#define PREFIX_0153 0x0, 0x1, 0x5, 0x3#define PREFIX_0154 0x0, 0x1, 0x5, 0x4#define PREFIX_0155 0x0, 0x1, 0x5, 0x5#define PREFIX_0156 0x0, 0x1, 0x5, 0x6#define PREFIX_0157 0x0, 0x1, 0x5, 0x7#define PREFIX_0158 0x0, 0x1, 0x5, 0x8#define PREFIX_0159 0x0, 0x1, 0x5, 0x9#define PREFIX_015A 0x0, 0x1, 0x5, 0xa#define PREFIX_015D 0x0, 0x1, 0x5, 0xd#define PREFIX_015E 0x0, 0x1, 0x5, 0xe#define PREFIX_015F 0x0, 0x1, 0x5, 0xf#define PREFIX_0170 0x0, 0x1, 0x7, 0x0#define PREFIX_017_D2S 0x0, 0x1, 0x7, B30 | B21 | DISP2SRC#define PREFIX_017_D2D 0x0, 0x1, 0x7, B30 | B21 | DISP2DST#define PREFIX_0171 0x0, 0x1, 0x7, 0x1#define PREFIX_0172 0x0, 0x1, 0x7, 0x2#define PREFIX_0173 0x0, 0x1, 0x7, 0x3#define PREFIX_0174 0x0, 0x1, 0x7, 0x4#define PREFIX_0175 0x0, 0x1, 0x7, 0x5#define PREFIX_0176 0x0, 0x1, 0x7, 0x6#define PREFIX_0177 0x0, 0x1, 0x7, 0x7#define PREFIX_0178 0x0, 0x1, 0x7, 0x8#define PREFIX_0179 0x0, 0x1, 0x7, 0x9#define PREFIX_017A 0x0, 0x1, 0x7, 0xa#define PREFIX_017D 0x0, 0x1, 0x7, 0xd#define PREFIX_017E 0x0, 0x1, 0x7, 0xe#define PREFIX_017F 0x0, 0x1, 0x7, 0xf#define PREFIX_6A15 0x6, 0xa, 0x1, 0x5#define PREFIX_6A35 0x6, 0xa, 0x3, 0x5#define PREFIX_6B15 0x6, 0xb, 0x1, 0x5#define PREFIX_6B35 0x6, 0xb, 0x3, 0x5#define PREFIX_78R4 0x7, 0x8, B31 | DISPREG, 0x4#define PREFIX_78R5 0x7, 0x8, B31 | DISPREG, 0x5#define PREFIX_78R6 0x7, 0x8, B31 | DISPREG, 0x6#define PREFIX_78R7 0x7, 0x8, B31 | DISPREG, 0x7#define PREFIX_78R4W 0x7, 0x8, B30 | DISPREG, 0x4#define PREFIX_78R5W 0x7, 0x8, B30 | DISPREG, 0x5#define PREFIX_78R6W 0x7, 0x8, B30 | DISPREG, 0x6#define PREFIX_78R7W 0x7, 0x8, B30 | DISPREG, 0x7#define PREFIX_78R4WD 0x7, 0x8, B30 | DSTDISPREG, 0x4#define PREFIX_78R5WD 0x7, 0x8, B30 | DSTDISPREG, 0x5#define PREFIX_78R6WD 0x7, 0x8, B30 | DSTDISPREG, 0x6#define PREFIX_78R7WD 0x7, 0x8, B30 | DSTDISPREG, 0x7#define PREFIX_7974 0x7, 0x9, 0x7, 0x4#define PREFIX_7A74 0x7, 0xa, 0x7, 0x4#define PREFIX_7A7C 0x7, 0xa, 0x7, 0xc/* Source standard fragment: */#define FROM_IND 0, RSIND#define FROM_POSTINC 8, RSPOSTINC#define FROM_POSTDEC 10, RSPOSTDEC#define FROM_PREINC 9, RSPREINC#define FROM_PREDEC 11, RSPREDEC#define FROM_DISP2 B30 | B20 | DISP2SRC, DISPREG #define FROM_DISP16 12, B30 | DISPREG#define FROM_DISP32 12, B31 | DISPREG#define FROM_DISP16B 13, B30 | DISPREG#define FROM_DISP16W 14, B30 | DISPREG#define FROM_DISP16L 15, B30 | DISPREG#define FROM_DISP32B 13, B31 | DISPREG#define FROM_DISP32W 14, B31 | DISPREG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -