⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ea.h

📁 motorola自己开发的针对coldfire 5272的Dbug bootloader程序
💻 H
字号:
/*
 * File:		src/cpu/coldfire/ea.h
 * Purpose:		Defintions global to Disassemble and Assemble routines
 *
 * Notes:
 *
 */

#ifndef _EA_H
#define _EA_H

/********************************************************************/
/*
 * M68K addressing modes
 */
#define DRD     (0x00000001)            /* data register direct */
#define ARD     (0x00000002)            /* address register direct */
#define ARI     (0x00000004)            /* address register indirect */
#define ARIPO   (0x00000008)            /* ari with postincrement */
#define ARIPR   (0x00000010)            /* ari with predecrement */
#define ARID    (0x00000020)            /* ari with displacement */
#define ARII8   (0x00000040)            /* ari with index 8-bit */
#define ARIIB   (0x00000080)            /* ari with index base */
#define MIPO    (0x00000100)            /* memory indirect postindexed */
#define MIPR    (0x00000200)            /* memory indirect preindexed */
#define PCID    (0x00000400)            /* program counter indirect disp */
#define PCII8   (0x00000800)            /* pci with index 8-bit */
#define PCIIB   (0x00001000)            /* pci with index base */
#define PCMIPO  (0x00002000)            /* pc memory indirect postindexed */
#define PCMIPR  (0x00004000)            /* pc memory indirect preindexed */
#define AS      (0x00008000)            /* absolute short */
#define AL      (0x00010000)            /* absolute long */
#define IM      (0x00020000)            /* immediate */

/*
 * Addressing mode categories
 */
#if (defined(CPU_FAM_MCF5XXX))
	
#define EA_DATA         (DRD | ARI | ARIPO | ARIPR | ARID | ARII8 \
                                        | PCID | PCII8 | AS | AL | IM )
 
#define EA_MEMORY       (ARI | ARIPO | ARIPR | ARID | ARII8 \
                                        | PCID | PCII8 | AS | AL | IM )
 
#define EA_CONTROL      (ARI | ARID | ARII8 | PCID | PCII8 | AS | AL )
 
#define EA_ALTER        (DRD | ARD | ARI | ARIPO | ARIPR | ARID | ARII8 )
 
#define EA_DATA_ALTER   (DRD | ARI | ARIPO | ARIPR | ARID | ARII8 )
 
#define EA_MEM_ALTER    (ARI | ARIPO | ARIPR | ARID | ARII8 )
 
#define EA_CTRL_ALTER   (ARI | ARID | ARII8 )
 
#define EA_ALL          (DRD | ARD | ARI | ARIPO | ARIPR | ARID | ARII8 \
                                        | PCID | PCII8 | AS | AL | IM )
 
#define EA_NONE         (0)
 
#define EA_DATA1        (DRD | ARI | ARIPO | ARIPR | ARID)
#define EA_DATA2        (DRD | IM)
#define EA_DATA3        (DRD | ARI | ARIPO | ARIPR | ARID | ARII8 | AS | AL \
						| IM | PCID | PCII8)
#define EA_DATALT1      (DRD | ARI | ARIPO | ARIPR | ARID | ARII8 | AS | AL )
#define EA_DATALT2      (DRD)
#define EA_DATALT3      (DRD | ARI | ARIPO | ARIPR | ARID)
#define EA_ALTER1       (DRD | ARD | ARI | ARIPO | ARIPR | ARID | ARII8 | AS \
						| AL)
#define EA_MEMALT1      (ARI | ARIPO | ARIPR | ARID | ARII8 | AS | AL)
#define EA_CTRL1        (ARI | ARID)
#define EA_CTRALT3      (ARI | ARID)
 
#ifdef CPU_FAM_MCF5XXXM
#define EA_MAC1         (ARI | ARIPO | ARIPR | ARID)
#define EA_MAC2         (DRD | ARD | IM)
#endif
 
#else
 
 
#define EA_DATA         (DRD | ARI | ARIPO | ARIPR | ARID | ARII8 \
						| ARIIB | MIPO | MIPR | PCID | PCII8 | PCIIB \
						| PCMIPO | PCMIPR | AS | AL | IM )
 
#define EA_MEMORY       (ARI | ARIPO | ARIPR | ARID | ARII8 \
						| ARIIB | MIPO | MIPR | PCID | PCII8 | PCIIB \
						| PCMIPO | PCMIPR | AS | AL | IM )
 
#define EA_CONTROL      (ARI | ARID | ARII8 | ARIIB \
						| MIPO | MIPR | PCID | PCII8 | PCIIB \
						| PCMIPO | PCMIPR | AS | AL )
 
#define EA_ALTER        (DRD | ARD | ARI | ARIPO | ARIPR | ARID | ARII8 \
						| ARIIB | MIPO | MIPR \
						| PCMIPO | PCMIPR )
 
#define EA_DATA_ALTER   (DRD | ARI | ARIPO | ARIPR | ARID | ARII8 | ARIIB \
						| MIPO | MIPR | PCMIPO | PCMIPR )
 
#define EA_MEM_ALTER    (ARI | ARIPO | ARIPR | ARID | ARII8 | ARIIB \
						| PCMIPO | PCMIPR )
 
#define EA_CTRL_ALTER   (ARI | ARID | ARII8 | ARIIB | MIPO | MIPR \
						| PCMIPO | PCMIPR )
 
#define EA_ALL          (DRD | ARD | ARI | ARIPO | ARIPR | ARID | ARII8 \
						| ARIIB | MIPO | MIPR | PCID | PCII8 | PCIIB \
						| PCMIPO | PCMIPR | AS | AL | IM )
 
 
