• 大小: 10.95MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-19
  • 语言: 其他
  • 标签: 清华大学  电子系  

资源简介

清华大学 电子系 数字逻辑与处理器实验:MIPS处理器设计

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
using namespace std;

struct CmdType
{
CmdType(string type = ““ string ctr = ““): type(type) ctr(ctr)
{
}
string type;
string ctr;
};
struct Error
{
Error(string type = ““ string pos = ““): type(type) pos(pos)
{
}
string type;
string pos;
};

CmdType GetType(string cmd)//判断指令类型
{
istringstream sin(cmd);
sin >> cmd;
if(cmd == “add“) return CmdType(“Ralu“ “100000“);
else if(cmd == “addu“) return CmdType(“Ralu““100001“);
else if(cmd == “sub“) return CmdType(“Ralu“ “100010“);
else if(cmd == “subu“) return CmdType(“Ralu“ “100011“);
else if(cmd == “and“) return CmdType(“Ralu“ “100100“);
else if(cmd == “or“) return CmdType(“Ralu““100101“);
else if(cmd == “xor“) return CmdType(“Ralu“ “100110“);
else if(cmd == “nor“) return CmdType(“Ralu“ “100111“);
else if(cmd == “slt“) return CmdType(“Ralu“ “101010“);
else if(cmd == “sll“) return CmdType(“Rs“ “000000“);
else if(cmd == “srl“) return CmdType(“Rs“ “000010“);
else if(cmd == “sra“) return CmdType(“Rs“ “000011“);
else if(cmd == “jr“) return CmdType(“Rjr“ “001000“);
else if(cmd == “jalr“) return CmdType(“Rjalr“ “001001“);
else if(cmd == “nop“) return CmdType(“Rn“ ““);
else if(cmd == “lw“) return CmdType(“Isl“ “100011“);
else if(cmd == “sw“) return CmdType(“Isl“ “101011“);
else if(cmd == “addi“) return CmdType(“Ialu“ “001000“);
else if(cmd == “addiu“) return CmdType(“Ialu“ “001001“);
else if(cmd == “andi“) return CmdType(“Ialu“ “001100“);
else if(cmd == “ori“) return CmdType(“Ialu“ “001101“);
else if(cmd == “slti“) return CmdType(“Ialu“ “001010“);
else if(cmd == “sltiu“) return CmdType(“Ialu“ “001011“);
else if(cmd == “lui“) return CmdType(“Ilui“ “001111“);
else if(cmd == “beq“) return CmdType(“Ib“ “000100“);
else if(cmd == “bne“) return CmdType(“Ib“ “000101“);
else if(cmd == “blez“) return CmdType(“Ibz“ “000110“);
else if(cmd == “bgtz“) return CmdType(“Ibz“ “000111“);
else if(cmd == “bltz“) return CmdType(“Ibz“ “000001“);
else if(cmd == “j“) return CmdType(“J“ “000010“);
else if(cmd == “jal“) return CmdType(“J“ “000011“);
else throw Error(“Command Error!“ cmd);
}
string BinDcd(unsigned int num unsigned int bits)//数字译码器
{
string adr;
adr.resize(bits);
for(int i = bits - 1; i >= 0; i--)
{
adr[i] = ‘0‘ + (num & 1U);
num = num >> 1;
}
return adr;
}
string BinDcd(string sNum unsigned int bits)
{
unsigned int num; 
istringstream sin(sNum);
sin >> num;
string adr;
adr.resize(bits);
for(int i = bits - 1; i >= 0; i--)
{
adr[i] = ‘0‘ + (num & 1U);
num = num >> 1;
}
return adr;
}
bool Empty(string line)
{
char c;
istringstream sin(line);
sin >> c;
return sin.fail() || c == ‘#‘;
//line.find(‘$‘)==string::npos)  && (line.find(‘j‘)==string::npos) && (line.find(“nop“)==string::npos);
}
string RegDcd(string reg)//寄存器译码
{
istringstrea

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-11-03 02:49  CPU\
     文件        6148  2014-11-03 02:49  CPU\.DS_Store
     目录           0  2015-09-07 15:05  __MACOSX\
     目录           0  2015-09-07 15:05  __MACOSX\CPU\
     文件         120  2014-11-03 02:49  __MACOSX\CPU\._.DS_Store
     目录           0  2014-09-20 11:51  CPU\Assembler\
     目录           0  2014-09-20 11:29  CPU\Assembler\Assembler\
     文件          62  2013-07-28 10:40  CPU\Assembler\Assembler\a.txt
     目录           0  2015-09-07 15:05  __MACOSX\CPU\Assembler\
     目录           0  2015-09-07 15:05  __MACOSX\CPU\Assembler\Assembler\
     文件         178  2013-07-28 10:40  __MACOSX\CPU\Assembler\Assembler\._a.txt
     文件        8391  2013-08-03 23:29  CPU\Assembler\Assembler\Assembler.cpp
     文件         178  2013-08-03 23:29  __MACOSX\CPU\Assembler\Assembler\._Assembler.cpp
     文件        3924  2013-07-12 03:51  CPU\Assembler\Assembler\Assembler.vcxproj
     文件         178  2013-07-12 03:51  __MACOSX\CPU\Assembler\Assembler\._Assembler.vcxproj
     文件         947  2013-07-12 03:51  CPU\Assembler\Assembler\Assembler.vcxproj.filters
     文件         178  2013-07-12 03:51  __MACOSX\CPU\Assembler\Assembler\._Assembler.vcxproj.filters
     文件         143  2013-07-12 03:50  CPU\Assembler\Assembler\Assembler.vcxproj.user
     文件         178  2013-07-12 03:50  __MACOSX\CPU\Assembler\Assembler\._Assembler.vcxproj.user
     目录           0  2014-09-21 08:26  CPU\Assembler\Assembler\Debug\
     文件         406  2013-07-12 04:49  CPU\Assembler\Assembler\Debug\Assembler.exe.embed.manifest
     目录           0  2015-09-07 15:05  __MACOSX\CPU\Assembler\Assembler\Debug\
     文件         178  2013-07-12 04:49  __MACOSX\CPU\Assembler\Assembler\Debug\._Assembler.exe.embed.manifest
     文件         472  2013-07-26 22:59  CPU\Assembler\Assembler\Debug\Assembler.exe.embed.manifest.res
     文件         178  2013-07-26 22:59  __MACOSX\CPU\Assembler\Assembler\Debug\._Assembler.exe.embed.manifest.res
     文件         381  2013-07-26 23:39  CPU\Assembler\Assembler\Debug\Assembler.exe.intermediate.manifest
     文件         178  2013-07-26 23:39  __MACOSX\CPU\Assembler\Assembler\Debug\._Assembler.exe.intermediate.manifest
     文件          93  2013-07-26 23:39  CPU\Assembler\Assembler\Debug\Assembler.lastbuildstate
     文件         178  2013-07-26 23:39  __MACOSX\CPU\Assembler\Assembler\Debug\._Assembler.lastbuildstate
     文件        2355  2013-07-26 23:39  CPU\Assembler\Assembler\Debug\Assembler.log
     文件         178  2013-07-26 23:39  __MACOSX\CPU\Assembler\Assembler\Debug\._Assembler.log
............此处省略300个文件信息

评论

共有 条评论