📄 codegenerationdatatype.h
字号:
#ifndef __CODE_GENERATION_DATATYPE_DEF
#define __CODE_GENERATION_DATATYPE_DEF
#include "PlatformIndependentDataType.h"
//------------------中间代码结构定义 ,生成的中间代码表中存放的每一项即是这样的结构-----------------------
typedef struct tagIntermediateCode
{
InstructionType type; //该中间代码的指令类型
Operand operand1; //操作数1
Operand operand2; //操作数2
int iSrcCodeLineNumber; //该行中间代码在源程序中的行号
} IntermediateCode;
//------------------变量标号表中的元素结构定义------------------------------------------------------------
typedef struct tagVariableLabelItem
{
CaslString strLabelName; //标号名称
int iOffset; //标号所对应的实际偏移
} VariableLabelItem;
//-------------------变量标号表中的元素结构定义------------------------------------------------------------
typedef struct tagConstLabelItem
{
CaslString strLabelName; //标号名称
int iOffset; //标号所对应的实际偏移
} ConstLabelItem;
//-------------------指令标号表中的元素结构定义-------------------------------------------------------------
typedef struct tagInstructionLabelItem
{
CaslString strLabelName; //标号名称
int iOffset; //标号所对应的实际偏移
} InstructionLabelItem;
//-------------------目标代码结构定义-----------------------------------------------------------------------
#pragma pack( push, 1)
typedef struct tagObjectCode
{
unsigned char instructionType; //指令类型(LEA, ST, 还是JMP等)
unsigned char regNumber; //低半字节存放通用寄存器,高半字节存放变址寄存器
unsigned char address[2]; //存放有效地址操作数中的地址
} ObjectCode;
#pragma pack(pop)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -