微机原理与汇编语言程序设计课后习题参考答案.docx

上传人:b****4 文档编号:5045502 上传时间:2022-12-12 格式:DOCX 页数:64 大小:44.28KB
下载 相关 举报
微机原理与汇编语言程序设计课后习题参考答案.docx_第1页
第1页 / 共64页
微机原理与汇编语言程序设计课后习题参考答案.docx_第2页
第2页 / 共64页
微机原理与汇编语言程序设计课后习题参考答案.docx_第3页
第3页 / 共64页
微机原理与汇编语言程序设计课后习题参考答案.docx_第4页
第4页 / 共64页
微机原理与汇编语言程序设计课后习题参考答案.docx_第5页
第5页 / 共64页
点击查看更多>>
下载资源
资源描述

微机原理与汇编语言程序设计课后习题参考答案.docx

《微机原理与汇编语言程序设计课后习题参考答案.docx》由会员分享,可在线阅读,更多相关《微机原理与汇编语言程序设计课后习题参考答案.docx(64页珍藏版)》请在冰豆网上搜索。

微机原理与汇编语言程序设计课后习题参考答案.docx

微机原理与汇编语言程序设计课后习题参考答案

第一章习题与参考答案之吉白夕凡创作

1.微处理器,微型计算机和微型计算机系统三者之间有何区别?

答:

微处理器即CPU,它包含运算器、控制器、寄存器阵列和内部总线等部分,用于实现微型计算机的运算和控制功能,是微型计算机的核心;一台微型计算机由微处理器、内存储器、I/O接口电路以及总线构成;微型计算机系统则包含硬件系统和软件系统两大部分,其中硬件系统又包含微型计算机和外围设备;由此可见,微处理器是微型计算机的重要组成部分,而微型计算机系统又主要由微型计算机作为其硬件构成。

2.CPU在内部结构上由哪几部分构成?

CPU应具备哪些主要功能?

答:

CPU在内部结构上由运算器、控制器、寄存器阵列和内部总线等各部分构成,其主要功能是完成各种算数及逻辑运算,并实现对整个微型计算机控制,为此,其内部又必须具备传递和暂存数据的功能。

3.累加器和其它通用寄存器相比有何分歧?

答:

累加器是通用寄存器之一,但累加器和其它通用寄存器相比又有其独特之处。

累加器除了可用做通用寄存器存放数据外,对某些操纵,一般操纵前累加器用于存放一个操纵数,操纵后,累加器用于存放结果。

4.微型计算机的总线有哪几类?

总线结构的特点是什么?

答:

微型计算机的总线包含地址总线、数据总线和控制总线三类,总线结构的特点是结构简单、可靠性高、易于设计生产和维护,更主要的是便于扩充。

5.举出10个微型计算机应用的例子。

答:

6.计算机I/O接口有何用途?

试列出8个I/O接口。

答:

计算机I/O接口是连接计算机和外部设备的纽带和桥梁,它主要用于协调和控制计算机与外设之间的信息流通和交换。

例如:

串行通讯口(COM口)、并行打印机口、软盘驱动器接口、硬盘驱动器接口、光驱接口、显示器接口、音响设备接口、其它通用设备接口(USB、SCSI等)。

7.现在,计算机主板上一般都包含哪些I/O接口?

I/O接口卡如何与主板相连?

答:

现在,计算机主板上一般包含串行通讯口、并行打印口、软盘驱动器接口、硬盘驱动器接口、光驱接口、USB接口等。

象显示器适配器、网卡、modem卡等I/O接口卡一般通过总线插槽与主板相连。

8.简述系统总线,AGP总线,PCI总线及ISA总线的作用。

答:

系统总线是CPU与存储器及桥接器之间传递信息的通道,AGP总线专门用与连接CPU与显示器适配器,PCI总线一般用于连接一些高速外设接口作为高速外设与CPU或内存交换信息的通道,而ISA总线一般用于连接一些非高速外设接口作为非高速外设与CPU或内存交换信息的通道。

