计算机原理:简单CPU模拟器的设计与实现

本文介绍了使用C#设计一个简单CPU模拟器的过程,模拟了包括加法、减法、无符号乘法等基本指令,以及跳转、数据传送等操作。在设计中,通过字符串处理实现指令解析,利用Control类和foreach优化寄存器赋值,针对二进制字符串不足长度问题进行了处理。尽管存在改进空间,但作者在实践中加深了对CPU工作原理的理解。
摘要由CSDN通过智能技术生成

/*

计算机课程设计实验报告

跳转指令用栈实现

*/

一、设计内容

简单CPU模拟器的设计与实现

 

二、设计要求

计算机组成原理这门课程主要是告诉我们在硬件上计算机是如何工作的,如何实现我们的操作的,即让我们了解计算机的基本组成结构以及数据和命令在计算机的物理层面上如何运行的。在学习完这门课程后,我们应该能够运用该课程的基本原理和基本方法,对有关计算机硬件系统中的理论和实际问题进行计算和分析,并能对一些基本部件进行简单设计。因此在本次计算机原理课程设计中,我运用了所学的知识,对计算机CPU运行的过程进行了一次模拟。

1.模拟CPU基本组成

本次模拟的CPU由指令寄存器IR、数据寄存器、PC寄存器、程序状态寄存器SR、16个通用寄存器组成。指令寄存器地址总线和数据总线宽度为16位,数据总线的地址宽度为16位,数据总线的宽度为8位。指令寄存器IR、PC寄存器宽度为16位,16个通用寄存器组R0-R15, 对应的宽度为8位,对应的地址为0—15。通用寄存器、程序状态寄存器和数据存储器统一编址,通用寄存器既可以用寄存器号访问,也可以用地址空间的地址访问。

程序状态寄存器的位位置、位名称、读写属性、复位时的值见下图:

图1 程序状态寄存器介绍

所对应的含义如下:

I:全局中断允许位:为1时,允许中断,否则,禁止中断,CPU响应中断时,硬件将此位清0,从中断返回时,将此位置1

T:位复制存储位:BLD指令用此位的值与16个通用寄存器中的某位交换值

H:半进位标志:即低4位是否向高4位进位或借位,如果有则为1,否则,为0

S:符号标志位:本位是位N和位V的异或值

V:有符号数溢出标志位

C:无符号数溢出标志位

N:负数标志位:若运算结果是负数,则为1;否则,为0

Z:0标志位:若运算

  • 8
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值