上午题01-计算机系统
0 前言
我的学习来自b站up主:zst_2001 ,讲的特别好👍
1 运算器和控制器
1.1 运算器知识
1.算术逻辑单元(ALU):运算器重要组成部件,负责处理数据,实现对数据的算数运算和逻辑运算。逻辑运算:
异或:不同为1,相同为0。反之同或。
2.累加寄存器(AC):简称累加器,为ALU提供数据并暂存运算结果。
3.数据缓冲寄存器(DR):作为CPU和内存、外部设备之间数据传送的中转站。
4.状态条件寄存器(PSW):保存由算数指令和逻辑指令运行或测试的结果建立的各种条件码内容。
5.通用寄存器:cpu对其访问速度最快。
1.2 控制器知识
指令 = 操作码 + 地址码
例如:1 + 2 中 1 和 2 为地址码; + 为操作码。
VLIW(Very Long Instruction Word)是超长指令字的缩写。
CPU根据指令周期的不同阶段来区分在内存中以二进制编码形式存放的指令和数据。
1.指令寄存器(IR):保存当前CPU执行的指令。指令译码器(DR)根据指令寄存器(IR)的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。
对用户完全透明,访问不到。位数取决于指令字长。
2.程序计数器(PC):初始时保存的内容是程序第一条指令的地址,执行指令时,CPU自动修改PC的内容对PC加1,使其保持的总是将要执行的下一条指令的地址。程序员可以访问。
3.地址寄存器(AR):保存当前CPU所访问的内存单元的地址。
4.指令译码器(ID):对指令中的操作码字段进行分析解释,识别该指令规定的操作,向控制器发出信号,控制各部件工作,完成所需的功能。
2 计算机基本单位
计算机单位
位 bit b
字节 byte B 1B = 8bit
千字节 KB 1KB = 1024B
兆字节 MB 1MB = 1024KB
吉字节 GB 1GB = 1024MB
太字节 TB 1TB = 1024GB
内存按字节编址计算题做题思路:大 减 小 再加 1
十六进制 转 十进制 再根据题意转换单位进行计算
3 原码、反码和补码
3.1 知识点
数值在计算机中的表示为机器数,特点是采用二进制来表示。
对于n位的机器数其表示编码有原码、反码、补码、移码等表示。
以下均假设n=8
原码:最高位为符号位,0表示正号,1表示负号,其余的n-1位表示数值的绝对值。
反码:最高位为符号位,0表示正号,1表示负号,其余的n-1位表示数值的绝对值。其中正数的反码与原码相同,负数的反码则是除符号位以外其余各位按位取反。
补码:最高位为符号位,0表示正号,1表示负号,其余的n-1位表示数值的绝对值。其中正数的补码与原码和反码相同,负数的补码则是在其反码的基础上再加1。 补码的正负0编码相同,同时对补码再求一次补码等于其原码。
移码:正数和负数的移码实在其补码的基础上对符号位取反。 移码的正负0编码相同。
3.2 原、反、补、移码表示范围
假设机器数n=8
码制 | 定点整数 |
---|---|
原码 | -127~+127 |
反码 | -127~+127 |
补码 | -128~+127 |
移码 | -128~+127 |
4 浮点数
浮点数表示形式: F ∗ 2 E F*{2}^{E} F∗2E
阶码