计算机系统基础复习指北

一、考试范围

一 单选题(每题2分,共30分)

二~四题(程序填空题、计算题、应用题) (共70分)

二、复习范围

第一章 计算机系统概述

   1.ENIAC,ABC的“世界第一台电子计算机”之争。冯·诺依曼被美军军方负责人戈尔斯坦邀请加入了ENIAC研制组。冯·诺依曼计算机的基本思想(4个方面,最主要是存储程序,程序控制)。

  • 采用“存储程序”工作
  • 计算机由运算器、控制器、存储器、输入输出设备组成
  • 存储器能存放设备也能存放指令。控制器能自动执行指令。运算器能进行算术运算,也能进行逻辑运算。操作人员通过输入输出设备使用计算机
  • 计算机内部用二进制表示指令和数据;每条指令由操作码和地址码组成,由一串指令组成程序

 2.P3中“计算机内部以二进制形式表示指令和数据”,CPU从存储器中取出指令和数据,如何区分?

   从时间来说:取指令事件发生在“取指周期”;取数据事件发生在“执行周期”。

   从空间来说:取出的二进制代码是指令,一定送往指令寄存器(控制器);取出的二进制代码是数据,一定送往数据寄存器(运算器)。

   3.计算机软件分为:系统软件和应用软件,常见例子能区别开。

  •  系统软件:如操作系统、语言翻译系统等
  • 应用软件:解决具体问题

   4.P10的从源程序到可执行目标文件的转换过程:预处理、编译、汇编、链接。

 5.图1.10计算机系统抽象层(层次化结构):高级语言,低级语言(机器语言和汇编语言)。ISA的含义、内容及特性(常见的ISA,例如MIPS,ARM,IA-32),ISA与微体系结构(微架构)的区别(P13)。

 

  •  ISA(Instruction Set Architecture):指令集体系结构
  • ISA内容:对指令系统的一种规范。内容包括:指令集、寄存器结构、存储空间和编址方式、数据存放方式、寻址方式、指令控制等。
  •  ISA特性:定义了一台计算机可以执行的所有指令的集合。

  • ISA与微架构的区别:ISA是软件可以感知到的部分,微体系结构是软件不可感知部分。相同的ISA可以有不同的微体系结构,微体系结构由逻辑电路实现。 

6.应用程序员与系统程序员的区别。(P16,17:开发应用软件与系统软件的区别)

  • 应用程序员使用高级程序设计语言编写程序
  • 系统程序员需要熟悉计算机底层的相关硬件和系统结构

7.CPI、MIPS的含义,学会计算CPI、MIPS,具体见要求会做的例题与习题。

  • CPI(Cycles per instruction):执行一条指令所需要的时钟周期数
  • MIPS(Million Instructions Per Second):平均每秒执行多少百万条指令

习题:第6,7,8,10,11题

 

第二章 数据的机器级表示与处理

  1.给定任意一个真值数(包括整数、小数部分)能够转换成为不同数制(二、八、十六进制)。

  2.机器数的表示方式:原码、补码、反码、移码。要求:给定任意一个数,能求出上述四种表示编码(同时给定任一机器码,能给出真值是多少?),并且熟悉上述四种编码的特点(例如数值零的表示形式是否唯一,补码与移码具备相同的范围);给定指定数值宽度(例如8位或16位)的小数或整数能求出上述四种编码的所表示真实值的范围。

  • 原码:由符号位和数值组成,0的表示不唯一
  • 补码:实现加减法运算的统一,0的表示唯一,比原码和反码多表示一个最小负数
  • 反码:各位取反。0的表示不唯一,表数范围比补码少一个最小负数
  • 移码:用来表示浮点数的阶码。加上一个偏置常数

 

 由真值求补码:正数符号位取0,数值位不变;负数符号位取1,数值位取反加1

由补码求真值:符号位为0是正数,数值位不变;符号位是1是负数,数值位取反加1

最小负数取负会溢出

3.例题2.21 (P43,P44)

  4.机器数分为:定点数与浮点数。 IEEE754单精度浮点数格式,能够给一真实值能求出IEEE格式的浮点数,相反也要会。浮点数尾数如何规格化?尾数如果采用原码(采用补码呢?),规格化尾数必定是±0.1****格式。(P46的表2.2要看明白理解)

 

 

 

 

 

5.P57的大端方式和小端方式,学会按字节编址的存储空间里如何存储数据,图2.6。

6.P63的位扩展及位截断,学会P63的举例。

   习题:第9、10、21、22、23、28、29、34题

第三章程序的转换及机器级表示

1.P87计算机的指令有微指令、机器指令和伪(宏)指令之分。

微指令属于硬件范畴,微程序命令;伪指令是若干机器指令组织的指令序列,属于软件范畴;

机器指令介于二者之间,处于硬件和软件的交界面。一般指令是指机器指令,汇编指令是机器指令的汇编语言表示形式。机器指令与汇编指令一一对应,都与具体机器结构有关,都属于机器级指令。

2.熟悉P99的图3.4的IA-32各类寻址方式。

立即数、寄存器、位移、基址、基址加位移、比例变址加位移、基址加变址加位移、基址加比例变址加位移、相对寻址

3.熟悉常见的IA-32汇编指令 (P103-P114),同时熟悉x86-64指令的指令后缀q及过程调用参数传递的6个通用寄存器。

例如(不限于以下举例指令):movs movz(具体应用见P105的表3.4), pushl popl, LEA。表3.5(P107)的各类算术运算指令对标志位的影响(例如addw)。比较指令cmp与根据大小进行转移指令的搭配,逻辑运算指令,移位指令(例如SAL, SAR熟练使用)。LEA指令的使用(与mov的区别,LEA有时被用来做加法)。P111的表3.6条件转移指令。

调用者保存寄存器:EAX、ECX、EDX

被调用者保存寄存器:EBX、ESI、EDI

4.P调用Q,此过程中的操作和顺序,及ESP,EBP的变化。

  • P将入口参数放到Q能访问到的地方
  • P将返回地址存在特定的地方,将控制转移到Q
  • Q保存P的现场,并为自己的非静态局部变量分配空间
  • 执行Q的过程体(函数体)
  • Q恢复P的现场,并释放局部变量所占空间
  • Q取出返回地址,将控制转移到P

5.选择语句、循环结构等机器级表示,复杂数据类型的分配和访问,

根据汇编语句能补充C程序语句,根据C程序能看懂汇编语句。相关例题及习题。

习题:第3、4、5、10、11、13、14、17、18、19、20、21、22、23题

posted @ 2021-01-05 16:17  inss!w!  阅读(990)  评论(0编辑  收藏  举报