好文档 - 专业文书写作范文服务资料分享网站

汇编语言程序设计教程(第3版 卜艳萍)参考答案

天下 分享 时间: 加入收藏 我要投稿 点赞

汇编语言程序设计教程(第3版)

习题参考答案

第1章 汇编语言基础知识

思考与练习

1. 计算机系统分哪几个层次?简述计算机系统的硬件结构。

1)数字逻辑层 2) 微体系结构层 3) 指令系统层 4) 操作系统层 5) 汇编语言层 6) 高级语言层 7) 应用层

硬件系统是指构成计算机系统的物理实体或物理装置。它由控制器、运算器、存储器、输入设备和输出设备等部件构成。

2. 简述用汇编语言进行程序设计的必要性。

1) 程序要具有较快的执行时间,或者只能占用较小的存储容量。例如,操作系统的核

心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。

2) 程序与计算机硬件密切相关,程序要直接、有效地控制硬件。例如,I/O接口电路

的初始化程序段,外部设备的低层驱动程序等。

3) 大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动

态连接库等。

4) 没有合适的高级语言或只能采用汇编语言的时候。例如,开发最新的处理器程序时,

暂时没有支持新指令的编译程序。 5) 汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解

密软件、分析和防治计算机病毒等。

3. 汉字编码主要分哪几类?每类的功能如何?

汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。

1) 为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即用

西文标准键盘上的字母数字串表示汉字的编码。目前,汉字输入编码方法主要有三种:数字编码、拼音编码和字形编码。

2) 汉字交换码:在不同汉字信息处理系统间进行汉字交换时所使用的编码,就是国标

码。无论采用哪种方法输入汉字,一旦输入到计算机中,必须采用统一的国标码标识每个汉字。

3) 汉字机内码是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息

处理系统内部存储、处理、传输汉字用的编码。

4) 字形编码也称为字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。 4. 计算机的字长是怎么定义的,试举例说明。

计算机能同时处理二进制信息的位宽定义为计算机的字长。如8086能同时进行16位二进制数据的运算、存储和传输等操作,该机器的字长为16位。

5. 在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值?

用相应进制的数值加上进制标记即可。

二进制用B,如10101010B 八进制用Q,如437Q。

十进制用D或不用,如54D,或54。 十六进制用H,如27A8H

6. 汇编语言中的基本数据类型有哪些?简述定点数和浮点数的区别。

基本数据类型:数值型数据和非数值型数据。非数值数据如字符、字符串、逻辑值等。 指标 表示范围 精度 运算规则 运算速度 控制电路 成本 程序编制 溢出处理 定点数 较小 决定于数的位数 简单 快 简单,易于维护 低 选比例因子,不方便 由数值部分决定 浮点数 比定点数范围大 规格化时比定点高 运算步骤多 慢 复杂,难于维护 高 方便 由阶码大小判断 7. 列出数字0~9、大写字母A~Z及小写字母a~z的ASCII码值。

30H~39H 41H~5AH 61H~7AH

8. 当字长为八位时,写出下列各数的原码、补码和反码

25,? 25,100,? 100 真值 25 ? 25 100 ? 100 原码 00011001 10011001 01100100 11100100 反码 00011001 11100110 01100100 10011011 补码 00011001 11100111 01100100 10011100 9. 按要求完成进制转换。 (1)7BCH=011110111100B=1980D (2)562Q=101110010B=370D (3)90D=01011010B=5AH

(4)1110100.111B=164.7Q=74.EH 10. 完成下列二进制数的加减运算。

(1)10101010 + 11110000 (2)11001100 + 01010100 =110011010 =100100000

(3)11011010 ? 01010010 (4)11101110 ? 01001101

=10001000 =10100001 11. 完成下列十六进制数的加减运算。

(1)0FEA9 ? 8888=7621H (2)0FFFF ? 1234=EDCBH (3)0EAC0 + 0028=EAE8H (4)3ABC + 1678=5134H 12. 完成下列BCD码的运算。

(1)3+5 =8

0011+0101=1000 不用进行十进制调整 (2)4+7 =11

0100+0111=1011 此码不是BCD码,需要进行十进制调整 1011+0110=10001=0001,0001 (3)6+5 =11

0110+0101=1011 此码不是BCD码,需要进行十进制调整 1011+0110=10001=0001,0001 (4)8+8 =16

1000+1000=10000 此码不是BCD码,需要进行十进制调整 10000+0110=10110=0001,0110

第2章 微型计算机体系结构

思考与练习

1. 简述Intel微处理器的发展历程。

以IBM为例,微机的发展:4004、8008、8080、8086/8088、80286、80386、80486、Pentium系列。

2. IA-32 CPU通常由哪些单元组成,简述这些单元的作用。

IA-32 CPU由总线接口单元、指令预取单元、指令译码单元、执行单元、分段部件和分页部件六个功能部分组成。

总线接口单元BIU负责在CPU内部各部件与存储器、输入/输出接口之间传送数据或指令。

指令预取单元由预取器和预取队列组成。当BIU不执行取操作数或偏移地址的操作时,如果预取队列有空单元或发生控制转移,预取器便通过分页部件向BIU发出指令预取请求。

指令译码单元直接从指令预取单元的预取队列中读出预取的指令字节并译码,将指令直接转换为内部编码,并存放到已译码指令队列中。

执行单元的任务是将已译码指令队列中的内部编码变成按时间顺序排列的一系列控制信息,并发向处理器内部有关的部件,以便完成一条指令的执行。

分段部件的任务是把逻辑地址转换为线性地址并进行保护检查。

分页部件由地址加法器、页高速缓存寄存器及控制和属性检验用PLA组成。在操作系统控制下,如果分页操作处于允许状态,便执行从线性地址到物理地址的转换,同时还需要检验标准存储器访问与页属性是否一致,并保留一个最近所访问的页的列表。如果分页操作 3. 8088微处理器中有哪些寄存器?说明它们的功能及分组情况,进一步分析IA-32 CPU

寄存器组。

IA-32 CPU寄存器组包括以下几类。 ①IA-32 CPU中的基本体系结构寄存器:

②系统级寄存器:IA-32 CPU中的系统级寄存器包括内存管理寄存器和控制寄存器。 内存管理寄存器GDTR、IDTR、LDTR和TR用于指示保护模式下系统中特殊段的地址信息,也称为系统地址寄存器。

IA-32 CPU中有四个32位的控制寄存器CR0、CR1、CR2和CR3。

③调试与测试寄存器:IA-32 CPU中设置了8个32位的调试寄存器,命名为DR0~DR7,它们为程序调试提供了硬件支持。IA-32 CPU中设置了2个32位的测试寄存器,命名为TR6和TR7。

4. 8086的标志寄存器FLAG中,有哪些标志位?它们的名称和功能是什么?IA-32 CPU

的标志寄存器增加了哪些标志位,其功能是什么? CF——进位标志(Carry Flag)。若CF=1,表示算术运算时产生进位或借位,否则CF=0。移位指令会影响CF。

PF——奇偶标志(Parity Flag)。若PF=1,表示操作结果中“1”的个数为偶数,否则PF=0。这个标志位主要用于检查数据传送过程中的错误。

AF——辅助进位标志(Auxiliary Carry Flag)。若AF=1表示字节运算产生低半字节向高半字节的进位或借位,否则AF=0。辅助进位也称半进位标志,主要用于BCD码运算的十进制调整。

ZF——全零标志(Zero Flag)。若ZF=1,表示操作结果全为零,否则ZF=0。 SF——符号标志(Sign Flag)。若SF=1,表示符号数运算后的结果为负数,否则SF=0。 OF——溢出标志(Overflow Flag)。若OF=1,表示当进行算术运算时,结果超过了最大范围,否则OF=0。

IF——中断允许标志(Interrupt Enable Flag)。若IF=1,则CPU可以响应外部可屏蔽中断请求;若IF=0,则CPU不允许响应中断请求。IF的状态可由中断指令设置。

DF——方向标志(Direction Flag)。若DF=1,表示执行字符串操作时按着从高地址向低地址方向进行;否则DF=0。DF位可由指令控制。

TF——单步标志(Trace Flag)。又称跟踪标志。该标志位在调试程序时可直接控制CPU的工作状态。当TF=1时为单步操作,CPU每执行一条指令就进入内部的单步中断处理,以便对指令的执行情况进行检查;若TF=0,则CPU继续执行程序。

IA-32 CPU的标志寄存器增加的标志位: IOPL——特权标志。 NT——任务嵌套标志。 RF——恢复标志。

VM——虚拟方式标志。 AC——对准检查标志。 VIF——虚拟中断标志。 VIP——虚拟中断暂挂标志。 ID——标识标志。

5. 什么叫8086/8088存储器的段的基地址?什么叫段内偏移地址?什么叫物理地址?以上

地址各为多少位?

每个段在物理存储器中有一个段的起始地址,称为段基地址,它的低四位二进制码必须是0000,即段基地址是能被16整除的地址。

而偏移量是表示段内某一存储单元相对于段起始地址的空间位置,即段内偏移地址,也称有效地址EA。

对于1M字节的物理存储空间,每个存储单元都有一个20位的物理地址。物理地址是指存储单元的实际编码地址,对存储器的读写操作是需用物理地址进行按址存取。 6. 什么是段选择器?什么是段描述符?什么是描述符表?它们之间有什么关系?

在保护模式下,段寄存器中存放的不是段基地址本身,而是一个16位的段选择器。段选择器索引说明段信息的段描述符,段描述符存放有段基地址信息。

段描述符的长度为8字节,每一个段都有一个对应的描述符。根据描述符所描述的对象不同,描述符可以分为三类:存储段描述符、系统段描述符、门描述符(控制描述符)。在描述符中定义了段的基地址,界限和访问类型等段属性。

为了便于组织管理,IA-32 CPU把段描述符组织成线性表,称为描述符表。IA-32 CPU有三种类型的描述符表:全局描述符表GDT,局部描述符表LDT和中断描述符表IDT。 三者的关系:根据段寄存器中保存的段选择器查找相应的描述符表中的对应描述符,根据描述符的内容得出段基地址,将段基地址与偏移地址相加,即得到线性地址。

7. 已知物理地址为FFFE0H,且段内偏移量为0880H,放在BX中,若对应的段基址值放

在DS中,问:DS=? DS=FF76H

8. 段地址和偏移地址用十六进制数表示如下,请分别计算它们的物理地址。 3040:0102 物理地址为:30502H

A000:001E 物理地址为:A001EH

1200:0E08 物理地址为:12E08H

60E0:002A 物理地址为:60E2AH

9. 一台微型计算机,数据线有8根,地址线有16根,如果采用字节编址,那么它可以访

问的最大存储空间是多少字节?试用十六进制数表示该机的地址范围。 216 = 64KB,0000H~FFFFH

汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版)习题参考答案第1章汇编语言基础知识思考与练习1.计算机系统分哪几个层次?简述计算机系统的硬件结构。1)数字逻辑层2)微体系结构层3)指令系统层4)操作系统层5)汇编语言层6)高级语言层7)应用层硬件系统是指构成计算机系统的物理实体或物理装
推荐度:
点击下载文档文档为doc格式
13gbl4tfea1wxgu8k8be9y6ym8c7hv00mqi
领取福利

微信扫码领取福利

微信扫码分享