📄 mystruct.h
字号:
//是否分配设备
#define MD_NULL 1
#define MD_A 2
#define MD_B 3
#define MD_C 4
#define MD_BC 5
#define MD_AC 6
#define MD_AB 7
#define MD_ABC 8
//中断类型
#define HALT_TIME 1
#define HALT_NA 2
#define HALT_NB 3
#define HALT_NC 4
#define HALT_NBC 5
#define HALT_NAC 6
#define HALT_NAB 7
#define HALT_NABC 8
#define HALT_NOUT 9
#define HALT_NINPUT 10
//////////////////////////////////////////////////////////////////////
//cpu解析指令的结构体
//////////////////////////////////////////////////////////////////////
typedef struct Scpudictate{
CString strename; //指令名
int iparstate[3]; //描述参数状态。第一个数组表示有几个参数,第二个
//和第二个分别表示一,二个参数的类型。1为 int,2为CString。
CString strpar[2];
int ipar[8];
}Sdictate;
//////////////////////////////////////////////////////////////////////
//进程结构体
//////////////////////////////////////////////////////////////////////
typedef struct Sprocess{
double ID; //每个进程的唯一标示号。为系统时间。
CString strname; //进程名
int istate; //进程状态,0:中断,1:就绪,2:运行
int idictatenum; //指令个数
int idictaterun; //指令执行的位置
int isavereg[8]; //寄存器保存,顺序为:ax.bx.cx.cs.ds.psw.
int ihaltreasion; //中断原因 1时钟中断,2等待设备A,3等待设备B,4等待设备C,5等待输入
int waittime; //中断时的等待时间。
int iequipment; //是否分配设备.0:无,1:分配设备A,2:分配设备B,3:分配设备C
Sdictate pdictate[50]; //指令集
}Sprocess;
//////////////////////////////////////////////////////////////////////
//主存PCB区结构体
//////////////////////////////////////////////////////////////////////
typedef struct Smemorypcb{
bool full; //是否空,FALSE为空
int address; //在内存中的起始地址
Sprocess pcb;
}PCB;
//////////////////////////////////////////////////////////////////////
//主存结构体
//////////////////////////////////////////////////////////////////////
typedef struct Smemory{
PCB pcb[11]; //用数组模拟主存PCB区
int index[64]; //用数组模拟主存分配表
int usememory[64][8]; //用数组模拟主存客户区
}Smemory;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -