汇编语言与计算机原理第四章
- 格式:doc
- 大小:199.00 KB
- 文档页数:16
《计算机原理学习指导》第四章指令系统综合练习题参考答案一、填空题1 、一个完善的指令系统应满足以下4个方面的要求,它们是:完备性、有效性、规整性和兼容性。
2、一条完整的指令是由操作码和地址码(操作数)两部分信息组成的。
3 、指令中的地址码字段包括源操作数的地址和操作结果数的地址(目的操作数的地址),前者用语指明操作数的存放处,后者用语存放运算的结果。
4 、指令格式按地址码部分的地址个数可以分为零地址指令格式、一地址指令格式、二地址指令格式和三地址指令格式。
5、常见的操作码方法有定长操作码和扩展操作码。
6、逻辑运算指令包括逻辑乘(与)、逻辑加(或)、逻辑非(求反)和异或(按位加)等操作。
二、单项选择题1、直接、间接、立即这 3 种寻址方式指令的执行速度有快到慢的排序是( C )A .直接、立即、间接B.直接、间接、立即C .立即、直接、间接D.立即、间接、直接2、指令系统中采用不同寻址方式的目的是(B)A .实现存储程序和程序控制B.缩短指令长度,扩大寻址空间,提高编程灵活性C .可以直接访问外存D.提高扩展操作码的可能并降低指令译码难度3、一地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个数常采用( C )A .堆栈寻址方式B.立即寻址方式C.隐含寻址方式 D .间接寻址方式4、对某个寄存器中操作数的寻址方式称为(C)寻址方式A .直接B .间接C .寄存器直接D.寄存器间接5、寄存器间接寻址方式中,操作数在(B)A .通用寄存器 B.主存单元C.程序计数器 D .外存6、变址寻址方式中,操作数的有效地址等于( C )A .基址寄存器内容加上偏移量B.堆栈指示器内容加上偏移量C .变址寄存器内容加上偏移量D.程序计数器内容加上偏移量7、扩展操作码是(D)A .操作码字段中用来进行指令分类的代码B.指令格式中不同字段设置的操作码C.操作码字段外用来操作字段的代码D.一种指令优化技术,即让操作码的长度随地址数的变化而变化8 A 、下面关于汇编语言的叙述中,不恰当的是( D ).对程序员的训练要求来说,需要硬件知识B.汇编语言对机器的依赖性强C.用汇编语言编写程序的难度比高级语言大D.用汇编语言编写的程序执行速度比高级语言慢9 A 、能够改变程序执行顺序的是( D ).数据传送类指令B.移位操作类指令 C .输入 /输出类指令 D .条件 /无条件转移类指令10 、以下的( D )不能支持数值处理A .算术运算类指令B.移位操作类指令C.字符串处理类指令D.输入/ 输出类指令三、名词解释题1 、指令:计算机能够识别和执行的操作命令2 、指令系统:一台计算机或一个计算机系统能够执行的各种指令的集合3 、指令字:一条完整的指令称为一个指令字4 、操作码:表示操作的性质及功能5 、地址码:表示指令的操作对象,指出操作数的地址6 、指令字长:等于地址码长度加上操作码长度7、定长操作码:让操作码的长度固定且集中放在指令字的一个字段中8、扩展操作码:操作码的长度可变且分散地放在不同的字段中9、寻址方式:指确定本条指令的地址及下一条要执行的指令地址的方法10、汇编语言:一种面向机器的程序设计语言,用助记符形式表示,属于低级程序设计语言11、机器语言:一种能被机器识别和执行的语言,用二进制数“0”和“1”形式表示12、 RISC :精简指令系统计算机13: CISC :复杂指令系统计算机,指具有大量指令的计算机系统四、简答题1、计算机指令中一般包含哪些字段?分别是什么含义?答:计算机指令中一般包含地址码和操作码两部分,地址码表示指令的操作对象,指出操作数的地址,操作码表示操作的性能及功能。
计算机组成与汇编语言笔记整理第4章:CPU及其控制器本章要点CPU的功能、组成和寄存器组一条运算指令的完整执行过程8086微处理器的功能结构,8086的寄存器组,8086的存储器组织组合逻辑控制器的结构和基本原理微程序控制的基本原理4.1 CPU概述4.1.1 CPU的功能程序是指令的有序集合。
程序被装入主存。
运行程序时,CPU自动地、逐条从内存取出指令并解释指令,形成一组控制信号,去指挥操作部件实现相应的操作,完成对数据的加工和处理。
同时,CPU自动修改指令地址,给出后继指令地址在内存中的位置,以便连续取指令并分析执行,直到该程序执行结束。
在运行过程中CPU还能自动处理某些紧急的异常事件。
CPU在计算机系统中起着核心的作用,它的功能具体可归结为5个方面。
(1) 指令控制:严格控制程序的执行顺序,保证机器按照规定执行是CPU的首要任务。
(2) 操作控制:一条指令的执行,要涉及计算机中的若干个部件。
CPU能够对指令进行译码产生一组控制和操作信号,传送给被控部件,并能检测各个部件发送的信号,从而协调各个工作部件实现指令所规定的操作。
举例:实现指令MOV B,A(3) 时序控制:对由指令译码所得的各种操作信号的产生时间、稳定时间、撤销时间及相互之间的关系都应有严格的要求。
对操作信号施加时间上的控制,称为时序控制。
只有严格的时序控制,才能保证各功能部件组合构成有机的计算机系统。
(4) 数据加工处理:即在前三种控制的条件下,对数据进行算术运算和逻辑运算,以及其他非数值数据的处理,并将处理结果送到指令规定的地方存储。
数据加工处理,是完成程序功能的基础,是CPU的根本任务。
(5) 异常事件处理:在程序的正常运行过程中,可能出现机器本身的异常情况,如掉电、复位、以零做除数等,也可能有外部设备要求紧急处理比如键盘中断等情况,这时CPU必须具有以某种方式比如中断处理的方式来停下当前执行的程序,转而处理突发的重要的事件的能力。
1.什么是“程序可见”的寄存器?程序可见寄存器是指在用户程序中用到的寄存器,它们由指令来指定。
2. 80x86微处理器的基本结构寄存器组包括那些寄存器?各有何用途?基本结构寄存器组按用途分为通用寄存器、专用寄存器和段寄存器3类。
通用寄存器存放操作数或用作地址指针;专用寄存器有EIP和EFLAGS,分别存放将要执行的下一条指令的偏移地址和条件码标志、控制标志和系统标志;段寄存器存放段基址或段选择子。
3.80x86微处理器标志寄存器中各标志位有什么意义?常用的7位:CF进位标志: 在进行算术运算时,如最高位(对字操作是第15位,对字节操作是第7位)产生进位或借位时,则CF置1;否则置0。
在移位类指令中,CF用来存放移出的代码(0或1)。
PF奇偶标志: 为机器中传送信息时可能产生的代码出错情况提供检验条件。
当操作结果的最低位字节中1的个数为偶数时置1,否则置0。
AF辅助进位标志: 在进行算术运算时,如低字节中低4位(第3位向第4位)产生进位或借位时,则AF置1;否则AF置0。
ZF零标志:如指令执行结果各位全为0时,则ZF置1;否则ZF置0。
SF符号标志:其值等于运算结果的最高位。
如果把指令执行结果看作带符号数,就是结果为负,SF置1;结果为正,SF置0。
OF溢出标志: 将参加算术运算的数看作带符号数,如运算结果超出补码表示数的范围N,即溢出时,则OF置1;否则OF置0。
DF方向标志: 用于串处理指令中控制处理信息的方向。
当DF位为1时,每次操作后使变址寄存器SI和DI减小;当DF位为0时,则使SI和DI增大,使串处理从低地址向高地址方向处理。
4.画出示意图,简述实模式下存储器寻址的过程。
20位物理地址如下计算(CPU中自动完成):10H×段基址+偏移地址=物理地址5. 画出示意图,简述保护模式下(无分页机制)存储器寻址的过程。
采用对用户程序透明的机制由选择子从描述子表中选择相应的描述子,得到欲访问段的段基址、段限等有关信息,再根据偏移地址访问目标存储单元。
第四章 Intel8086/8088微处理器及其指令系统§4.1 概述微型计算机所使用的微处理器芯片可分为两大类:一类是Intel类型芯片,另一类是非Intel类型的。
Intel类型微处理器芯片主要生产厂家是美国Intel公司, IBM PC微型计算机CPU使用的就是Intel类型微处理器。
非Intel类型的微处理器芯片是Motorola等公司的产品,主要用于Apple公司的微型计算机和服务器中。
自1971年,Intel公司生产第一片微处理器至今的30多年时间,Intel微处理器每3至5年就要更新换代一次,使IBM PC微型计算机的性能不断提高。
IBM PC微型计算机使用的微处理器主要变化是:1.Intel 8088微处理器Intel 8088微处理器是Intel公司专门为第一代IBM PC微型计算机设计的。
Intel 8088微处理器内部运算和寄存器都是16位,但是外部数据线是8位,因而被称为准16位微处理器。
地址线20位,可寻址空间1M;工作频率4.7Mhz。
与此同时还推出了Intel 8087浮点运算器,以配合Intel 8088,提高数值运算速度。
2.Intel 80286微处理器Intel 80286是IBM PC/AT微型计算机使用的微处理,其内部运算和寄存器同Intel 8088一样,也是16位,但是外部数据线增加到16位,是真正的16位微处理器。
地址线24位,可寻址空间16M;工作频率8Mhz。
和Intel 80286配合的浮点运算器是Intel80287。
3.Intel 80386微处理器使用Intel 80386微处理器的有IBM公司的PS/2系列微型计算机,和一些其它厂家生产的386型兼容机。
Intel 80386是32位微处理器,其内部运算和寄存器都是32位;外部数据线和地址线32位,可寻址空间4G;增加了页式虚拟存储管理部件;时钟频率32 Mhz。
和Intel 80386配合的浮点运算器是Intel 80387。
计算机组成原理与汇编语言程序设计课后习题及解答徐洁,俸远祯电子工业出版社第1章习题一1.什么是程序存储工作方式?答:计算机的工作方式——存储程序工作方式。
即事先编写程序,再由计算机把这些信息存储起来,然后连续地、快速地执行程序,从而完成各种运算过程。
2.采用数字化方法表示信息有哪些优点?用数字化方法表示信息的优点:(1)抗干扰能力强, 可靠性高。
(2)依靠多位数字的组合,在表示数值时可获得很宽的表示范围以及很高的精度。
(3)数字化的信息可以存储、信息传送也比较容易实现。
(4)可表示的信息类型与范围及其广泛,几乎没有限制。
(5)能用逻辑代数等数字逻辑技术进行信息处理,这就形成了计算机硬件设计的基础。
3.如果有7×9点阵显示出字符A的图像,请用9个七位二进制代码表示A的点阵信息。
4.数字计算机的主要特点是什么?1. (1)能在程序控制下自动连续地工作;(2|)运算速度快;(3)运算精度高;(4)具有很强的信息存储能力;(5)通用性强,应用领域及其广泛。
5.衡量计算机性能的基本指标有哪些?答:衡量计算机性能的基本指标:(1)基本字长——参加一次运算的数的位数;(2)数据通路宽度——数据总线一次能并行传送的位数;(3)运算速度——可用①CPU的时钟频率与主频,②每秒平均执行指令数,③典型四则运算的时间来表示。
(4)主存储器容量——可用字节数或单元数(字数)×位数来表示。
(6)配备的外围设备及其性能。
(7)系统软件配置。
7.系统软件一般包括哪些部分?列举你所熟悉的三种系统软件。
系统软件一般包括操作系统,编译程序、解释程序、各种软件平台等。
例如WINDOWS98操作系统,C 语言编译程序等,数据库管理系统。
8.对源程序的处理有哪两种基本方式?对源程序的处理通常有两种处理方式:解释方式和编译方式。
第2章习题二1.将二进制数(101010.01)2 转换为十进制数及BCD码。
解:(101010.01)2 = (42.25)10 = (01000010.00100101)BCD2.将八进制数(37.2)8转换为十进制数及BCD码.解:(37.2)8 = (31.25)10 =(00110001.00100101)BCD3.将十六进制数(AC.E)转换为十进制数及BCD码.解: (AC.E)16 =(172.875)10 = (000101110010.100001110101)BCD4.将十进制数(75.34)10转换为8位二进制数及八进制数、十六进制数。
第四章 Intel8086/8088微处理器及其指令系统§4.1 概述微型计算机所使用的微处理器芯片可分为两大类:一类是Intel类型芯片,另一类是非Intel类型的。
Intel类型微处理器芯片主要生产厂家是美国Intel公司, IBM PC微型计算机CPU使用的就是Intel类型微处理器。
非Intel类型的微处理器芯片是Motorola等公司的产品,主要用于Apple公司的微型计算机和服务器中。
自1971年,Intel公司生产第一片微处理器至今的30多年时间,Intel微处理器每3至5年就要更新换代一次,使IBM PC微型计算机的性能不断提高。
IBM PC微型计算机使用的微处理器主要变化是:1.Intel 8088微处理器Intel 8088微处理器是Intel公司专门为第一代IBM PC微型计算机设计的。
Intel 8088微处理器内部运算和寄存器都是16位,但是外部数据线是8位,因而被称为准16位微处理器。
地址线20位,可寻址空间1M;工作频率4.7Mhz。
与此同时还推出了Intel 8087浮点运算器,以配合Intel 8088,提高数值运算速度。
2.Intel 80286微处理器Intel 80286是IBM PC/AT微型计算机使用的微处理,其内部运算和寄存器同Intel 8088一样,也是16位,但是外部数据线增加到16位,是真正的16位微处理器。
地址线24位,可寻址空间16M;工作频率8Mhz。
和Intel 80286配合的浮点运算器是Intel80287。
3.Intel 80386微处理器使用Intel 80386微处理器的有IBM公司的PS/2系列微型计算机,和一些其它厂家生产的386型兼容机。
Intel 80386是32位微处理器,其内部运算和寄存器都是32位;外部数据线和地址线32位,可寻址空间4G;增加了页式虚拟存储管理部件;时钟频率32 Mhz。
和Intel 80386配合的浮点运算器是Intel 80387。
4.Intel 80486微处理器Intel 80486是高性能的32位微处理器,其内部运算和寄存器的字长和Intel 80386相同。
Intel 80486有多个型号,最高时钟频率可达66 Mhz。
Intel 80486内含浮点运算器和8KB的高速缓存器。
5.Pentium微处理器1993年Intel公司推出了Pentium微处理器。
Pentium微处理器芯片集成了310万个晶体管,有64位数据线,36位地址线。
Pentium微处理器的内部浮点运算器在Intel 80486的基础上进行了全新的设计。
Pentium微处理器使用了超标量技术,有两个独立的整数处理单元,可以同时执行两条整数运算指令。
内部高速缓存分为两部分:8KB的指令高速缓存和8KB的数据高速缓存。
之后Pentium微处理器推出的几个型号,时钟频率从66Mhz发展到166Mhz。
1995年,Intel公司推出了Pentium Pro微处理器。
Pentium Pro的整数处理单元增加到3个,时钟频率有150 Mhz、166 Mhz和200 Mhz等几个型号。
1997年1月Intel公司推出了Pentium MMX(Multimedia Execution)微处理器,该处理器增加了57条多媒体指令,用于处理音频、视频和图像数据。
1997年5月,Intel公司推出了PentiumII微处理器,最高时钟频率PentiumII芯片达366Mhz。
1999年,Intel公司推出了Pentium Ⅲ微处理器。
最高时钟频率PentiumII芯片达933Mhz。
2000年6月,Intel公司推出了Pentium Ⅳ微处理器,目前,Pentium Ⅳ微处理器的时钟频率已高达2.0G Mhz以上。
§4.2 8086/8088微处理器一、8086/8088微处理器功能结构8088微处理器是Intel公司专为IBM-PC微型计算机设计的CPU芯片,它仅仅是在8086CPU的基础进行了一些改进。
Intel8086和Intel 8088的主要区别是Intel 8086的数据线是16根,而Inetl8088只有8根数据线,但是它们的地址线都是20根,控制线也基本相同。
图4.2.1 8086/8088功能结构图Intel8086/8088CPU就功能而言分成两大部分:总线接口单元BIU(Bus Interface unit)和执行单元EU(Execution Unit),如图4.2.1所示。
BIU单元的功能主要包括:从存储器取出指令,送入指令流排队机构;访问内存或外部设备;响应外部中断等。
EU的功能是执行指令。
EU从指令队列取出指令代码,译码后发出相应的执行控制信号。
运算器执行运算,运算结果的特征保存在标志寄存器。
由于取指令和执行指令部件是分开的,并且相对独立,所以指令执行和取指令可以同时进行,即在一条指令执行过程中,可以取出下一条指令。
指令队列可以存储多条指令,BIU取出的指令在指令流排队机构排队,执行单元执行完一条指令后就可以立即从指令队列中取出下一条指令执行。
由于执行和取指令可以重叠进行,提高了系统速度。
二.Intel8086/8088CPU的寄存器Intel8086/8088CPU内部含有一些寄存器,这些寄存器用于暂存数据和地址等。
1.数据寄存器组数据寄存器有四个,这四个寄存器都是十六位寄存器,可以按十六位使用,也可以分别使用每个寄存器的高八位和低八位。
如果按十六位使用其名称分别为AX,BX,CX和DX,如果按八位使用其名字如图4.2.2所示。
四个数据寄存器的通常的名称和用途如下:AX:累加器,用于暂存操作数或运算结果。
BX:基址寄存器,除用于存储运算操作数之外,还经常用于地址运算。
CX:计数器,初作为一般寄存器使用外,还经常用于循环程序的循环次数计数。
DX:数据寄存器,用于存储运算操作数或运算结果。
图4.2.2 数据寄存器2. 变址寄存器SI:源变址寄存器,16位,一般用于存储源操作数的偏移地址。
DI:目的变址寄存器,16位,一般用于存储目的操作数的偏移地址。
3. 堆栈指针和基数指针SP:堆栈指针,16位,用于堆栈操作。
BP:基数指针,16位,用于堆栈段指示偏移地址。
4.段寄存器段寄存器CS、DS、SS、ES是四个十六位寄存器,在段式存储管理中,这四个寄存器用于保存段基址(段开始地址)。
由于Intel8086/8088微处理器的地址线有20条,而段寄存器是十六位寄存器,所以只能保存段基址的高十六位,在执行访问内存指令时,将段寄存器左移4位,再加上16位偏移地址得到20位物理地址。
四个段寄存器用途如下:CS:代码段寄存器,用于存储程序代码段基址。
DS:数据段寄存器,用于存储程序数据段基址。
SS:堆栈段寄存器,用于存储程序堆栈段基址。
ES:附加数据段寄存器,用于存储程序数据段基址,通常用于字串操作5. IP:指令指针,16位,指向下一条要执行指令的偏移地址。
6. 标志寄存器16位寄存器,每一位指示运算指令或其他指令执行后的检验结果,其意义如下:CF:b0位,进位或借位标志位,当加法运算最高位向前有进位,或减法运算最高位向前有借位,本位置1,否则置0;PF:b2位,奇偶标志位,当运算结果低8位有偶数个1,PF置1,否则置0;AF:b4位,辅助进位标志位,当运算时,b3位向b4位有进位AF置1,否则置0;ZF:b6位,零标志位,运算结果等于0时置1,否则置0;SF:b7位,符号标志位,运算结果的最高位等于1时SF=1(负号),等于0时 SF=0(正号);TF:b8位,追踪标志位,当TF=1时使CPU进入单步执行方式,每执行一条指令就暂停,常用于调试程序;IF:b9位,中断标志位,当IF=0时,CPU不响应可屏蔽中断;DF:b10位,方向标志位,当字符串传送时,DF=0时每传送一个字节或一个字,地址自动增加1(字节传送)或增2(字传送),当DF=1时每传送一个字节或一个字,地址自动减1(字节传送)或减2(字传送);OF:b11位,溢出标志位,当带符号数运算的运算结果超出了数的表示范OF置1,否则置0。
例如,8位运算时,当运算结果>+127或<128时,超出了8位机器数的表示范围,既产生了溢出。
进位和溢出是两个不同的概念,不要混淆,如下例,计算01100100+01100100,计算结果为11001000,并没有向前进位,但是8位带符号机器数的表示范围,OF将置1:01100100+ 0110010011001000除上述标志位外,状态标志寄存器还有一些位没有使用,如图4.2.3所示。
图4.2.3 标志寄存器§4.3 操作数寻址方式一、指令格式Intel8086/8088微处理器的指令按格式可分为无操作数指令、单操作数指令和双操作数指令三种。
指令的一般格式为:操作码 [目的操作数] [,源操作数]操作码表示指令的操作类型,源操作数和目的操作数表示指令的操作对象,操作结果存入目的操作数。
例如指令:ADD AL,3 ,表示将AL寄存器中的值和常数3相加,结果存入AL寄存器。
微处理器实际执行的指令是二进制代码的机器指令,为了编程方便,在编写程序时一般使用机器指令的助记符号,机器指令的助记符号称为汇编指令,例如,上面指令中的ADD就是加法机器指令的助记符。
不同指令的操作数个数可能不同,有的指令有两个操作数,有的指令有一个操作数,还有的指令没有操作数,或者其操作数是隐含的,如下面的例子:INC AL ;将AL寄存器值加1,结果存入AL寄存器CLD ;将标志寄存器的DF位置0ADD AL, BL上面第一个指令是单操作数指令;第二个指令的操作数是隐含的(DF标志位),第三个指令是双操作数指令。
二、操作数类型:按操作数所在位置,可分为三种类型:1.寄存器操作数:操作数在CPU内部寄存器中,例如将AL和BL得值相加,结果存入AL,可用如下指令:ADD AL, BL这里源操作数和目的操作数都是寄存器操作数。
2.存储器操作数:操作数据在内存单元中,如下例:ADD [2000H], AL该指令的执行将AL的值和偏移地址为2000H的内存单元值相加,结果存入内存单元,该指令的源操作数属于寄存器操作数,而目的操作数是存储器操作数。
3.立即数:操作数在指令中,例如下面指令的源操作数为立即数:ADD AL,30在指令中目的操作数除了参加运算之外,还要存储运算结果,所以目的操作数不能是立即数,只能是存储器操作数或寄存器操作数。
三、寻址方式所谓寻址方式,是CPU在执行指令时,如何确定源操作数或目的操作数所在位置。
Intel8088寻址方式有如下几种:1.立即寻址操作数为立即数,例如:MOV AL, 3MOV AL,’A’第一条指令的功能是将数值常数3传送到AL寄存器。