9.试说明计算机用户,计算机软件,计算机硬件三者的相互关系。

答:

计算机用户,计算机软件系统,计算机硬件系统共同构成一个计算机应用系统,三者在该系统中处于三个分歧的条理。

计算机用户处于最高层,计算机软件处于中间层,计算机硬件系统处于最下层。

在这里计算机用户是系统的主宰,他们通过软件系统与硬件系统发生关系,指挥计算机硬件完成指定的任务。

即,计算机用户使用程序设计语言编制应用程序,在系统软件的干预下使用硬件系统进行工作。

10.简述DOS操纵系统各部分的作用及相互关系。

答:

DOS操纵系统包含3个模块:

DOS-Shell(COMMAND.COM)、DOS-Kernel(IBMDOS.COM)、DOS-BIOS(IBMBIO.COM).

DOS-Shell模块对用户输入的DOS命令行或应用程序行作出响应。

即负责DOS命令的解释和任务的分配,具体工作则要靠DOS-Kernel模块所提供的系统功能完成。

DOS-Kernel模块尽管提供了许多的系统功能,但由于执行每一个系统功能过程中,完全依赖各种设备实现指定的功能,因此,它还要进一步伐用DOS-BIOS模块中的设备驱动程序才干工作。

DOS-BIOS模块对DOS-Kernel传送的"请求"进行解释,最终转换为对固化在ROM-BIOS中的设备控制程序的请求并由它们去控制硬件,完成指定的操纵。

11.存储单元的选择由什么信号控制?

读、写靠什么信号区分?

答:

存储单元的选择由地址信号控制,而对存储单元进行读操纵还是写操纵则要靠读、写信号区分。

12.以一个可执行文件的运行为例,简述程序执行过程。

答:

当在DOS提示符下键入一个可执行文件名称(或在其它操纵系统环境下执行有关操纵)后,操纵系统自动将该文件从外存装入内存并使指令指针指向其第一条指令,从而启动文件执行过程。

首先将第一条指令从内存取入CPU中译码执行,同时指令指针自动加1或按指令的要求作出相应改变,指向下一条要执行的指令,接着将下一条指令从内存取入CPU译码执行,这样不竭重复取指令和执行指令的过程,逐条执行指令,直至程序结束。

第二章习题与参考答案

第一节

答:

7+3/4=111.110B;7+3/4=7.6O;±3/64=±0.000B;±3/64=±0.0O;73.5=1001001.100B;73.5=111.4O;

O

答:

3.完成下列二进制数运算:

101.111+11.011,1001.10-110.01,101.11*11.01,101110111/1101

答:

101.111+11.011=1001.01;1001.10-110.01=11.01;

101.11*11.01=10010.1011;101110111/1101=11100.11

4.完成下列各十六进制数的运算:

A39E+28DC,D5AB-7CE5,2BF*4C,C16E/3A

答:

5.先将15B*8E/2A中的十六进制数化成十进制数,再进行计算,最后再将结果化为十六进制数。

答:

6.试分别判断下列各组数据中哪个数据最大?

哪个数据最小?

(1)A=0.1001B,B=0.1001D,C=0.1001H

(2)A=10111101B,B=1001D,C=111H

答:

(1)A最大,C最小;

(2)B最大,A最小;

第二节

1.写出下列各数的二进制原码和补码(最后两个用双字节):

0,96,-128,-38H,127,105,879H,-32768

答:

2.分别列出下述10进制数的16进制数、非压缩的BCD数、压缩的BCD数、ASCII数字串(用16进制形式写出):

10,64,78,81,92,100,125,255

答:

上述各数的16进制数依次为:

AH,40H,4EH,51H,5CH,64H,7DH,FFH;

上述各数的非压缩的BCD数依次为:

0100H,0604H,0708H,0801H,0902H,010000H,010205H,020505H;

上述各数的压缩的BCD数依次为:

10H,64H,78H,81H,92H,0100H,0125H,0255H;

上述各数的ASCII数字串依次为:

3130H,3634H,3738H,3831H,3932H,313030H,313235H,323535H;

3.用10进制数写出下列补码暗示的机器数的真值:

71H,1BH,80H,F8H,397DH,CF42H,9350H

答:

上述补码暗示的各机器数的真值用10进制数分别暗示为:

+113,+27,-128,-8,+14717,-20670,-27828

4.若用一个字节来暗示带符号数,判断下列各运算在机内进行时是否会发生溢出,写出判断过程。

A.5BH+32H;B.-08H-15H;C.-51H+(-3DH);D.2DH+3CH

答:

A.发生溢出,5BH=01011011B其补码暗示的机器数为:

01011011

32H=00110010B其补码暗示的机器数为:

00110010

相加的结果为:

10001101

数值最高位向符号位进位,但符号位向前无进位,故发生溢出。

B.不发生溢出,-08H=-00001000B其补码暗示的机器数为:

11111000

-15H=-00010101B其补码暗示的机器数为:

11101011

相加的结果为:

111100011

数值最高位向符号位进位,符号位同时也向前进位,故不发生溢出.

C.发生溢出,-51H=-01010001B其补码暗示的机器数为:

10101111

-3DH=-00111101B其补码暗示的机器数为:

11000011

相加的结果为:

101110010

数值最高位向符号位无进位,但符号位向前进位,故发生溢出.

D.不发生溢出,2DH=00101101B其补码暗示的机器数为:

00101101

3CH=00111100B其补码暗示的机器数为:

00111100

相加的结果为:

01101001

数值最高位向符号位无进位,符号位向前也无进位,故不发生溢出。

5.从键盘敲入一个大写字母,如何转换为与其相对应的小写字母?

从键盘敲入16进制数字符0~F,如何转换为其相对应的二进制数(00000000~00001111)?

答:

从键盘敲入一大写字母后,将其ASCII码加上20H,就转换成了与其相对应的小写字母。

从键盘敲入16进制数字符0~9后,将其ASCII码值减去30H,就转换成了与其相对应的二进制数.

从键盘敲入16进制数字符A~F后,将其ASCII码值减去37H,就转换成了与其相对应的二进制数.

6.已知A=37、B=28,若A、B均以压缩的BCD码、非压缩的BCD码或ASCII码暗示,分别写出三种情况下A+B的运算过程。

注:

A、B的各位以ASCII码暗示时,运算结果的各位用非压缩的BCD码暗示。

答:

6.

(1)A=37以压缩的BCD码暗示为:

00110111,B=28以压缩的BCD码暗示为:

00101000,A+B的运算为:

00110111

+00101000

01011111

+00000110

01100101

(2)A=37以非压缩的BCD码暗示为:

0000001100000111,

B=28以非压缩的BCD码暗示为:

0000001000001000,

A+B的运算为:

0000001100000111

+0000001000001000

+0000000011110110

0000001100000111先将各字节高4位清0

+0000001000001000

各字节高4位清0

7.如果采取偶校验,下述两个数据的校验位的值是什么?

如果采取奇校验呢?

(1)0101010

(2)0011011

答:

采取偶校验时,数据0101010的校验位的值是1,数据0011011的校验位的值是0;

采取奇校验时,数据0101010的校验位的值是0,数据0011011的校验位的值是1;

第三节

1.已知一个逻辑函F=A+BC#+CD#+B#D,试写出其真值表。

答:

其真值表为:

A0101010101010101

B0011001100110011

C0000111100001111

D0000000011111111

F0111111111111101

2.用公式法将下列逻辑函数化简为最简"与或"式:

(1)F=AB+A#C+(BC)#

(2)F=A#B#+(AB+AB#+A#B)C

答:

(1)F=AB+A#C+B#+C#=AB+B#+A#C+C#=A+B#+A#+C#=1+B#+C#=1

(2)F=A#B#+(A(B+B#)+A#B)C=A#B#+(A+A#B)C=A#B#+(A+B)C=A#B#+(A#B#)#C=A#B#+C

3.现约定采取奇校验方法,且用每个字节的最高位做为该字节的校验位,试设计一个逻辑电路,传输前发生校验位,接收后进行校验。

答:

与本节中给出的偶校验电路相比区别如下:

(1)将校验位生成电路的最末级异或门改为同或门;

(2)接收端校验电路相同,不过输出F为1时,可认为传输“无误”,输出F为0时,暗示传输有误。

第四节

1.试述同步式R-S触发器与异步式R-S触发器的主要区别。

答:

异步式R-S触发器时刻处于工作状态,只要输入端数据发生变更,马上可对输出端发生影响。

而同步式R-S触发器是在异步式R-S触发器上增加了编人员构成的,只有在控制端C有效时才工作,此时其功能与异步式R-S触发器完全相同,而当控制端C无效时,触发器不工作。

2.边沿触发的触发器与电平触发的触发器相比优点是什么?

答:

由于电平的维持时间相对较长,在打入一个有效数据后,若有效电平尚未消失时,数据端发生了变更,则有可能将这个不该打入的数据打入,造成错误。

而对边沿触发型触发器,只要包管有效数据在电平变更的边沿处(瞬间)不变更,即可正确打入有效数据。

3.试述时序电路(如触发器)和组合逻辑电路(如译码器)的区别。

答:

组合逻辑电路的输出只依赖于当前的输入,即输出是输入的一个逻辑函数。

而时序电路的输出不但依赖于当前的输入,而且还依赖于该电路的当前状态,即其输出(次态)是输入和现态度的一个逻辑函数。

4.画出一个2-4译码器的逻辑电路图。

答:

图略

5.画出串行加法器的逻辑电路图。

答:

说明:

在讲义图2-23(串行加法器的电路原理图)中的两个寄存器位置放上图2-12中的并行输入移位寄存器简化电路,并做出正确连接。

6.详细叙述总线缓冲器的作用。

答:

总线缓冲器的作用主要是控制各路数据在总线上的交叉传送防止相互冲突,当几路数据都要向总线上传送时,就通过各路的缓冲器来解决,当一路传送时,缓冲器使其它各路数据与总线断开。

7.锁存器和寄存器有什么分歧?

答:

锁存器与寄存器都是用来暂存数据的器件,在实质上没有区别,不过寄存器的输出端平时不随输入端的变更而变更,只有在时钟有效时才将输入端的数据送输出端(打入寄存器),而锁存器的输出端平时总随输入端变更而变更,只有当锁存器信号到达时,才将输出端的状态锁存起来,使其不再随输入端的变更而变更。

第三章习题与参考答案

1.8086从功能上分成了EU和BIU两部分。

这样设计的优点是什么?

答:

传统计算机在执行程序时,CPU总是相继地完成取指令和执行指令的动作,即,指令的提取和执行是串行进行的。

而8086CPU在功能上分成了EU和BIU两部分,BIU负责取指令,EU负责指令的执行,它们之间既互相独立又互相配合,使得8086可以在执行指令的同时进行取指令的操纵,即实现了取指令和执行指令的并行工作,大大提高了CPU和总线的利用率,从而提高了指令的处理速度。

2.8086CPU中地址加法器的重要性体现在哪里?

答:

地址加法器是8086CPU的总线接口单元中的一个器件,在8086存储器分段组织方式中它是实现存储器寻址的一个关键器件,地址加法器将两个16位寄存器中的逻辑地址移位相加,得到一个20位的实际地址,把存储器寻址空间从64K扩大到1M,极大地扩大了微型计算机的程序存储空间,从而大大提高了程序运行效率。

3.8086CPU中有哪些寄存器?

分组说明用途。

哪些寄存器用来指示存储器单元的偏移地址?

答:

8086CPU中有8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI;两个控制寄存器IP、FL;四个段寄存器CS、DS、SS、ES。

8个通用寄存器都可以用来暂存介入运算的数据或中间结果,但又有各自的专门用途。

例如,AX专用做累加器,某些指令指定用它存放操纵数和运算结果;CX为计数寄存器,在某些指令中做计数器使用;DX为数据寄存器;BX为基址寄存器,BP为基址指针,SI为源变址寄存器,DI为目的变址寄存器,这4个寄存器在数据寻址中用来存放段内偏移地址(有效地址)或段内偏移地址的一部分;SP为堆栈指示器,用来存放栈顶有效地址。

两个控制寄存器用来存放有关的状态信息和控制信息。

例如,标记寄存器FL用来存放状态标记和控制标记;而指令指针用来存放下一条要取指令的有效地址。

四个段寄存器用来存放段地址。

例如,CS寄存器用来存放代码段的段地址;DS寄存器用来存放数据段的段地址;SS寄存器用来存放堆栈段的段地址;ES寄存器用来存放扩展段的段地址。

4.8086系统中存储器的逻辑地址由哪两部分组成?

物理地址由何器件生成?

如何生成?

每个段的逻辑地址与寄存器之间有何对应关系?

答:

8086系统中存储器的逻辑地址由段地址(段首址)和段内偏移地址(有效地址)两部分组成;存储单元的物理地址由地址加法器生成,寻址时,CPU首先将段地址和段内偏移地址送入地址加法器,地址加法器将段地址左移4位并与段内偏移地址相加,得到一个20位的物理地址。

数据段的段地址在DS寄存器中,段内偏移地址可能在BX、BP、SI或DI寄存器中。

代码段的段地址在CS寄存器中,段内偏移地址在IP寄存器中。

堆栈段的段地址在SS寄存器中,段内偏移地址在SP寄存器中。

扩展段的段地址在ES寄存器中,段内偏移地址可能在BX、BP、SI或DI寄存器中。

5.设CPU中各有关寄存器的当前状况为:

SS=0a8bH、DS=17ceH、CS=dc54H、BX=394bH、IP=2f39H、SP=1200H,BX给出的是某操纵数的有效地址,请分别写出该操纵数、下一条要取的指令及当前栈顶的逻辑地址和物理地址。

答:

该操纵数的逻辑地址为DS:

BX=17CE:

394BH,物理地址=17CEH*10H+394BH=1B62BH;下一条要取的指令的逻辑地址为CS:

IP=DC54:

2F39H,物理地址=DC54H*10H+2F39H=DF479H;当前栈顶的逻辑地址=SS:

SP=0A8B:

1200H,物理地址=0A8BH*10H+1200H=0BAB0H。

6.若DS=157DH时,某操纵数的物理地址是215FAH,当DS=18DEH时,该操纵数的物理地址是多少?

答:

该操纵数的段内偏移地址=该操纵数的物理地址-DS=215FAH-157D0H=BE2AH,故当DS=18DEH时,该操纵数的物理地址=DS*10H+BE2AH=18DE0H+BE2AH=24C0AH

7.设AX=2875H、BX=34DFH、SS=1307H、SP=8H,依此执行PUSHAX、PUSHBX、POPAX、POPCX后栈顶指针变成多少?

AX=?

BX=?

CX=?

答:

当前栈顶指针=SS*10H+SP=13070H+8H=13078H,依此执行PUSHAX、PUSHBX、POPAX、POPCX后栈顶指针仍为13078H。

但AX=34DFH,BX=34DFH,CX=2875H。

第四章习题与参考答案

1.假定(BX)=637DH,(SI)=2A9BH,位移量D=3237H,试确定在以下各种寻址方式下的有效地址是什么?

(1)立即寻址

(2)直接寻址

(3)使用BX的寄存器寻址

(4)使用BX的间接寻址

