资源描述
第1章 微型计算机系统
① 处理器每个单位时间可以处理的二进制数据位数称计算机字长。
② 总线信号分成三组,分别是数据总线、地址总线和控制总线。
③ 机主存采用组成。
④ 高速缓冲存储器是处理器与主存之间速度很快但容量较小的存储器。
⑤ 是“基本输入输出系统”,操作系统通过对的调用驱动各硬件设备,用户也可以在应用程序中调用中的许多功能。
⑥ 中断是正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。
⑦ 主板芯片组是主板的核心部件,它提供主板上的关键逻辑电路。
⑧ 是微软开发的宏汇编程序。
⑨ 指令的处理过程。处理器的“取指—译码—执行周期” 是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
⑩ 机器语言层,即指令集结构。
(学生很多认为是:汇编语言层。前4章主要涉及汇编语言,但本书还有很多处理器原理等内容)
〔习题1.3〕填空题
① ,中央处理单元,处理器
② 1,4
③ 216,64
④ ,
⑤
⑥ 目录
⑦ ,3
⑧ 64
⑨ ,
⑩
〔习题1.4〕说明微型计算机系统的硬件组成及各部分作用。
〔解答〕
:也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入()设备和输出()设备,也称设备。设备通过接口与主机连接。
总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。
〔习题1.5〕什么是通用微处理器、单片机(微控制器)、芯片、嵌入式系统?
〔解答〕
通用微处理器:适合较广的应用领域的微处理器,例如装在机、笔记本电脑、工作站、服务器上的微处理器。
单片机:是指通常用于控制领域的微处理器芯片,其内部除外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。
芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。
嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统。
〔习题1.7〕区别如下概念:助记符、汇编语言、汇编语言程序和汇编程序。
〔解答〕
助记符:人们采用便于记忆、并能描述指令功能的符号来表示机器指令操作码,该符号称为指令助记符。
汇编语言:用助记符表示的指令以及使用它们编写程序的规则就形成汇编语言。
汇编语言程序:用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序。
汇编程序:汇编语言源程序要翻译成机器语言程序才可以由处理器执行。这个翻译的过程称为“汇编”,完成汇编工作的程序就是汇编程序()。
〔习题1.8〕区别如下概念:路径、绝对路径、相对路径、当前目录。系统磁盘上存在某个可执行文件,但在环境输入其文件名却提示没有这个文件,是什么原因?
〔解答〕
路径:操作系统以目录形式管理磁盘上的文件,文件所在的分区和目录就是该文件的路径。
绝对路径:从根目录到文件所在目录的完整路径称为“绝对路径”。是保证文件唯一性的标示方法。
相对路径:从系统当前目录到文件所在目录的路径称为相对路径。
当前目录:用户当前所在的目录就是当前目录。
指明的路径不正确,或者执行了另外一个同名的文件。
〔习题1.10〕冯·诺依曼计算机的基本设计思想是什么?
〔解答〕
采用二进制形式表示数据和指令。指令由操作码和地址码组成。
将程序和数据存放在存储器中,计算机在工作时从存储器取出指令加以执行,自动完成计算任务。这就是“存储程序”和“程序控制”(简称存储程序控制)的概念。
指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现。
计算机由存储器、运算器、控制器、输入设备和输出设备五大基本部件组成,并规定了5部分的基本功能。
〔习题1.11〕计算机系统通常划分为哪几个层次?普通计算机用户和软件开发人员对计算机系统的认识一样吗?
〔解答〕
最上层是用户层。
第5层是高级语言层。
第4层是汇编语言层。
第3层是操作系统层。
第2层是机器语言层。
第1层是控制层。
第0层是数字电路层。
普通计算机用户和软件人员对计算机系统的认识并不一样。普通计算机用户看到的计算机,也就是我们最熟悉的计算机,属于用户层,而软件人员看到的属于高级语言层或是汇编语言层。
第2章 处理器结构
〔习题2.1〕简答题
〔解答〕
① 是算术逻辑运算单元,负责处理器所能进行的各种运算,主要是算术运算和逻辑运算。
② 取指是指从主存取出指令代码通过总线传输到处理器内部指令寄存器的过程。8086分成总线接口单元和指令执行单元,可以独立操作。在执行单元执行一条指令的同时,总线接口单元可以读取下一条指令,等到执行时不需要进行取指了,所以称为预取。
③ 采用分离的结构,一个用做指令,一个用做数据。
④ 堆栈的存取原则是先进后出(也称为后进先出)操作方式存取数据。
⑤ 标志寄存器主要保存反映指令执行结果和控制指令执行形式的有关状态。
⑥ 执行了一条加法指令后,发现=1,表明运算结果为0。
⑦ 没有。
⑧ 汇编语言的标识符大小写不敏感,即表示字母大小写不同、但表示同一个符号。
⑨ 不会。
⑩ 指令的操作数需要通过存储器地址或地址,才能查找到数据本身,故称数据寻址方式。
〔习题2.3〕填空题
① 32,,
② 16
③ 段地址,偏移地址,,
④ 00100110,0
⑤ 73C00H,73800H
⑥ ,,,,,
⑦ 实地址,64
⑧ ,目标模块,
⑨ 立即数寻址、寄存器寻址和存储器寻址
⑩ ,
〔习题2.4〕处理器内部具有哪3个基本部分?8086分为哪两大功能部件?其各自的主要功能是什么?
〔解答〕
处理器内部有、寄存器和指令处理三个基本单元。
8086有两大功能部件:总线接口单元和执行单元。
总线接口单元:管理着8086与系统总线的接口,负责处理器对存储器和外设进行访问。8086所有对外操作必须通过和这些总线进行。
执行单元:负责指令译码、数据运算和指令执行。
〔习题2.6〕
什么是标志?什么是32处理器的状态标志、控制标志和系统标志?说明状态标志在标志寄存器的位置和含义。
〔解答〕
标志:用于反映指令执行结果或控制指令执行形式的一个或多个二进制数位。例如,有些指令执行后会影响有关标志位;有些指令的执行要利用相关标志。
状态标志:用来记录程序运行结果的状态信息。
控制标志:标志,控制字符串操作的地址方向。
系统标志:用于控制处理器执行指令的方式。
状态标志在标志寄存器中的位置和含义如下:
31
11
10
9
8
7
6
5
4
3
2
1
0
……
〔习题2.8〕什么是8086中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?请将如下逻辑地址用物理地址表达(均为十六进制形式):
① ∶0 ② 40∶17 ③ 2000∶4500 ④ B821∶4567
〔解答〕
物理地址:在处理器地址总线上输出的地址称为物理地址。每个存储单元有一个唯一的物理地址。
逻辑地址:在处理器内部、程序员编程时采用逻辑地址,采用“段地址:偏移地址“形式。某个存储单元可以有多个逻辑地址,即处于不同起点的逻辑段中,但其物理地址是唯一的。
逻辑地址转换成物理地址:逻辑地址由处理器在输出之前转换为物理地址。将逻辑地址中的段地址左移二进制4位(对应16进制是一位,即乘以16),加上偏移地址就得到20位物理地址。
① :0=0H
② 40H:17H=00417H
③ 2000H:4500H=24500H
④ B821H:4567H=777H
〔习题2.9〕32处理器有哪三类基本段,各是什么用途?
〔解答〕
32处理器有代码段、数据段、堆栈段三类基本段。
代码段:存放程序的指令代码。程序的指令代码必须安排在代码段,否则将无法正常执行。
数据段:存放当前运行程序所用的数据。程序中的数据默认是存放在数据段,也可以存放在其他逻辑段中。
堆栈段:主存中堆栈所在的区域。程序使用的堆栈一定在堆栈段。
〔习题2.11〕什么是实地址方式、保护方式和虚拟8086方式?它们分别使用什么存储模型?
〔解答〕
实地址方式:与8086具有相同的基本结构,只能寻址1物理存储器空间,逻辑段最大不超过64;但可以使用32位寄存器、32位操作数和32位寻址方式;相当于可以进行32位处理的快速8086。实地址工作方式只能支持实地址存储模型。
保护方式:具有强大的段页式存储管理和特权与保护能力,使用全部32条地址总线,可寻址4物理存储器。保护方式通过描述符实现分段存储管理,每个逻辑段可达4。处理器工作在保护方式时,可以使用平展或段式存储模型。
虚拟8086方式:在保护方式下运行的类似实方式的运行环境,只能在1存储空间下使用“16位段”。 处理器工作在虚拟8086方式时,只能使用实地址存储模型。
〔习题2.12〕汇编语句有哪两种,每个语句由哪4个部分组成?
〔解答〕
汇编语句有两种:执行性语句(处理器指令)、说明性语句(伪指令)。
每个语句有:标号、指令助记符、操作数或参数、注释4个部分组成。
〔习题2.16〕说明下列指令中源操作数的寻址方式?假设是一个双字变量。
(1) ,1234h
(2)
(3)
(4) ,[]
(5) ,[1234h]
(6) []
(7) ,[]
(8) ,[1234h]
(9) []
(10) ,[*4]
〔解答〕
① 立即数
② 直接
③ 寄存器
④ 寄存器间接
⑤ 寄存器相对
⑥ 寄存器相对
⑦ 基址变址
⑧ 相对基址变址
⑨ 相对基址变址
⑩ 带比例寻址
第3章 数据处理
〔习题3.1〕简答题
(1)使用二进制8位表达无符号整数,257有对应的编码吗?
(2)字符“'F'”和数值46H作为指令的源操作数有区别吗?
(3)为什么可以把指令“ , (34+67H)*3”中的数值表达式看成是常量?
(4)数值500,能够作为字节变量的初值吗?
(5)为什么说“ ”是一条错误的指令?
(6)都是获取偏移地址,为什么指令“ , []”正确,而指令“ , []”就错误?
(7),,和都是单操作数指令,这个操作数应该是源操作数还是目的操作数?
(8)大小写字母转换使用了什么规律?
(9)乘除法运算针对无符号数和有符号数,有两种不同的指令。只有一种指令的加减法如何区别无符号数和有符号数运算?
(10)逻辑与运算为什么也称为逻辑乘?
〔解答〕
① 没有。使用二进制8位表达无符号整数,257没有对应的编码。
② 字符“'F'”的码就是数值46H,所以没有区别。
③ 汇编程序在汇编过程中对数值表达式计算,得到一个确定的数值,故称数值表达式为常量。
④ 不能。数值500大于一个字节所能表达的数据量,所以不能为字节变量赋值。
⑤ 源、目标寄存器位数不同,不能用该指令进行数据交换。
⑥ 前者在指令执行时获得偏移地址,是正确的;但后者的只能在汇编阶段获得偏移地址,但此时寄存器内容是不可知的,所以无法获得偏移地址。
⑦ ,,和指令的操作数既是源操作数也是目的操作数。
⑧ 大小写字母转换利用它们的码相差20H。
⑨ 加减法不区别无符号数和有符号数,但根据运算结果分别设置标志寄存器的和标志,可利用和进行区别。
⑩ 逻辑与运算规则类似二进制的乘法,所以称其为逻辑乘。
〔习题3.3〕填空题
(1)定义字节变量的伪指令助记符是,获取变量名所具有的偏移地址的操作符是。
(2)计算机中有一个“01100001”编码。如果把它认为是无符号数,它是10进制数;如果认为它是码,则表示真值;又如果它是某个码,则代表字符。
(3)C语言用“\n”表示让光标回到下一行首位,在汇编语言中需要输出两个控制字符:一个是回车,其码是,它将光标移动到当前所在行的首位;另一个是换行,其码是,它将光标移到下一行。
(4)数据段有语句“H8843 99008843H”,代码段指令“ , H8843”执行后,=。
(5)用定义的一个变量,它的类型是,用“ ”会得到数值为。如果将其以字量使用,应该用说明。
(6)数据段有语句“ 1,2,3”,代码段指令“ , 2”执行后,=。
(7)例题3-9的定义如果是“1234567890”,则显示结果是。
(8)指令“ , ”和“ , ”执行后,=,==。而指令“ , 0”执行后,=,和没有变化。
(9)例题3-15程序执行结束,变量内容是;内容是。
(10)欲将内的无符号数除以16,使用指令“ , ”,其中后一个操作数是一个立即数。
〔解答〕
① ,
② 97,61,小写字母a
③ 0(13),0(10)
④ 8843H
⑤ ,4,
⑥ 3
⑦ 78894111
⑧ 0,0,0
⑨ 65432H,83H
⑩ 4
〔习题3.4〕
下列十六进制数表示无符号整数,请转换为十进制形式的真值:
① ② 0H ③ 5 ④
〔解答〕
① 255
② 0
③ 94
④ 239
〔习题3.7〕
将下列十进制数用8位二进制补码表示:
① 0 ② 127 ③-127 ④ -57
〔解答〕
① 00000000
② 01111111
③ 10000001
④ 11000111
〔习题3.8〕
进行十六进制数据的加减运算,并说明是否有进位或借位:
① 1234H+7802H
② F034H+50H
③ C051H-1234H
④ 9876H-
〔解答〕
① 1234H+7802H=8A36H,无进位
② F034H+50H=44H,有进位
③ C051H-1234H=1,无借位
④ 9876H-=9H,有借位
〔习题3.9〕
数码0~9、大写字母A~Z、小写字母a~z对应的码分别是多少?码0和0分别对应什么字符?
〔解答〕
数码0~9对应的码依次是30H~39H。
大写字母A~Z对应的码依次是:41H~5。
小写字母a~z对应的码依次是:61~7。
码0和0分别对应的是回车和换行字符。
〔习题3.10〕
设置一个数据段,按照如下要求定义变量或符号常量:
① 1b为字符串变量:
② 2b为用十进制数表示的字节变量:20
③ 3b为用十六进制数表示的字节变量:20
④ 4b为用二进制数表示的字节变量:20
⑤ 5w为20个未赋值的字变量
⑥ 6c为100的常量
⑦ 7c表示字符串:
〔解答〕
1b ' '
2b 20
3b 14h
4b 00010100b
5w 20 (?)
6c = 100
7c < >
〔习题3.16〕
使用若干指令实现交互指令“ ,[]”功能。
〔解答〕
; 可以没有
,[]
[]
; 可以没有
〔习题3.17〕
假设当前=00120H,说明下面每条指令后,等于多少?
0f79h
[]
〔解答〕
=0012
=0012
=00126H
=0012
=0012
=00120H
〔习题3.19〕请分别用一条汇编语言指令完成如下功能:
(1)把寄存器和寄存器的内容相加,结果存入寄存器。
(2)用寄存器和的基址变址寻址方式把存储器的一个字节与寄存器的内容相加,并把结果送到中。
(3)用和位移量0B2H的寄存器相对寻址方式把存储器中的一个双字和寄存器的内容相加,并把结果送回存储器中。
(4)将32位变量与数3412H相加,并把结果送回该存储单元中。
(5)把数0A0H与寄存器的内容相加,并把结果送回中。
〔解答〕
①
② ,[]
③ [0b2h]
④ ,3412h
⑤ ,0a0h
〔习题3.21〕
给出下列各条指令执行后值,以及、、、和的状态:
,89h
,9
,0
〔解答〕
,89h ; =89H
; =12H 1 0 0 1 1
,9 ; =0 0 0 1 0 1
,0 ; =0 1 0 1 0 1
; =00H 0 1 0 0 1
; =0 0 0 1 0 1
; =00H 0 1 0 0 1
〔习题3.28〕编程将一个压缩码变量(例如92H)转换为对应的码,然后调用子程序(在输入输出子程序库中)显示。
〔解答〕
; 数据段
92h
; 代码段
,4
,30h
,0
,30h
第4章 汇编语言程序设计
〔习题4.1〕简答题
(1)是什么特点决定了目标地址的相对寻址方式应用最多?
(2)什么是奇偶校验?
(3)为什么判断无符号数大小和有符号大小的条件转移指令不同?
(4)双分支结构中两个分支体之间的指令有什么作用?
(5)为什么特别强调为子程序加上必要的注释?
(6)子程序采用堆栈传递参数,为什么要特别注意堆栈平衡问题?
(7)参数传递的“传值”和“传址”有什么区别?
(8)语句和有什么区别?
(9)混合编程有什么优势?
(10)运行程序,有时为什么会提示某个文件不存在?
〔解答〕
① 当同一个程序被操作系统安排到不同的存储区域执行时,指令间的位移没有改变,目标地址采用相对寻址可方便操作系统的灵活调度。
② 数据通信时,数据的某一位用做传输数据的奇偶校验位,数据中包括校验位在内的“1”的个数恒为奇数,就是奇校验;恒为偶数,就是偶校验。
③ 无符号数和有符号数的操作影响两组不同的标志状态位,故判断两个无符号数和有符号数的大小关系要利用不同的标志位组合,所以有对应的两组指令。
④ 双分支结构中两个分支体之间的指令,用于实现结束前一个分支回到共同的出口作用。
⑤ 完整的子程序注释可方便程序员调用该子程序,子程序注释包括子程序名、子程序功能、入口参数和出口参数、调用注意事项和其他说明等。
⑥ 子程序保持堆栈平衡,才能保证执行指令时当前栈顶的内容是正确的返回地址。主程序也要保持堆栈平衡,这样才能释放传递参数占用的堆栈空间,否则多次调用该子程序可能就致使堆栈溢出。
⑦ “传值”是传递参数的一个拷贝,被调用程序改变这个参数不影响调用程序;“传址”时,被调用程序可能修改通过地址引用的变量内容。
⑧ 语句包含的是文本文件、是源程序文件的一部分;语句包含的是子程序库文件。
⑨ 取长补短。
⑩ 程序在运行时需要加载其配套的动态链接库文件,当其没有被搜索到时就会提示不存在。
〔习题4.3〕填空题
(1)指令根据目标地址的转移范围和寻址方式,可以分成四种类型:段内转移、,段内转移、和段间转移、,段间转移、。
(2)假设在平展存储模型下,=1256H,双字变量的偏移地址是20A1H,线性地址32F7H处存放3280H,执行指令“ ” 后=,执行指令“ []”后=。
(3)“ ,3721H”指令之后是指令,发生转移的条件是=,此时=。
(4)小写字母“e”是英文当中出现频率最高的字母。如果某个英文文档利用例题4-11的异或方法进行简单加密,统计发现密文中字节数据“8”最多,你判断该程序采用的字节密码可能是。
(5)循环结构程序一般有三个部分组成,它们是,循环体和部分。
(6)例题4-14程序中的指令,如果用 指令和 指令替换,此时内容是。
(7)过程定义开始是“ ”语句,则过程定义结束的语句是。宏定义开始是“ ”语句,则宏定义结束的语句是。
(8)利用堆栈传递子程序参数的方法是固定的,例如寻址堆栈段数据的寄存器是。
(9)汇编语言中,声明一个共用的变量应使用伪指令;而使用外部变量要使用伪指令声明。
(10)调用函数时,用户在键盘上按下数字8,然后回车,则键盘缓冲区的内容依次是。
〔解答〕
① 相对寻址,间接寻址,直接寻址,间接寻址
② 1256H,3280H
③ 3721H,1
④
⑤ 循环初始,循环控制
⑥ 1标号的地址
⑦ ,
⑧
⑨ ,
⑩ 38H 0 0
〔习题4.6〕
执行如下程序片断后,指令分别使得5个状态标志、、、和为0还是为1?它会使得哪些条件转移指令指令的条件成立、发生转移?
,20h
,80h
〔解答〕
=1 =0 =1 =0 =1
可以使得条件成立、发生转移的指令有:
〔习题4.9〕
指令将符号扩展到,即:最高为0,则=0;最高为1,则=。请编程实现该指令功能。
〔解答1〕
,8000h ; 测试最高位
1 ; 最高位为0(=1),转移到标号1
,0 ; 最高位为1,顺序执行:设置=
; 无条件转移,跳过另一个分支
1: ,0 ; 最高位为0转移到此执行:设置=0
:
〔解答2〕
使用移位指令更好。
,1
,1
,31
,1
〔习题4.11〕编写一个程序,先提示输入数字“ :0~9”,然后在下一行显示输入的数字,结束;如果不是键入了0~9数字,就提示错误“!”,继续等待输入数字。
〔解答〕
; 数据段
' (0~9): ',0
0,0,'! : ',0
; 代码段
; 提示输入数字
: ; 等待按键
,'0' ; 数字 < 0?
,'9' ; 数字 > 9?
:
:
〔习题4.12〕有一个首地址为的20个双字的数组,说明下列程序段的功能。
,20
,0
: []
,4
〔解答〕
求这20个双字的和,保存在变量,不关进心进位和溢出。
〔习题4.22〕编写一个子程序,它以二进制形式显示中32位数据,并设计一个主程序验证。
〔解答〕
; 代码段,主程序
,8F9800H
; 调用子程序
; 代码段,子程序
; 32位二进制数的输出
,32 ; 要输出的字符个数
: ,1 ; 循环左移一位
,01h ; 取最低位
,30h ; 转化成相应的码值
; 以二进制的形式显示
〔习题4.26〕
编制3个子程序把一个32位二进制数用8位十六进制形式在屏幕上显示出来,分别运用如下3种参数传递方法,并配合3个主程序验证它。
(1)采用寄存器传递这个32位二进制数
(2)采用变量传递这个32位二进制数
(3)采用堆栈方法传递这个32位二进制数
〔解答〕
(1)
; 数据段
307281
; 代码段,主程序
,'H'
; 代码段,子程序
,8 ; 8位
1: ,4
,0 ; 转换为码
,30h
,'9'
2
,7
2:
1
(2)
; 数据段
307281
?
; 代码段,主程序
,'H'
; 代码段,子程序
,8 ; 8位
1: ,4
,0 ; 转换为码
,30h
,'9'
2
,7
2: ; 显示一个字符
1
(3)
; 数据段
307281
; 代码段,主程序
,4
,'H'
; 代码段,子程序
,8 ; 8位
,[8]
1: ,4
,0 ; 转换为码
,30h
,'9'
2
,7
2:
1
〔习题4. 31〕
区别如下概念:宏定义、宏调用、宏指令、宏展开、宏汇编。
〔解答〕
宏定义:就是对宏进行说明,由一对宏汇编伪指令和来完成。
宏调用:宏定义之后的使用。在使用宏指令的位置写下宏名,后跟实体参数。
宏指令:使用宏时,其形式很像指令,所以称为宏指令。
宏展开:在汇编时,汇编程序用对应的代码序列替代宏指令。
宏汇编:指使用宏的方法进行汇编语言程序设计。
第5章 微机总线
〔习题5.1〕简答题
(1)为什么称处理器的数据总线是双向的?
(2)8086的地址和数据总线为什么要分时复用?
(3)具有三态能力的引脚输出高阻意味着什么?
(4)总线周期中的等待状态是个什么工作状态?
(5)猝发传送是一种什么传送?
(6)总线数据传输为什么要进行总线仲裁?
(7)异步时序为什么可以没有总线时钟信号?
(8)32位机为什么采用多级总线结构,而不是单总线结构?
(9)总线有几个导线组成?
(10)什么是微软宣称的即插即用()技术?
〔解答〕
① 数据总线承担着处理器与存储器、外设之间的数据交换,既可以输入也可以输出,故其是双向的。
② 为减少引脚个数,8086采用了地址总线和数据总线分时复用。即数据总线在不同时刻还具有地址总线的功能。
③ 具有三态能力的引脚当输出呈现高阻状态时,相当于连接了一个阻抗很高的外部器件,信号无法正常输出;即放弃对该引脚的控制,与其他部件断开连接。
④ 处理器的运行速度远远快于存储器和端口。处理器检测到存储器或端口不能按基本的总线周期进行数据交换时,插入一个等待状态。等待状态实际上是一个保持总线信号状态不变的时钟周期。
⑤ 猝发传送是处理器只提供首地址、但可以从后续连续的存储单元中读写多个数据。
⑥ 总线上可能连接多个需要控制总线的主设备,需要确定当前需要控制总线的主设备,所以需要总线仲裁。
⑦ 异步时序是由总线握手()联络(应答)信号控制,不是由总线时钟控制。故总线时钟信号可有可无。
⑧ 单总线结构限制了许多需要高速传输速度的部件。32位机采用多种总线并存的系统结构。各种专用局部总线源于处理器芯片总线,以接近处理器芯片引脚的速度传输数据,它为高速外设提供速度快、性能高的共用通道。
⑨ 4个。
⑩ 即插即用技术是指32位机的主板、操作系统和总线设备配合,实现自动配置功能。
〔习题5.3〕填空题
(1)某个处理器具有16个地址总线,通常可以用表达最低位地址信号,用A15表达最高地址信号。
(2)8086有3个最基本的读写控制信号,它们是,和。
(3)8086预取指令时,在其引脚上将产生总线操作;执行指令“ , []”时,在其引脚上将产生总线操作;执行指令“ [], ”时,在其引脚上将产生总线操作。
(4)8086无等待的总线周期由个T状态组成,无等待的总线周期由个T状态组成。如果处理器的时钟频率为100,则每个T状态的持续时间为。
(5)8086处理器进行读操作时,其引脚为低,引脚为;总线的引脚低有效说明进行读操作。总线用[3::0]#引脚编码为表示读总线周期。
(6)占用总线进行数据传输,一般需要经过总线请求和仲裁、、和结束4个阶段。
(7)总线理论上最多能够连接个设备, 2.0支持低速、全速和高速480三种速率。
(8)总线共用数据和地址信号,所以数据传输需要两个阶段:第一个阶段(一个时钟)提供(地址,数据),第二个阶段(最少一个时钟)交换(地址,数据)。
(9)的3个最基本的读写控制引脚是,和。
(10)用于要求处理器插入等待状态的信号在8086上是引脚,在上是引脚,对应总线是信号。
〔解答〕
① 0
② 读,写
③ 存储器读,存储器读,存储器写
④ 4,2,10
⑤ 低有效,,0010
⑥ 寻址,数据传送
⑦ 127,1.5,12
⑧ 地址,数据
⑨ ,
⑩ ,
〔习题5.4〕
处理器有哪4种最基本的总线操作(周期)?
〔解答〕
存储器读、存储器写,读、写。
〔习题5.5〕8086处理器的输入控制信号有,,和,其含义各是什么?当它们有效时,8086 将出现何种反应?
〔解答〕
:复位输入信号,高电平有效。该引脚有效时,将迫使处理器回到其初始状态;转为无效时,重新开始工作。
:总线请求,是一个高电平有效的输入信号。该引脚有效时,表示其他总线主控设备向处理器申请使用原来由处理器控制的总线。
:不可屏蔽中断请求,是一个利用上升沿有效的输入信号。该引脚信号有效时,表示外界向申请不可屏蔽中断。
:可屏蔽中断请求,是一个高电平有效的输入信号。该引脚信号有效时,表示中断请求设备向处理器申请可屏蔽中断。
〔习题5.6〕区别概念:指令周期、总线周期(机器周期)、时钟周期、T状态。
〔解答〕
指令周期:一条指令从取指、译码到最终执行完成的过程。
总线周期(机器周期):有数据交换的总线操作。
时钟周期:处理器的基本工作节拍,由时钟信号产生,一个高电平和一个低电平为一个周期。
T状态:完成特定操作的一个时钟周期。由于时间上一个T状态等于一个时钟周期,所以常常将两者混为一谈。
〔习题5.7〕总结8086各个T状态的主要功能。
〔解答〕
T1状态:总线周期的第一个时钟周期主要用于输出存储器地址或地址;
T2状态:输出读/写控制信号。
T3状态:锁存地址、处理器提供的控制信号和数据在总线上继续维持有效,且T3时钟的前沿(下降沿)对引脚进行检测。信号有效,进入T4周期。
T4状态:总线周期的最后一个时钟周期,处理器和存储器或端口继续进行数据传送,直到完成,并为下一个总线周期做好准备。
状态:等待状态。处理器在T3前沿发现信号无效后,插入。状态的引脚信号延续T3时的状态、维持不变。
〔习题5.8〕请解释8086(最小组态)以下引脚信号的含义:,A196~A163,15~0,,,和。默画它们在具有一个等待状态的存储器读总线周期中的波形示意。
〔解答〕
:时钟输入。时钟信号是一个频率稳定的数字信号,其频率就是处理器的工作频率,工作频率的倒数就是时钟周期的时间长度。
A196~A163:地址/状态分时复用引脚,是一组4个具有三态能力的输出信号。这些引脚在访问存储器的第一个时钟周期输出高4位地址A19~A16,在访问外设的第一个时钟周期输出低电平无效;其他时间输出状态信号S6~S3。
15~0:地址/数据分时复用引脚,共16个引脚,用作地址总线时是单向输出信号;用作数据总线时是双向信号,具有三态输出能力。
:地址锁存允许,是一个三态、输出、高电平有效的信号。有效时,表示复用引脚(15~0和A196~A163)上正在传送地址信号。
:访问存储器或者,是一个三态输出信号,该引脚高电平时,表示处理器将访问存储器,此时地址总线A19~A0提供20位的存储器物理地址。该引脚低电平时,表示处理器将访问端口,此时地址总线A15~A0提供16位的地址。
:读控制,也是一个三态、输出低电平有效信号。有效时,表示处理器正在从存储单元或端口读取数据。
:写控制,是一个三态、输出低电平有效信号。有效时,表示处理器正将数据写到存储单元或端口。
第6章 存储系统
〔习题6.1〕简答题
(1)存储系统为什么不能采用一种存储器件构成?
(2)什么是高速命中和高速缺失(未命中)?
(3)高速缓存系统的标签存储器有什么作用?
(4)什么是的地址映射?
(5)的写入策略用于解决什么问题?
(6)存储器的存取时间和存取周期有什么区别?
(7)虚拟存储器是什么存储器?
(8)芯片怎么有行地址又有列地址?
(9)地址重复是怎么回事?
(10)页表项的P(D0)位有什么作用?
〔解答〕
① 因为各种存储器件在容量、速度和价格方面存在矛盾。速度快,则单位价格高;容量大,单位价格低,但存取速度慢。故存储系统不能采用一种存储器件。
② 中复制着主存的部分内容。当处理器试图读取主存的某个字时,控制器首先检查中是否已包含有这个字。若有,则处理器直接读取,这种情况称为高速命中;若无,则称为高速缺失。
③ 标签存储器保存着该数据所在主存的地址信息。
④ 主存块与行之间的对应关系称“地址映射”, 通过地址映射确定一个主存块应放到哪个行组中。
⑤ 写入策略用于解决写入时引起主存和内容不一致性的问题。
⑥ 存取时间是指从读/写命令发出,到数据传输操作完成所经历的时间;存取周期表示两次存储器访问所允许的最小时间间隔。存取周期大于等于存取时间。
⑦ 虚拟存储器是由操作系统利用辅助存储器、以磁盘文件形式建立的、在主存储器与辅助存储器之间的一个存储器。
⑧ 芯片容量大、芯片小,高集成度,引脚数量少。故芯片将地址引脚分时复用,即用一组地址引脚传送两批地址。第一批地址称行地址,第二批地址称列地址。
⑨ 译码电路中只有部分地址线参与译码会造成地址重复,也就是一个存储单元占有多个存储器地址。
⑩页表项的P位称为存在位(),表示该页面是否在物理存储器中。
〔习题6.3〕填空题
(1)计算机存储容量的基本单位:1 B()=(),1=,1=,1=,1==。
(2)80486片上的容量是,采用路组合地址映射。
(3)在半导体存储器中,指的是,它可读可写,但断电后信息一般会;而指的是,正常工作时只能从中信息,但断电后信息。
(4)存储结构为8K×8位的芯片2764,共有个数据引脚、个地址引脚。用它组成64的存储区共需片芯片。
(5)对一个存储器芯片进行片选译码时,有一个高位系统地址信号没有参加译码,则该芯片的每个存储单元占有个存储器地址。
(6)半导体芯片顶部开有一个圆形石英窗口。U盘、3播放器、数码相机、多媒体手机等设备一般采用半导体芯片构成存储器。
(7)在8088处理器系统中,假设地址总线A19~A15输出01011时译码电路产生一个有效的片选信号。这个片选信号将占有主存从到的物理地址范围,共有容量。
(8)8086和80286使用16位数据总线,主存分成偶数地址和奇数地址两个存储体。80386和80486处理器使用位数据总线,利用4个字节允许信号区别个存储体。及以后的32处理器使用位数据总线,主存由个存储体组成。
(9)高速缓冲存储器的地映址射有、和方式。的L1 采用映射方式。
(10)已知32处理器某个段描述符为0000B98200002000H,则该段基地址=,段界限=。
〔解答〕
① 8,1024,1024,1024,1024,240
② 8,4
③ 随机存取存储器,丢失,只读存储器,读取,不会丢失
④ 8,13,8
⑤ 2
⑥(),
⑦ 58000H,5,32
⑧ 32,4,64,8
⑨ 直接映射,组合相关映射,全相关映射,2路组合相关映射
⑩ 00820000H,02000H
〔习题6.5〕简述存储系统的层次结构及各层存储部件特点。
〔解答〕
为解决容量、速度和价格的矛盾,存储系统采用金字塔型层次结构,单位价格和速度自上而下逐层减少,容量自上而下逐层增加。
存储系统的各层存储部件自上而下依次是:寄存器、高速缓存
展开阅读全文