w65-opc.h

来自「基于4个mips核的noc设计」· C头文件 代码 · 共 570 行 · 第 1/2 页

H
570
字号
/* Instruction opcode header for WDC 65816    (generated by the program sim/w65/gencode -a)Copyright 2001 Free Software Foundation, Inc.This file is part of the GNU Binutils and/or GDB, the GNU debugger.This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public License alongwith this program; if not, write to the Free Software Foundation, Inc.,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.*/#define ADDR_IMMTOA              1	 /* #a      */#define ADDR_IMMCOP              2	 /* #c      */#define ADDR_IMMTOI              3	 /* #i      */#define ADDR_ACC                 4	 /* A       */#define ADDR_PC_REL              5	 /* r       */#define ADDR_PC_REL_LONG         6	 /* rl      */#define ADDR_IMPLIED             7	 /* i       */#define ADDR_STACK               8	 /* s       */#define ADDR_DIR                 9	 /* d       */#define ADDR_DIR_IDX_X           10	 /* d,x     */#define ADDR_DIR_IDX_Y           11	 /* d,y     */#define ADDR_DIR_IND             12	 /* (d)     */#define ADDR_DIR_IDX_IND_X       13	 /* (d,x)   */#define ADDR_DIR_IND_IDX_Y       14	 /* (d),y   */#define ADDR_DIR_IND_LONG        15	 /* [d]     */#define ADDR_DIR_IND_IDX_Y_LONG  16	 /* [d],y   */#define ADDR_ABS                 17	 /* a       */#define ADDR_ABS_IDX_X           18	 /* a,x     */#define ADDR_ABS_IDX_Y           19	 /* a,y     */#define ADDR_ABS_LONG            20	 /* al      */#define ADDR_ABS_IND_LONG        21	 /* [a]     */#define ADDR_ABS_LONG_IDX_X      22	 /* al,x    */#define ADDR_STACK_REL           23	 /* d,s     */#define ADDR_STACK_REL_INDX_IDX  24	 /* (d,s),y */#define ADDR_ABS_IND             25	 /* (a)     */#define ADDR_ABS_IND_IDX         26	 /* (a,x)   */#define ADDR_BLOCK_MOVE          27	 /* xyz     */struct opinfo {	int val;	int code;	char *name;	int amode;};struct opinfo optable[257]={#define O_adc 1#define O_and 2#define O_asl 3#define O_bcc 4#define O_bcs 5#define O_beq 6#define O_bit 7#define O_bmi 8#define O_bne 9#define O_bpl 10#define O_bra 11#define O_brk 12#define O_brl 13#define O_bvc 14#define O_bvs 15#define O_clc 16#define O_cld 17#define O_cli 18#define O_clv 19#define O_cmp 20#define O_cop 21#define O_cpx 22#define O_cpy 23#define O_dec 24#define O_dex 25#define O_dey 26#define O_eor 27#define O_inc 28#define O_inx 29#define O_iny 30#define O_jmp 31#define O_jsr 32#define O_lda 33#define O_ldx 34#define O_ldy 35#define O_lsr 36#define O_mvn 37#define O_mvp 38#define O_nop 39#define O_ora 40#define O_pea 41#define O_pei 42#define O_per 43#define O_pha 44#define O_phb 45#define O_phd 46#define O_phk 47#define O_php 48#define O_phx 49#define O_phy 50#define O_pla 51#define O_plb 52#define O_pld 53#define O_plp 54#define O_plx 55#define O_ply 56#define O_rep 57#define O_rol 58#define O_ror 59#define O_rti 60#define O_rtl 61#define O_rts 62#define O_sbc 63#define O_sec 64#define O_sed 65#define O_sei 66#define O_sep 67#define O_sta 68#define O_stp 69#define O_stx 70#define O_sty 71#define O_stz 72#define O_tax 73#define O_tay 74#define O_tcd 75#define O_tcs 76#define O_tdc 77#define O_trb 78#define O_tsb 79#define O_tsc 80#define O_tsx 81#define O_txa 82#define O_txs 83#define O_txy 84#define O_tya 85#define O_tyx 86#define O_wai 87#define O_wdm 88#define O_xba 89#define O_xce 90#ifdef DEFINE_TABLE	{0x69,	O_adc,	"adc",	ADDR_IMMTOA},	{0x72,	O_adc,	"adc",	ADDR_DIR_IND},	{0x71,	O_adc,	"adc",	ADDR_DIR_IND_IDX_Y},	{0x73,	O_adc,	"adc",	ADDR_STACK_REL_INDX_IDX},	{0x61,	O_adc,	"adc",	ADDR_DIR_IDX_IND_X},	{0x67,	O_adc,	"adc",	ADDR_DIR_IND_LONG},	{0x77,	O_adc,	"adc",	ADDR_DIR_IND_IDX_Y_LONG},	{0x6D,	O_adc,	"adc",	ADDR_ABS},	{0x7D,	O_adc,	"adc",	ADDR_ABS_IDX_X},	{0x79,	O_adc,	"adc",	ADDR_ABS_IDX_Y},	{0x6F,	O_adc,	"adc",	ADDR_ABS_LONG},	{0x7F,	O_adc,	"adc",	ADDR_ABS_LONG_IDX_X},	{0x65,	O_adc,	"adc",	ADDR_DIR},	{0x63,	O_adc,	"adc",	ADDR_STACK_REL},	{0x75,	O_adc,	"adc",	ADDR_DIR_IDX_X},	{0x29,	O_and,	"and",	ADDR_IMMTOA},	{0x32,	O_and,	"and",	ADDR_DIR_IND},	{0x31,	O_and,	"and",	ADDR_DIR_IND_IDX_Y},	{0x33,	O_and,	"and",	ADDR_STACK_REL_INDX_IDX},	{0x21,	O_and,	"and",	ADDR_DIR_IDX_IND_X},	{0x27,	O_and,	"and",	ADDR_DIR_IND_LONG},	{0x37,	O_and,	"and",	ADDR_DIR_IND_IDX_Y_LONG},	{0x2D,	O_and,	"and",	ADDR_ABS},	{0x3D,	O_and,	"and",	ADDR_ABS_IDX_X},	{0x39,	O_and,	"and",	ADDR_ABS_IDX_Y},	{0x2F,	O_and,	"and",	ADDR_ABS_LONG},	{0x3F,	O_and,	"and",	ADDR_ABS_LONG_IDX_X},	{0x25,	O_and,	"and",	ADDR_DIR},	{0x23,	O_and,	"and",	ADDR_STACK_REL},	{0x35,	O_and,	"and",	ADDR_DIR_IDX_X},	{0x0A,	O_asl,	"asl",	ADDR_ACC},	{0x0E,	O_asl,	"asl",	ADDR_ABS},	{0x1E,	O_asl,	"asl",	ADDR_ABS_IDX_X},	{0x06,	O_asl,	"asl",	ADDR_DIR},	{0x16,	O_asl,	"asl",	ADDR_DIR_IDX_X},	{0x90,	O_bcc,	"bcc",	ADDR_PC_REL},	{0xB0,	O_bcs,	"bcs",	ADDR_PC_REL},	{0xF0,	O_beq,	"beq",	ADDR_PC_REL},	{0x89,	O_bit,	"bit",	ADDR_IMMTOA},	{0x24,	O_bit,	"bit",	ADDR_DIR_IND},	{0x34,	O_bit,	"bit",	ADDR_DIR_IDX_IND_X},	{0x2C,	O_bit,	"bit",	ADDR_ABS},	{0x3C,	O_bit,	"bit",	ADDR_ABS_IDX_X},	{0x30,	O_bmi,	"bmi",	ADDR_PC_REL},	{0xD0,	O_bne,	"bne",	ADDR_PC_REL},	{0x10,	O_bpl,	"bpl",	ADDR_PC_REL},	{0x80,	O_bra,	"bra",	ADDR_PC_REL},	{0x00,	O_brk,	"brk",	ADDR_STACK},	{0x82,	O_brl,	"brl",	ADDR_PC_REL_LONG},	{0x50,	O_bvc,	"bvc",	ADDR_PC_REL},	{0x70,	O_bvs,	"bvs",	ADDR_PC_REL},	{0x18,	O_clc,	"clc",	ADDR_IMPLIED},	{0xD8,	O_cld,	"cld",	ADDR_IMPLIED},	{0x58,	O_cli,	"cli",	ADDR_IMPLIED},	{0xB8,	O_clv,	"clv",	ADDR_IMPLIED},	{0xC9,	O_cmp,	"cmp",	ADDR_IMMTOA},	{0xD2,	O_cmp,	"cmp",	ADDR_DIR_IND},	{0xD1,	O_cmp,	"cmp",	ADDR_DIR_IND_IDX_Y},	{0xD3,	O_cmp,	"cmp",	ADDR_STACK_REL_INDX_IDX},	{0xC1,	O_cmp,	"cmp",	ADDR_DIR_IDX_IND_X},	{0xC7,	O_cmp,	"cmp",	ADDR_DIR_IND_LONG},	{0xD7,	O_cmp,	"cmp",	ADDR_DIR_IND_IDX_Y_LONG},	{0xCD,	O_cmp,	"cmp",	ADDR_ABS},	{0xDD,	O_cmp,	"cmp",	ADDR_ABS_IDX_X},	{0xD9,	O_cmp,	"cmp",	ADDR_ABS_IDX_Y},	{0xCF,	O_cmp,	"cmp",	ADDR_ABS_LONG},	{0xDF,	O_cmp,	"cmp",	ADDR_ABS_LONG_IDX_X},	{0xC5,	O_cmp,	"cmp",	ADDR_DIR},	{0xC3,	O_cmp,	"cmp",	ADDR_STACK_REL},	{0xD5,	O_cmp,	"cmp",	ADDR_DIR_IDX_X},	{0x02,	O_cop,	"cop",	ADDR_IMMCOP},	{0xE0,	O_cpx,	"cpx",	ADDR_IMMTOI},	{0xEC,	O_cpx,	"cpx",	ADDR_ABS},	{0xE4,	O_cpx,	"cpx",	ADDR_DIR},	{0xC0,	O_cpy,	"cpy",	ADDR_IMMTOI},	{0xCC,	O_cpy,	"cpy",	ADDR_ABS},	{0xC4,	O_cpy,	"cpy",	ADDR_DIR},	{0x3A,	O_dec,	"dec",	ADDR_ACC},	{0xCE,	O_dec,	"dec",	ADDR_ABS},	{0xDE,	O_dec,	"dec",	ADDR_ABS_IDX_X},	{0xC6,	O_dec,	"dec",	ADDR_DIR},	{0xD6,	O_dec,	"dec",	ADDR_DIR_IDX_X},	{0xCA,	O_dex,	"dex",	ADDR_IMPLIED},	{0x88,	O_dey,	"dey",	ADDR_IMPLIED},	{0x49,	O_eor,	"eor",	ADDR_IMMTOA},	{0x52,	O_eor,	"eor",	ADDR_DIR_IND},	{0x51,	O_eor,	"eor",	ADDR_DIR_IND_IDX_Y},	{0x53,	O_eor,	"eor",	ADDR_STACK_REL_INDX_IDX},	{0x41,	O_eor,	"eor",	ADDR_DIR_IDX_IND_X},	{0x47,	O_eor,	"eor",	ADDR_DIR_IND_LONG},	{0x57,	O_eor,	"eor",	ADDR_DIR_IND_IDX_Y_LONG},	{0x4D,	O_eor,	"eor",	ADDR_ABS},	{0x5D,	O_eor,	"eor",	ADDR_ABS_IDX_X},	{0x59,	O_eor,	"eor",	ADDR_ABS_IDX_Y},	{0x4F,	O_eor,	"eor",	ADDR_ABS_LONG},	{0x5F,	O_eor,	"eor",	ADDR_ABS_LONG_IDX_X},	{0x45,	O_eor,	"eor",	ADDR_DIR},	{0x43,	O_eor,	"eor",	ADDR_STACK_REL},	{0x55,	O_eor,	"eor",	ADDR_DIR_IDX_X},	{0x1A,	O_inc,	"inc",	ADDR_ACC},	{0xEE,	O_inc,	"inc",	ADDR_ABS},	{0xFE,	O_inc,	"inc",	ADDR_ABS_IDX_X},	{0xE6,	O_inc,	"inc",	ADDR_DIR},	{0xF6,	O_inc,	"inc",	ADDR_DIR_IDX_X},	{0xE8,	O_inx,	"inx",	ADDR_IMPLIED},	{0xC8,	O_iny,	"iny",	ADDR_IMPLIED},	{0x6C,	O_jmp,	"jmp",	ADDR_ABS_IND},	{0x7C,	O_jmp,	"jmp",	ADDR_ABS_IND_IDX},	{0xDC,	O_jmp,	"jmp",	ADDR_ABS_IND_LONG},	{0x4C,	O_jmp,	"jmp",	ADDR_ABS},	{0x5C,	O_jmp,	"jmp",	ADDR_ABS_LONG},	{0xFC,	O_jsr,	"jsr",	ADDR_ABS_IND_IDX},	{0x20,	O_jsr,	"jsr",	ADDR_ABS},	{0x22,	O_jsr,	"jsr",	ADDR_ABS_LONG},	{0xA9,	O_lda,	"lda",	ADDR_IMMTOA},	{0xB2,	O_lda,	"lda",	ADDR_DIR_IND},	{0xB1,	O_lda,	"lda",	ADDR_DIR_IND_IDX_Y},	{0xB3,	O_lda,	"lda",	ADDR_STACK_REL_INDX_IDX},	{0xA1,	O_lda,	"lda",	ADDR_DIR_IDX_IND_X},	{0xA7,	O_lda,	"lda",	ADDR_DIR_IND_LONG},	{0xB7,	O_lda,	"lda",	ADDR_DIR_IND_IDX_Y_LONG},	{0xAD,	O_lda,	"lda",	ADDR_ABS},	{0xBD,	O_lda,	"lda",	ADDR_ABS_IDX_X},	{0xB9,	O_lda,	"lda",	ADDR_ABS_IDX_Y},	{0xAF,	O_lda,	"lda",	ADDR_ABS_LONG},	{0xBF,	O_lda,	"lda",	ADDR_ABS_LONG_IDX_X},	{0xA5,	O_lda,	"lda",	ADDR_DIR},	{0xA3,	O_lda,	"lda",	ADDR_STACK_REL},	{0xB5,	O_lda,	"lda",	ADDR_DIR_IDX_X},	{0xA2,	O_ldx,	"ldx",	ADDR_IMMTOI},	{0xAE,	O_ldx,	"ldx",	ADDR_ABS},	{0xBE,	O_ldx,	"ldx",	ADDR_ABS_IDX_Y},	{0xA6,	O_ldx,	"ldx",	ADDR_DIR},	{0xB6,	O_ldx,	"ldx",	ADDR_DIR_IDX_Y},	{0xA0,	O_ldy,	"ldy",	ADDR_IMMTOI},	{0xAC,	O_ldy,	"ldy",	ADDR_ABS},	{0xBC,	O_ldy,	"ldy",	ADDR_ABS_IDX_X},

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?