void InitOrder()//初始化指令库
{
int op;char code[5];
Rtype r;
Itype i;
Jtype j;
int k;
FILE *fp = fopen("order_library.txt","r");
if(fp==NULL){printf("cannot open file\n");exit(0);}//打开文件
for(k=0;k<31;k++)
{
fscanf(fp,"%s",code);
strcpy(order_library[k].code,code);
fscanf(fp,"%d",&op);
if(Get_type_by_op(op)==0)
{
strcpy(r.code,code);
r.op=op;
fscanf(fp,"%d%d%d%d%d",&r.rs,&r.rt,&r.rd,&r.shamt,&r.func);
r.sum=r.op*POWER_26+r.rs*POWER_21+r.rt*POWER_16+r.rd*POWER_11+r.shamt*POWER_6+r.func;
order_library[k].sum=r.sum;
}
else if(Get_type_by_op(op)==1)
{
strcpy(i.code,code);
i.op=op;
fscanf(fp,"%d%d%d",&i.rs,&i.rt,&i.immediate);
i.sum=i.op*POWER_26+i.rs*POWER_21+i.rt*POWER_16+i.immediate;
order_library[k].sum=i.sum;
}
else
{
strcpy(j.code,code);
j.op=op;
fscanf(fp,"%d",&j.address);
j.sum=j.op*POWER_26+j.address;
order_library[k].sum=j.sum;
}
}
fclose(fp);
}