(5)使用BX的寄存器相对寻址

(6)基址变址寻址

(7)相对基址变址寻址

答:

(1)立即数寻址的有效地址是当前IP的内容;

(2)直接寻址,若使用位移量D=3237H进行,则有效地址为3237H;

(3)使用BX的寄存器寻址时,操纵数在BX寄存器中,因此无有效地址;

(4)使用BX的间接寻址时,有效地址在BX寄存器中,即有效地址=637DH;

(5)使用BX的寄存器相对寻址的有效地址=(BX)+D=637DH+3237H=95B4H;

(6)基址变址寻址的有效地址=(BX)+(SI)=637DH+2A9BH=8E18H;

(7)相对基址变址寻址的有效地址=(BX)+(SI)+D=C050H;

2.写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。

要求使用以下几种寻址方式:

(1)寄存器间接寻址

(2)寄存器相对寻址

(3)基址变址寻址

答:

(1)使用寄存器间接寻址,把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令为:

MOVBX,BLOCK

ADDBX,12

MOVDX,[BX]

(2)使用寄存器相对寻址,把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令为:

MOVBX,BLOCK

MOVDX,[BX+12]

(3)使用基址变址寻址,把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令为:

MOVBX,BLOCK

MOVSI,12

MOVDX,[BX+SI]

3.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。

(1)MOVAX,1200H

(2)MOVAX,BX

(3)MOVAX,[1200H]

(4)MOVAX,[BX]

(5)MOVAX,[BX+1100]

(6)MOVAX,[BX+SI]

(7)MOVAX,[BX+SI+1100]

答:

(1)指令MOVAX,1200H执行完后AX寄存器的内容为1200H;

(2)指令MOVAX,BX执行完后AX寄存器的内容为0100H;

(3)指令MOVAX,[1200H]是将从物理地址=(DS)*10H+1200H=21200H开始的两个单元内容送AX,执行完后AX寄存器的内容为4C2AH;

(4)指令MOVAX,[BX]是将从物理地址=(DS)*10H+(BX)=20100H开始的两个单元内容送AX,故执行完后AX寄存器的内容为3412H;

(5)指令MOVAX,[BX+1100]是将从物理地址=(DS)*10H+(BX)+1100H=21200H开始的两个单元内容送AX,故执行完后AX寄存器的内容为4C2AH;

(6)指令MOVAX,[BX+SI]是将从物理地址=(DS)*10H+(BX)+(SI)=20102H开始的两个单元内容送AX,故执行完后AX寄存器的内容为7856H;

(7)指令MOVAX,[BX+SI+1100]是将从物理地址=(DS)*10H+(BX)+(SI)+1100H=21202H开始的两个单元内容送AX,故执行完后AX寄存器的内容为65B7H;

4.假设已知(DS)=2900H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名VAL的偏移地址值为0050H,试指出下列源操纵数字段的寻址方式是什么?

其物理地址值是多少?

(1)MOVAX,0ABH

(2)MOVAX,BX

(3)MOVAX,[100H](4)MOVAX,VAL

(5)MOVAX,[BX](6)MOVAX,ES:

[BX]

(7)MOVAX,[BP](8)MOVAX,[SI]

(9)MOVAX,[BX+10](10)MOVAX,VAL[BX]

(11)MOVAX,[BX][SI](12)MOVAX,[BP][SI]

答:

(1)在指令MOVAX,0ABH中,源操纵数字段的寻址方式是立即数寻址,其物理地址值=(CS)*10H+(IP);

(2)在指令MOVAX,BX中,源操纵数字段的寻址方式是寄存器寻址,操纵数在BX中,无物理地址;

(3)在指令MOVAX,[100H]中,源操纵数字段的寻址方式是直接寻址,其物理地址值=(DS)*10H+100=29000H+100H=29100;

(4)在指令MOVAX,VAL中,源操纵数字段的寻址方式是直接寻址,其物理地址值=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1