计算机组成原理学习 笔记一

去年开始接触java,今年开始自己玩单片机,Linux。感觉基础太不扎实了,毕竟课程安排没有安排计算机知识的相关学习,开始自己看网课补补。顺便做些笔记,记录下。一起努力好好学习吧

我看的网课是王道考研的《计算机组成原理》,把这个看完还会看他的操作系统,计算机网络,数据结构。希望自己能坚持下来,为自己想做的事打好基础!

冯诺依曼计算机的特点

1、计算机由五大部件组成:存储器,运算器,控制器,输入输出设备

2、指令和数据以同等地位存于存储器,可按地址寻访

3、指令和数据用二进制表示

4、指令由操作码和地址码组成

5、存储程序:提前存储数据到存储器

6、以运算器为中心(中转站,所有过程都要经过运算器)

现代计算机的结构

以存储器为中心 CPU=运算器+控制器

主存:内存 辅存:硬盘(IO设备)

主存储器:MAR(店员)地址存储器 :位数反映存储单元的个数

MDR(柜台) 数据存储器: 位数为存储字长 ( 注意字word和字节Byte )

存储体→存储单元→存储字节→存储元(货架)

数据按地址存储 MAR MDR现在被放到CPU

运算器

ACC:累加器,存放操作数或运算结果

MQ:承商寄存器,存放操作数或运算结果

x:通用的操作数寄存器,用于存放操作数

ALU:算数逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算

控制器

CU:控制单元、分析指令、给出kong’zhi’xin’h

IR:指令寄存器,存放当前指令

PC:程序计数器、存放下一条指令地址、自动加一

完成指令:PC取指→IR分析→CU执行

虚拟机器(高级语言机器)→虚拟机器(汇编语言机器)→传统机器(用机器语言的机器)→微程序机器(微指令系统)

编译程序:一次全部翻译,执行 ;解释程序:翻译一句执行,再翻译再执行。

溢出判断(同号相加 上溢和下溢)

方法一:逻辑表达式判断(正+正,负+负)

方法二:最高位判断

方法三:采用双符号位补码计算(模4补码)(单符号(模2补码))

符号扩展(int->long)

正整数在数值前加0 正小数后面加0

负数反码和补码加1,原码加0 负小数原码补码加0,反码+1

原码一位乘法(每次运算只有原码的一位)

进行n轮加法、移位

每次加法可能+0、+[|x|]原(根据当前MQ的最低位来确定加什么)

MQ最低位=1,ACC+[|x|]原 ;MQ最低为=0,ACC+0

符号位进行异或运算

ACC放乘积高位 MQ放乘数乘积低位

ACC和被乘数(x)进行加法运算,然后ACC和MQ内容统一逻辑右移,以此类推

补码一位乘法

进行n轮加法、移位,最后再多来一次加法(乘数的符号位参与运算)

辅助位-MQ中最低位=1时,ACC+[x]补

辅助位-MQ中最低位=0时,ACC+0

辅助位-MQ中最低位=-1时,ACC+[-x]补

每次移位是“补码的算数右移”->符号位不动,数值位右移,正数右移补0,负数右移补1(符号位是啥就补啥)

符号位参与运算(通过加法、移位确定)

辅助位初始为0(“最低位”)在MQ最低位的右边(原码计算丢弃的那一位不断在此更替)

补码乘法一定要使用双符号位,所有寄存器统一用n+2位

原码除法:恢复余数法

当余数为负时商0,并+|除数|再左移,再-|除数|

实现方法:上商1/0,得到余数,余数末尾补0

ACC(被除数、余数) MQ(商)默认上商1

ALU

通用寄存器(除数)

MQ默认上商1,使ACC+[-|除数|]补(即相减运算,比较大小),当结果符号位为1(余数为负值)则商置0,ACC加回[|除数|]补

然后MQ、ACC进行逻辑左移(ACC高位丢弃、MQ低位补0)

老除数-|除数|=新余数 新余数=?0

Y:商0,+|除数|,恢复为老余数 N:商1

余数逻辑左移 左移n次,上商n+1次 最后一次上商余数不左移

加减交替法

当余数为负时商0,并左移,再+|除数|

被除数-|除数|=新余数 新余数为负?

Y:商0,余数左移并+|除数| N:商1,余数左移并-|除数|

加/减n+1次,每次加减确定一位商;左移n次(最后一次加减完不移位),若最后余数为负,还要多加一次

补码除法(加减交替法)

符号位参与运算,双符号位

上商、加减判断原则:余数和除数同号,商1,余数左移一位减去除数;余数和除数异号,商0,余数左移一位加上除数。重复n次。

末位商恒置1( 误差不超过2^(-n) 省事 )

C语言强制类型转换

无符号数和有符号数:不改变数据内容,改变解释方式。

长整数变短整数:高位截断,保留低位。

短整数变长整数:符号扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值