📄 operanddef.h
字号:
///////////////////////////////////////////////////////////////////////
//文件功能: 定义Casl汇编程序中的操作数相关定义
//开发人员:杨军
//开发日期:2004-4-17
//修改人员:
//修改日期:
///////////////////////////////////////////////////////////////////////
#ifndef __OPERAND_DEF
#define __OPERAND_DEF
//------------宏定义,标识操作数中不含寄存器-------------------------------
#define REG_EMPTY 9
//------------------------操作数类型类型定义---------------------------
typedef enum
{
REG_OPERAND = 0, //寄存器操作数
EA_OPERAND, //有效地址操作数
EMPTY_OPERAND //空地址操作数(用于标识操作数为空)
} OperandType;
//-----------------------寄存器操作数结构定义---------------------------
typedef struct tagRegOperand
{
int regNumber; //寄存器的编号(0, 1, 2, 3, 4)
} RegOperand; //寄存器操作数的结构定义
//----------------------有效地址操作数中的相对地址的类型定义------------
typedef enum
{
LABEL_EA_ADDRESS, //标号地址类型
DEC_EA_ADDRESS, //十进制数据地址类型
EMPTY_ADDRESS = -1 //地址值为空
} EAAddressType;
//----------------------有效地址操作数中标号地址的结构定义---------------
typedef struct tagLabelEAAddress
{
CaslString strLabelName; //标号名称
} LabelEAAddress;
//----------------------有效地址操作数中的相对地址的结构定义-------------
typedef struct tagEAAddress
{
EAAddressType type; //有效地址操作数中的相对地址的类型
union
{
LabelEAAddress labelAddress; //标号地址
int decAddress; //十进制数据地址
} addressVal; //相对地址值
} EAAddress;
//----------------------有效地址操作数的结构定义--------------------------
typedef struct tagEAOperand
{
int regNumber; //变址寄存器的编号(0, 1, 2, 3, 4) (REG_EMPTY表示不使用)
EAAddress address; //地址
} EAOperand;
//----------------------Cals中的操作数结构定义-----------------------------
typedef struct tagOperand
{
OperandType type; //操作数类型
union
{
RegOperand regOperand; //寄存器操作数
EAOperand eaOperand; //有效地址操作数
} OperandVal; //操作数的具体数据
} Operand;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -