addr.h

来自「m68k系列反汇编的C语言源码,供学习编译原理的同学使用。实用!」· C头文件 代码 · 共 76 行

H
76
字号
/* *                 Author:  Christopher G. Phillips *              Copyright (C) 1994 All Rights Reserved * *                              NOTICE * * Permission to use, copy, modify, and distribute this software and * its documentation for any purpose and without fee is hereby granted * provided that the above copyright notice appear in all copies and * that both the copyright notice and this permission notice appear in * supporting documentation. * * The author makes no representations about the suitability of this * software for any purpose.  This software is provided ``as is'' * without express or implied warranty. *//* * This file contains macros that test whether mode-register combinations * match commonly used categories of addressing modes. */#define ISDATA(m)	((m) == 0)#define ISDIRECT(m)	((m) == 1)#define ISINDIRECT(m)	((m) == 2)#define ISPOST(m)	((m) == 3)#define ISPRE(m)	((m) == 4)#define ISDISP(m)	((m) == 5)#define ISINDEX(m)	((m) == 6)#define ISSHORT(m,r)	((m) == 7 && (r) == 0)#define ISLONG(m,r)	((m) == 7 && (r) == 1)#define ISPCDISP(m,r)	((m) == 7 && (r) == 2)#define ISPCINDEX(m,r)	((m) == 7 && (r) == 3)#define ISIMM(m,r)	((m) == 7 && (r) == 4)/* alterable data */#define ISADEA(m,r)	(ISDATA(m) | ISINDIRECT(m) | ISPOST(m) | ISPRE(m) \			  | ISDISP(m) | ISINDEX(m) | ISSHORT(m,r) | ISLONG(m,r))/* data minus immediate */#define ISDEAlessIMM(m,r)	(ISADEA(m,r) | ISPCDISP(m,r) | ISPCINDEX(m,r))/* data */#define ISDEA(m,r)	(ISDEAlessIMM(m,r) | ISIMM(m,r))/* alterable memory */#define ISAMEA(m,r)	(ISINDIRECT(m) | ISPOST(m) | ISPRE(m) | ISDISP(m) \			  | ISINDEX(m) | ISSHORT(m,r) | ISLONG(m,r))/* memory */#define ISMEA(m,r)	(ISAMEA(m,r) | ISIMM(m,r) | ISPCDISP(m,r) \			  | ISPCINDEX(m,r))/* alterable */#define ISAEA(m,r)	(ISADEA(m,r) | ISDIRECT(m))/* all */#define ISALLEA(m,r)	(ISDEA(m,r) | ISDIRECT(m))	/* alterable control */#define ISACEA(m,r)	(ISINDIRECT(m) | ISDISP(m) | ISINDEX(m) | ISSHORT(m,r) \			  | ISLONG(m,r))/* alterable control plus predecrement */#define ISACEAplusPRE(m,r)	(ISACEA(m,r) | ISPRE(m))/* control */#define ISCEA(m,r)	(ISACEA(m,r) | ISPCDISP(m,r) | ISPCINDEX(m,r))/* control plus postincrement */#define ISCEAplusPOST(m,r)	(ISCEA(m,r) | ISPOST(m))/* alterable data  minus data */#define ISADEAlessDATA(m,r)	(ISINDIRECT(m) | ISPOST(m) | ISPRE(m) \			| ISDISP(m) | ISINDEX(m) | ISSHORT(m,r) | ISLONG(m,r))

⌨️ 快捷键说明

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