计算机原理实践作业:简单运算器的设计与实现
水平有限,有很多错误,勉强能够应付作业。如果对你有帮助,希望能点个Star⭐
- 输入数据:获取用户选择的两个数的二进制形式。
- 功能选项:I5、I4、I3组成000-111八种选择,对应运算器的八种功能。
- 加法操作:功能菜单选择000,完成两数的加法操作。
- 减法操作:功能菜单选择001,完成两数的减法操作。
- 乘法操作:功能菜单选择010,完成两数的乘法操作。
- 或操作:功能菜单选择011,完成两数的或运算操作。
- 与操作:功能菜单选择100,完成两数的与运算操作。
- 与运算的反操作:功能菜单选择101,完成两数的与运算的反操作。
- 异或操作:功能菜单选择110,完成两数的异或操作。
- 同或操作:功能菜单选择111,完成两数的同或操作。
- 进位显示:根据两数运算后的结果,计算是否进位,输出进位显示,产生进位为1,没有进位为0。
- 溢出显示:根据两数运算后的结果,计算是否溢出,输出溢出显示,显示结果为“Yes”或“No”。
- 正负判断:根据两数运算后的结果,判断正负,输出判断结果,正数显示为“Positive”,负数显示为“Negative”。
- 输出结果:将操作数运算后的结果以指示灯的形式显示,1为亮灯,该实验设计成绿色,0为灭灯,默认白色。
- IR寄存器:存放功能选择的指令,有000-111八种指令,将选择功能后的指令显示在寄存器上。
- ACC寄存器:存放操作数的运算结果,将运算后的结果显示在ACC上,该结果与输出显示的指示灯结果相对应。
指令000,加法操作
0111 1111 与 0000 0011 进行加法操作,发生了溢出,结果为负数,IR寄存器是000,ACC寄存器是10000010
指令001,减法操作
0000 0111 与 0000 0001 进行减法操作,没有溢出,结果为正数,IR寄存器是001,ACC寄存器是00000110
指令010,乘法操作
0000 1111 与 0001 0000 进行乘法操作,发生了溢出,结果为负数,IR寄存器是010,ACC寄存器是11110000
指令011,或操作
0001 0000 与 0000 1110 进行或操作,结果为正数,IR寄存器是011,ACC寄存器是00011100
指令100,与操作
0001 1100 与 0001 1000 进行与操作,结果为正数,IR寄存器是100,ACC寄存器是00011000
指令101,与操作取反
0000 1110 与 0001 1000 进行与操作后取反,结果为负数,IR寄存器是101,ACC寄存器是11110111
指令110,异或运算
1111 0000 与 0110 1000 进行异或运算,结果为负数,IR寄存器是110,ACC寄存器是1001100
指令111,同或运算
0011 0000 与 0011 1100 进行同或运算,结果为负数,IR寄存器是111,ACC寄存器是11110011