计组期中考点
复习以PPT+平时作业为主
应用题:4选2
①最终总成绩100%=期末50%+其他成绩50%。
②其中其他成绩100%=期中30%+(作业+实验)50%+考勤20%。
第一章 计算机系统概述
导入:现实与计算机中的运算结果有差异
理解程序的执行结果要从系统层面考虑
高级语言语句都要转换为机器指令才能在计算机上执行
计算机系统是模运算系统,字长有限,高位被丢弃
运算器不知道参加运算的是带符号数还是无符号数
访问内存需要几十到几百个时钟,访问磁盘需要几百万个时钟
进程具有独立的逻辑控制流和独立的地址空间
过程调用使用栈存放参数和局部变量,递归过程有大量额外指令,增加时间开销,并可能发生栈溢出
计算机系统抽象层次:ISA(指令集体系结构)
程序执行结果不仅取决于算法、程序编写,而且取决于语言处理系统、操作系统、ISA、微体系结构
冯诺依曼结构
第一台冯诺依曼机-IAS计算机
采用“存储程序”工作方式
运算器、控制器、存储器、输入设备和输出设备五个基本部件组成
存储器存放数据和指令
控制器取出指令执行
运算器进行加减乘除基本运算,也可以进行一些逻辑运算和附加运算
输入设备、输出设备与主机通信
内部以二进制表示指令和数据,每条指令由操作码和地址码两部分组成。操作码指出操作类型,地址码指出操作地址,由一串指令组成程序。
早期计算机以运算器为中心,效率低下
现在的计算机以存储器为中心
计算机是如何工作的,及各种缩写
- CU:控制器
- ALU:算术逻辑部件
- CPU:中央处理器
- GPRs:通用寄存器组
- MDR:存储数据寄存器
- PC:程序计数器
- MAR:存储器地址寄存器
- IR:指令寄存器
8位模型机M:8位定长指令字,4个GPR,16个主存单元
各编程语言:机器指令、汇编指令、机器级指令
机器语言
使用特定计算机规定的指令格式而形成的0/1序列,用机器语言编写程序,并记录在纸带或卡片上,穿孔表示0,未穿孔表示1.
汇编语言
机器语言的符号表示语言,与机器指令一一对应。汇编语言和机器语言都是低级语言、面向机器结构的语言,统称为机器级语言。
高级程序设计语言/高级编程语言
面向算法设计、与具体机器结构无关、可读性比机器语言好、描述能力更强、高级语言中一条语句对应几条、几十条指令。
三类翻译程序
汇编程序:汇编语言源程序→机器语言目标程序
编译程序:高级语言源程序→机器级目标程序
解释程序:将高级语言语句逐条翻译成机器指令并立即执行,不生成目标文件
计算机系统性能评价(应用):时钟周期、主频、CPI、用户CPU时间
两种不同的性能
- 度量单位时间内所完成的工作量(多媒体应用)
- 吞吐率(throughput)
- 带宽(bandwidth)
- 度量完成一项工作所用时间(银行、证券等事务处理)
- 响应时间
- 执行时间
- 等待时间或时延
性能的测量
从执行时间来考虑,完成同样工作量所需时间最短的计算机性能最好,采用用户CPU时间来衡量计算机性能好坏。
概念和指标
时间计算
性能评估
第二章 数据的机器级表示与处理
第一讲
为什么采用二进制编码?
- 制造两个稳定状态的物理器件容易
- 二进制编码、计数、运算规则简单
- 与逻辑命题对应,便于逻辑运算,方便使用逻辑电路实现算术运算
进制转换
二进制数:B(Binary)
八进制数:O(Octal)
十进制数:D(Decimal)
十六进制数:H(Hexadecimal)或0x+数字
定点数与浮点数
定点表示
浮点表示
数值数据的编码表示:原-反-补-移-8421
真值补码互求(综合考)
特殊数的补码
字长为8位时
- 原码范围-127~127
- 反码范围-127~127
- 补码范围-128~127
-128没有原码和反码,只有补码(1000 0000)
0的补码是唯一的
无符号整数和带符号整数之间的转换
2^31=2147483648,机器数为:100 ┅ 0(31个0)
8位无符号整数最大是255(1111 1111)
8位带符号整数最大是127(0111 1111)
浮点数机器数与真值互求(应用)
32位单精度浮点数表示
64位双精度浮点数表示
会判断数据类型强制转换后是否永真
第二讲
单位:B、bit、字、字长
- 比特(bit,位)是计算机中处理、存储、传输信息的最小单位
- 字节(Byte)是二进制信息的计量单位,也称“位组”,1B=8b
- 现代计算机中,存储器按字节编址
- 字节是最小可寻址单位
- 除比特和字节外,还是用“字”(word)作为单位
- 字长:CPU内部用于整数运算的数据通路的宽度,反映了一种计算及处理信息得能力
- “字”表示被处理信息的单位,1个字=16bit
- 经常使用的容量度量单位:
- 通信中的带宽使用单位:
大端/小端
边界对齐
- 目前计算机所用数据字长一般为32位或64位,而存储器地址按字节编址
- 指令系统支持对字节、半字、字及双字的运算,也有位处理指令
- 各种不同长度的数据存放时,有两种处理方式:
- 按边界对齐(假定字的宽度为32位,按字节编址)
- 字地址:4的倍数
- 半字地址:2的倍数
- 字节地址:任意
- 不按边界对齐
- 坏处:可能会增加访存次数
- 按边界对齐(假定字的宽度为32位,按字节编址)
第三讲
按位运算
逻辑运算
移位运算:逻辑移位、算术移位
逻辑移位
补码的算术移位
定点加减法并判断溢出(应用)
运算溢出是指运算结果超出了数的表示范围
常用的判断溢出的方法有以下两种:
采用变形补码判断溢出
利用符号位进位信号判断溢出
(浮点数加减运算不考)
标志位有哪些,如何判断
第三章 程序的转换及机器级表示
指令概念
- 有微指令、机器指令、汇编指令、伪(宏)指令等
- 微指令时微程序级命令,属于硬件范畴,相当于洗、切、煮、炒菜做菜“微过程”
- 机器指令处于硬件和软件的交界面
- 汇编指令时机器指令的汇编表示形式,即符号表示
- 机器指令是一个0/1序列,由若干字段组成和汇编指令一一对应,他们都与具体机器结构有关,都属于机器级指令
- 伪指令是由若干汇编指令组成的序列,属于软件范畴,相当于由多个菜谱合成一个“大菜”的过程
机器指令及汇编指令
ISA 常用数据类型及其位数和后缀
- ISA规定了:
- 可执行的指令的集合,包括指令格式、操作种类以及每种操作对应的操作数的相应规定
- 指令可以接受的操作数的类型
- 操作数所能存放的寄存器组的结构,包括每个寄存器的名称、编号、长度和用途
- 操作数所能存放的存储空间的大小和编址方式
- 操作数所在存储空间存放时按照大端还是小端方式存放
- 指令获取操作数的方式,即寻址方式
- 指令执行过程的控制方式,包括程序计数器、条件码定义等
IA-32支持的数据类型及格式
IA-32体系结构
寻址方式(结合指令考)(综合考)
8086/8088的寄存器组织
IA-32的寻址方式
- 寻址方式
- 根据指令给定信息得到操作数或操作数地址
- 操作数所在的位置
- 指令中:立即寻址
- 寄存器中:寄存器寻址
- 存储单元中(属于存储器操作数,按字节编址):其它寻址方式
保护模式下的寻址方式
常用寻址方式
IA-32常用指令及操作
传送指令
b:字节
w:字
l:双字
- 通用数据传送指令
- MOV:一般传送,包括movb、movw和movl等
- MOVS:符号扩展传送,如movsbw、movswl等
- MOVZ:零扩展传送,如movzwl、movzbl等
- PUSH/POP:入栈/出栈,如pushl、pushw、popl、popw等
- 地址传送指令
- LEA:加载有效地址,如”leal(%dex,%eax),%eax”的功能为R[eax]←R[edx]+[eax],执行前,若R[edx]=i,R[eax]=j,则执行指令后,R[eax]=i+j
- 输入输出指令(了解)
- IN和OUT:I/O端与寄存器之间的交换
- 标志传送指令(了解)
- PUSHF、POPF:将EFLAG压栈,或将栈顶内容送EFLAG