剑谱第一页,无爱即使神。
风浪越大🐟越贵,课程越难分越贵。
第一部分:引论
课程介绍及概论:
学习内容:
课程加小班,感觉和电子电路一样让人受不了
成绩构成 :
计算机简化模型:
知识点:
寄存器:在CPU内部,是珍贵的,因为CPU的运行频率远大于内存的运行频率。
寄存器有多少位于计算机字节等长
内存:内存资源丰富,有内存地址,即四字节编号和八位数据存储组成
示例代码过程:
int i=1;
int j=2;
int k;
k=i+j;
涉及两个动作:“开辟空间” 和“赋初值写入内存单元”
- 将地址为0000的内存赋值为0000_0001,把这块内存单元叫做i
- 将地址为0001的内存赋值为0000_0010,把这块内存单元叫做j
- 将地址为0010的内存单元叫做k,但是没有赋初始值
- 分四步走
- 将变量i的值(地址为0000的内存空间的值)通过总线读入CPU内部,放入CPU寄存器中的某个寄存器(视频教程给的是00寄存器)
- 将变量j的值(地址为0001的内存空间的值)通过总线读入CPU内部,放入CPU寄存器中的某个寄存器(视频教程给的是01寄存器)
- 通过au(逻辑算术单元)进行加法操作
- 通过总线写入地址为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语言程序,转换成指令集合来实现功能。
文字指令:
- 变量 a 分配到第一个字节,地址0000,初始值为0
- 变量 sum 分配到第二个字节,地址0001,初始值为0
- 变量 i 分配到第三个字节,地址0010,初始值为0
- sum=0 :把0000_0000拷贝到sum的内存单元
- scanf(“%d”,&a)观察原型机结构可知:输入数据存储在CPU的寄存器中
- 输入a的值存储在R0
- 将数据从R0拷贝到地址为0000的内存单元,即赋值给a
- 寄存器R2赋值为1,R0减去R2,写入R0实现i的自减,如果R0减去R2小于0时R3为-1,否则为1
- R0的值为a,R1的值为累加和
- R0和R1做加法把结果写入R1
- R0和R2做减法把结果写入R0,R2的值一直为1,如果R0的值大于等于1则继续跳转,如果R0的值等于0,则不继续跳转
- 数据拷贝R1到地址为0001的内存单元,即拷贝给sum
- 输出sum的数据
把文字指令转换成原型机能执行的指令:
还有一部分是在ubuntu系统做一下原型机,博主会专门再发一下文章。
大家加油!