计算机系统基础

一、冯.诺依曼计算机的五大组成部分
1.运算器:(ALU)进行算数运算、逻辑运算
2.控制器:指挥程序运行, 取出指令来执行
3.存储器:分为主存和辅存,存数据、存指令
4.输入设备
5.输出设备

 冯的计算机主要就是采用“存储程序”的工作方式运行
二、存储器

注:寄存器和存储器的区别以及两者的概念
a. 寄存器是存储器的一种,是集合和子集的关系。
b.寄存器存在于cpu,数量很少, 但是速度很快
c.计算机做运算时, 必须将数据读入寄存器才能运算。

PC:程序计数器
IR:指令寄存器
MAR:存储器地址寄存器
MDR:存储器数据寄存器
GPRs:通用寄存器组(由若干通用寄存器组成,早期就是累加器)

三、指令和数据
1.指令
 
a.指令中需给出的信息:
操作性质(操作码)
存储地址
b.机器指令用二进制,汇编指令用符号
注意: 存储地址的描述与操作数的数据结构有关

四、计算机系统抽象层

1.汇编语言
a.汇编语言程序由汇编指令构成
b.汇编指令是用助记符和标号来表示的指令(与机器指令一一对应)

2.程序执行的条件

a.取决于算法、程序编写 

b.取决去语言处理系统、操作系统、ISA(指令集体系结构)、微体系结构

语言处理系统包括:各种语言处理程序(如编译、汇编、链接)、运行时系统(如库函数,调试、优化等功能)

操作系统:向下管理着硬件资源,向上供应用程序调用并管理、调度应用程序。

指令集体系结构(ISA) :

a.规定了如何使用硬件

b.没有它软件无法使用计算机硬件。

c.ISA是计算机组成的抽象

d.几乎都划分到通用寄存器体系结构中,主要包括

(1)寄存器-存储器ISA,在指令中访问存储器 (2)载入-存储ISA,通过载入或者存储指令来访问寄存器

五、进制与二进制

1.机器级数据分为数值数据和非数值数据

数值数据:无符号整数、带符号整数、浮点数(实数)

非数值数据:逻辑树(包括位串)、西文字符和汉字

2.计算机内部所有信息都用二进制进行编码 原因: a.制造稳态物理器件容易

b.二进制编码、计数、运算规则简单

c.正好与逻辑命题真/假对应,便于逻辑运算

d.可以使用逻辑电路实现算术运算

3.真值和机器数(很重要)

机器数 :用0/1编码计算机内部的0/1序列 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。 那么,这里的 00000011 和 10000011 就是机器数

真值 :真正的值,即:现实中带正负号的数 例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1 先将机器数的0/1符号转换为正负号,然后再带入机器数剩下的值。

通常后缀"B" 表示二进制数,在0/1序列后加B

4.十进制与二进制之间的转换

5.计算机中小数点的表示

计算机只能通过 约定小数点的位置 来表示 a.小数点位置约定在固定位置的数称为定点数 b.小数点位置约定为可浮动的数称为浮点数

定点小数用来表示浮点数的尾数部分 定点整数用来表示整数,分带符号整数和无符号整数。

六、原码和移码的表示

1.原码:正用0表示,负用1表示,其余部分用二进制表示。 符号位加上真值的绝对值 [+1]原 = 0000 0001 [-1]原 = 1000 0001

注意:

a.0的表示不唯一,不利于编程

b.加减运算方式不统一

c.需额外对符号位进行处理,故不利于硬件设计

d,特别当a<b时,实现a-b比较困难

2.反码 正数的反码是其本身

负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

3.补码 正数的补码就是其本身

负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

[+1] = [00000001]原 = [00000001]反 = [00000001]补

[-1] = [10000001]原 = [11111110]反 = [11111111]补

结论1:也可以说负数的补码等于模减该负数的绝对值。 结论2:对于某一确定的模,某数减去小于模的另一数,总可以用该数加上另一数的负数的补码来代替。

七、程序的表示、转换与链接

1.无符号整数(unsigned)和带符号整数 整数类型分为:无符号整数和带符号整数

1.1无符号整数(没有符号位) LSB:最低有效位 MSB:最高有效位 两者不是固定的,是相对的,人为可控的

一般用于地址运算、编号表示等。

无符号数=无符号整数

1.2带符号整数(0为正/1为负)

50年代以来,所有计算机都用补码来表示带符号整数 原因: 加减运算统一 表示唯一,方便使用 比原码多表示一个最小负数

2.c语言程序中的整数

a.常在一个数后面加一个u或者U表示无符号数 b.若同时有无符号和带符号整数,则c编译器将带符号整数强制转换为无符号数。 c.比较时,如果无符号数和带符号整数相比,则 按照无符号数相比 。

3.浮点数的表示范围

a.阶就是指数 b.只要对尾数和指数分别编码,就可表示一个浮点数(即实数) 1.101*2(-10)【二进制】 尾数是1.101 基为2 阶和指数是-10 c.规格化,小数点前,第一位总是1。(不明显表示出来,实际上代表一位的尾数) 三十二位时: 0. 1 1...1*2(11...1)=【1-2(-24)】*2(127)

d.偏置常数,帮助增大浮点数的精度。

e.阶码=偏置常数+阶

指数是阶或称阶码

阶码的值=阶码-127

小数部分是尾数

二进制浮点数的规格化方法: 通过调整小数点的阶码使得该数的有效值在1和2之间,既 二进制浮点数的整数部分为1, 例如:0.8125 = 0.1101(2) = 1.101*2(-1)

4.非数值数据的编码表示

西文字符没有输入码(有内码)

至少需要2个字节才能表示一个汉字内码(由汉字的总数决定!2(16)=65536)

图形、图像、音频、视频等信息在机器内部也用0/1表示

5.数据宽度和存储容量的单位 a.一个字节是8位(字节就是byte)

b.字长:顶点数据通路的宽度

字长等于cpu内部总线的宽度、运算器的位数、通用寄存器的宽度(这些部件的宽度都是一样的)

c.字:表示被处信息的单位,用来度量数据类型的宽度。

6.数据存储时的字节排列

a.变量的存储地址是 最小的地址

b.多字节在存储单元中存放顺序为:大端方式/小端方式

大端方式:MSB所在的地址是数的地址

字节交换问题: 每个系统内部是一致的,但在系统间通讯时可能会发生问题。 因为顺序不同,需要进行顺序转换。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值