#define EA_NONE         (0)
 
#define EA_DATA1        (DRD | ARI | ARIPO | ARIPR | ARID | ARII8 | ARIIB \
						| MIPO | MIPR | PCID | PCII8 | PCIIB | PCMIPO \
						| PCMIPR | AS | AL )
 
#define EA_DATALT1      (DRD | ARI | ARIPO | ARIPR | ARID | ARII8 | ARIIB \
						| MIPO | MIPR | AS | AL )
 
#define EA_DATALT2      (DRD | ARI | ARIPO | ARIPR | ARID | ARII8 | AS | AL )
 
#define EA_ALTER1       (DRD | ARD | ARI | ARIPO | ARIPR | ARID | ARII8 \
						| ARIIB | MIPO | MIPR | AS | AL)
 
#define EA_MEMALT1      (ARI | ARIPO | ARIPR | ARID | ARII8 | ARIIB \
						| MIPO | MIPR | AS | AL)
 
#define EA_CTRALT1      (DRD | ARI | ARID | ARII8 | ARIIB | MIPO | MIPR \
						| AS | AL )
 
#define EA_CTRALT2      (DRD | ARI | ARID | ARII8 | ARIIB | MIPO | MIPR \
						| PCID | PCII8 | PCIIB | PCMIPO | PCMIPR | AS | AL )
 
#define EA_CTRALT3      (ARI | ARIPR | ARID | ARII8 | ARIIB | MIPO | MIPR \
						| AS | AL )
 
#define EA_CTRL1        (ARI | ARIPO | ARID | ARII8 | ARIIB | MIPO | MIPR \
						| PCID | PCII8 | PCIIB | PCMIPO | PCMIPR | AS | AL )
 
#endif

typedef struct
{
        uint16    keepers;
        uint16    match;
        char    *instruction;
        int     ea_mask;
        void    (*handler)(int, uint16);
        void    (*asm_func)(int,uint16);
} INSTRENTRY; 

extern const
INSTRENTRY isa[];
/********************************************************/

/* 
 * Prototypes for functions in asm.c
 */
void afun1(int, uint16);
void afun2(int, uint16);
void afun3(int, uint16);
void afun4(int, uint16);
void afun5(int, uint16);
void afun6(int, uint16);
void afun7(int, uint16);
void afun8(int, uint16);
void afun9(int, uint16);
void afun10(int, uint16);
void afun11(int, uint16);
void afun12(int, uint16);
void afun13(int, uint16);
void afun14(int, uint16);
void afun15(int, uint16);
void afun15b(int, uint16, int);
void afun16(int, uint16);
void afun17(int, uint16);
void afun18(int, uint16);
void afun19(int, uint16);
void afun20(int, uint16);
void afun21(int, uint16);
void afun22(int, uint16);
void afun23(int, uint16);
void afun24(int, uint16);
void afun25(int, uint16);
void afun26(int, uint16);
void afun27(int, uint16);
void afun28(int, uint16);
void afun29(int, uint16);
void afun30(int, uint16);
void afun31(int, uint16);
void afun32(int, uint16);
void afun33(int, uint16);
void afun34(int, uint16);
void afun35(int, uint16);
void afun36(int, uint16);
void afun37(int, uint16);

#ifdef CMDLINE_ASM
#define AFUN1	afun1
#define AFUN2	afun2
#define AFUN3	afun3
#define AFUN4	afun4
#define AFUN5	afun5
#define AFUN6	afun6
#define AFUN7	afun7
#define AFUN8	afun8
#define AFUN9	afun9
#define AFUN10	afun10
#define AFUN11	afun11
#define AFUN12	afun12
#define AFUN13	afun13
#define AFUN14	afun14
#define AFUN15	afun15
#define AFUN15B	afun15b
#define AFUN16	afun16
#define AFUN17	afun17
#define AFUN18	afun18
#define AFUN19	afun19
#define AFUN20	afun20
#define AFUN21	afun21
#define AFUN22	afun22
#define AFUN23	afun23
#define AFUN24	afun24
#define AFUN25	afun25
#define AFUN26	afun26
#define AFUN27	afun27
#define AFUN28	afun28
#define AFUN29	afun29
#define AFUN30	afun30
#define AFUN31	afun31
#define AFUN32	afun32
#define AFUN33	afun33
#define AFUN34	afun34
#define AFUN35	afun35
#define AFUN36	afun36
#define AFUN37	afun37

#else
#define AFUN1	0
#define AFUN2	0
#define AFUN3	0
#define AFUN4	0
#define AFUN5	0
#define AFUN6	0
#define AFUN7	0
#define AFUN8	0
#define AFUN9	0
#define AFUN10	0
#define AFUN11	0
#define AFUN12	0
#define AFUN13	0
#define AFUN14	0
#define AFUN15	0
#define AFUN15B	0
#define AFUN16	0
#define AFUN17	0
#define AFUN18	0
#define AFUN19	0
#define AFUN20	0
#define AFUN21	0
#define AFUN22	0
#define AFUN23	0
#define AFUN24	0
#define AFUN25	0
#define AFUN26	0
#define AFUN27	0
#define AFUN28	0
#define AFUN29	0
#define AFUN30	0
#define AFUN31	0
#define AFUN32	0
#define AFUN33	0
#define AFUN34	0
#define AFUN35	0
#define AFUN36	0
#define AFUN37	0
#endif

#endif /* _EA_H */

⌨️ 快捷键说明

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