HNU计算机系统学习笔记(二)

剑谱第一页,无爱即使神。

 风浪越大🐟越贵,课程越难分越贵。

第一部分:引论

课程介绍及概论:

学习内容:

课程加小班,感觉和电子电路一样让人受不了

成绩构成 :

 

 

 计算机简化模型:

知识点:

        寄存器:在CPU内部,是珍贵的,因为CPU的运行频率远大于内存的运行频率。

        寄存器有多少位于计算机字节等长

        内存:内存资源丰富,有内存地址,即四字节编号和八位数据存储组成

示例代码过程:

int i=1;
int j=2;
int k;
k=i+j;

涉及两个动作:“开辟空间” 和“赋初值写入内存单元”

  1. 将地址为0000的内存赋值为0000_0001,把这块内存单元叫做i
  2. 将地址为0001的内存赋值为0000_0010,把这块内存单元叫做j
  3. 将地址为0010的内存单元叫做k,但是没有赋初始值
  4. 分四步走
    1. 将变量i的值(地址为0000的内存空间的值)通过总线读入CPU内部,放入CPU寄存器中的某个寄存器(视频教程给的是00寄存器)
    2. 将变量j的值(地址为0001的内存空间的值)通过总线读入CPU内部,放入CPU寄存器中的某个寄存器(视频教程给的是01寄存器)
    3. 通过au(逻辑算术单元)进行加法操作
    4. 通过总线写入地址为0010的内存单元即分配给k

一个原型系统

目标:更加深入理解计算机的底层逻辑

冯诺依曼体系结构:输入设备,运算器,存储器,控制器,输出设备

 原型系统:虽然简单,但是也符合冯诺依曼结构

 各组成部分功能

 原型系统指令集

编程任务 

void main()
{
    int a;
    int sum;
    int i;
    sum=0;
    scanf("%d",&sum);
    for(i=a;i>=1;--i)
    {
        sum=sum+i;
    }
    printf("%d\n",sum);
}

原型系统不能执行C语言程序,转换成指令集合来实现功能。

文字指令:

  1. 变量 a 分配到第一个字节,地址0000,初始值为0
  2. 变量 sum 分配到第二个字节,地址0001,初始值为0
  3. 变量 i 分配到第三个字节,地址0010,初始值为0
  4. sum=0 :把0000_0000拷贝到sum的内存单元
  5. scanf(“%d”,&a)观察原型机结构可知:输入数据存储在CPU的寄存器中
    1. 输入a的值存储在R0
    2. 将数据从R0拷贝到地址为0000的内存单元,即赋值给a
  6. 寄存器R2赋值为1,R0减去R2,写入R0实现i的自减,如果R0减去R2小于0时R3为-1,否则为1
  7. R0的值为a,R1的值为累加和
  8. R0和R1做加法把结果写入R1
  9. R0和R2做减法把结果写入R0,R2的值一直为1,如果R0的值大于等于1则继续跳转,如果R0的值等于0,则不继续跳转
  10. 数据拷贝R1到地址为0001的内存单元,即拷贝给sum
  11. 输出sum的数据

把文字指令转换成原型机能执行的指令:

还有一部分是在ubuntu系统做一下原型机,博主会专门再发一下文章。

大家加油!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值