微机原理与接口技术第2版复习题解答.docx

上传人:b****6 文档编号:8651177 上传时间:2023-02-01 格式:DOCX 页数:84 大小:94.05KB
下载 相关 举报
微机原理与接口技术第2版复习题解答.docx_第1页
第1页 / 共84页
微机原理与接口技术第2版复习题解答.docx_第2页
第2页 / 共84页
微机原理与接口技术第2版复习题解答.docx_第3页
第3页 / 共84页
微机原理与接口技术第2版复习题解答.docx_第4页
第4页 / 共84页
微机原理与接口技术第2版复习题解答.docx_第5页
第5页 / 共84页
点击查看更多>>
下载资源
资源描述

微机原理与接口技术第2版复习题解答.docx

《微机原理与接口技术第2版复习题解答.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术第2版复习题解答.docx(84页珍藏版)》请在冰豆网上搜索。

微机原理与接口技术第2版复习题解答.docx

微机原理与接口技术第2版复习题解答

《16/32位微机原理、汇编语言及接口技术·第2版》

习题解答

第1章

微处理器指令系统

〔习题1.1〕

微型计算机到目前为止已发展了几代?

给出各代微机的特点和典型的微处理器。

〔解答〕

〔习题1.2〕

什么是微型计算机?

PC机、单片机和数字信号处理器的含义各是什么?

〔解答〕

微型计算机:

以大规模、超大规模集成电路为主要部件,以集成了计算机主要部件——控制器和运算器的微处理器为核心,所构造出的计算机系统

PC机:

PC(PersonalComputer)机就是面向个人单独使用的一类微机

单片机:

用于控制的微处理器芯片,部除CPU外还集成了计算机的其他一些主要部件,如:

ROM、RAM、定时器、并行接口、串行接口,有的芯片还集成了A/D、D/A转换电路等。

数字信号处理器DSP:

主要面向大流量数字信号的实时处理,在宿主系统中充当数据处理中心,在网络通信、多媒体应用等领域正得到越来越多的应用

〔习题1.3〕

微型计算机主要由哪些基本部件组成?

各部件的主要功能是什么?

〔解答〕

CPU:

存储器:

外部设备:

〔习题1.4〕

什么是微机的系统总线?

微机的总线结构为它带来了哪些好处?

除电源和地线外,一般将总线分为哪3组信号?

总线的使用特点是什么?

〔解答〕

系统总线:

传递信息的一组公用导线,CPU通过它们与存储器和I/O设备进行信息交换

好处:

组态灵活、扩展方便

三组信号线:

数据总线、地址总线和控制总线

其使用特点是:

在某一时刻,只能由一个总线主控设备来控制系统总线,只能有一个发送者向总线发送信号;但可以有多个设备从总线上同时获得信号。

 

〔习题1.5〕

简述微型计算机的两个主要应用方向及其应用特点。

〔解答〕

用于数值计算、数据处理及信息管理方向

采用通用微机,要求有较快的工作速度、较高的运算精度、较大的存容量和较完备的输入输出设备,为用户提供方便友好的操作界面和简便快捷的维护、扩充手段。

用于过程控制及嵌人应用方向

采用控制类微机,要求能抵抗各种干扰、适应现场的恶劣环境、确保长时间稳定地工作,要求其实时性要好、强调其体积要小、便携式应用强调其省电。

 

〔习题1.6〕

请画出PC/XT机主板的模块组成框图,并说明各部件的作用。

〔解答〕

〔习题1.7〕

PC/XT机中的I/O通道所指是什么?

它由多少个信号线组成?

〔解答〕

〔习题1.8〕

所谓ROM-BIOS指的是什么?

它的主要功能是什么?

〔解答〕

BIOS:

基本输入输出系统

主要功能:

用来驱动和管理诸如键盘、显示器、打印机、磁盘、时钟、串行通信接口等基本的输入输出设备

 

〔习题1.9〕

在DOS管理下,PC机的1MB存空间是怎样分配使用的?

〔解答〕

〔习题1.10〕

简述计算机中“数”和“码”的区别,计算机中常用的数制和码制各有哪些?

〔解答〕

〔习题1.11〕

请完成下列数制转换:

⑴将174.66D转换为对应的二进制和十六进制形式

⑵将1.01011B转换为对应的十进制和十六进制形式

⑶将F18A6.6H转换为对应的二进制和十进制形式

〔解答〕

〔习题1.12〕

请写出与数据+37和-37对应的8位机器数原码、反码、补码和移码,并分别用二进制和十六进制表示出来。

〔解答〕

〔习题1.13〕

请将上题中+37和-37的8位补码机器数分别扩充为16位和32位的形式,用十六进制表示出来。

〔解答〕

〔习题1.14〕

8位机器数46H,若作为无符号数和补码有符号数看待,其对应的真值各是什么?

若作为BCD码和ASCII码看待,它代表的又各是什么?

〔解答〕

无符号数:

4×16+6=70

补码有符号数:

70(正数)

BCD码:

46

ASCII码:

大写字母‘F’

 

〔习题1.15〕

将两个用压缩BCD码表示的十进制数相加,可采用直接相加、然后进行二-十进制调整来实现。

以48+36=84(8和6相加后出现非法BCD码)和48+19=67(8和9相加后出现组间进位)为例,请考虑应如何加和如何调整才能得到正确结果。

〔解答〕

〔习题1.16〕

插在PC/XT机I/O通道中的I/O插卡一般使用哪些地址线?

在哪些系统资源的使用上,两块插卡有可能发生冲突?

〔解答〕

〔习题1.17〕

请写出单精度浮点数-128.25的机器数、并表示为十六进制数形式(可通过C语言中的union数据类型来加以验证)。

〔解答〕

〔习题1.18〕

请分别写出数据50和50H所对应的BCD码,分别用二进制和十六进制数表示出来,并将它们和原始数据进行对比。

〔解答〕

〔习题1.19〕

英文大小写字母“D”和“d”的ASCII码各是什么?

“回车(CR)”和“换行(LF)”的ASCII码各是什么?

数码“0”、“空格(SP)”和“空操作(NUL)”的ASCII码各是什么?

〔解答〕

〔习题1.20〕

已知汉字“中”的国标区位码为5448,请问它的国标码和机码各是什么?

〔解答〕

第2章微处理器指令系统

〔习题2.1〕

微处理器部具有哪3个基本部分?

8088分为哪两大功能部件?

其各自的主要功能是什么?

这种结构与8位CPU相比为什么能提高其性能?

〔解答〕

〔习题2.2〕

说明8088的8个8位和8个16位通用寄存器各是什么?

〔解答〕

〔习题2.3〕

什么是标志?

状态标志和控制标志有什么区别?

画出标志寄存器FLAGS,说明各个标志的位置和含义。

〔解答〕

〔习题2.4〕

举例说明CF和OF标志的差异。

〔解答〕

〔习题2.5〕

什么是8088中的逻辑地址和物理地址?

逻辑地址如何转换成物理地址?

1MB最多能分成多少个逻辑段?

请将如下逻辑地址用物理地址表达:

⑴FFFFH:

0⑵40H:

17H⑶2000H:

4500H⑷B821H:

4567H

〔解答〕

物理地址:

物理存储单元具有的一个唯一的20位编号

逻辑地址:

在8088部和用户编程时,所采用的“段地址:

偏移地址”形式

将逻辑地址中的段地址左移二进制4位(对应16进制是一位,即乘以16),加上偏移地址就得到20位物理地址

1MB最多能分成1MB÷16B=220÷24=216个逻辑段,因为每隔16个字节单元就可以开始一个逻辑段

⑴FFFFH:

0=FFFF0H

⑵40H:

17H=00417H

⑶2000H:

4500H=24500H

⑷B821H:

4567H=BC777H

 

〔习题2.6〕

8088有哪4种逻辑段,各种逻辑段分别是什么用途?

〔解答〕

•代码段(CodeSegment)用来存放程序的指令序列。

处理器利用CS:

IP取得下一条要执行的指令

•堆栈段(StackSegment)确定堆栈所在的主存区域。

处理器利用SS:

SP操作堆栈中的数据

•数据段(DataSegment)存放当前运行程序所用的数据。

处理器利用DS:

EA存取数据段中的数据

•附加段(ExtraSegment)是附加的数据段,也用于数据的保存。

处理器利用ES:

EA存取数据段中的数据

 

〔习题2.7〕

什么是有效地址EA?

8088的操作数如果在主存中,有哪些寻址方式可以存取它?

〔解答〕

〔习题2.8〕

已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12H、34H、56H、78H,[21200H]~[21203H]依次存放2AH、4CH、B7H、65H,说明下列每条指令执行完后AX寄存器的容,以及源操作数的寻址方式?

⑴movax,1200h

⑵movax,bx

⑶movax,[1200h]

⑷movax,[bx]

⑸movax,[bx+1100h]

⑹movax,[bx+si]

⑺movax,[bx][si+1100h]

〔解答〕

⑴movax,1200h;AX=1200H,立即数寻址

⑵movax,bx;AX=0100H,寄存器寻址

⑶movax,[1200h];AX=4C2AH,直接寻址

⑷movax,[bx];AX=3412H,寄存器间接寻址

⑸movax,[bx+1100h];AX=4C2AH,寄存器相对寻址

⑹movax,[bx+si];AX=7856H,基址变址寻址

⑺movax,[bx][si+1100h];AX=65B7H,相对基址变址寻址

 

〔习题2.9〕

说明下面各条指令的具体错误原因

⑴movcx,dl⑵movip,ax

⑶moves,1234h⑷moves,ds

⑸moval,300⑹mov[sp],ax

⑺movax,bx+di⑻mov20h,ah

〔解答〕

〔习题2.10〕

已知数字0~9对应的格雷码依次为:

18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。

请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。

leabx,table

moval,8

xlat

〔解答〕

leabx,table;获取table的首地址,BX=200H

moval,8;传送欲转换的数字,AL=8

xlat;转换为格雷码,AL=12H

 

〔习题2.11〕

给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:

moval,89h

addal,al

addal,9dh

cmpal,0bch

subal,al

decal

incal

〔解答〕

moval,89h;AL=89HCFZFSFOFPF

addal,al;AL=12H10011

addal,9dh;AL=0AFH00101

cmpal,0bch;AL=0AFH10101

subal,al;AL=00H01001

decal;AL=0FFH00101

incal;AL=00H01001

〔习题2.12〕

请分别用一条汇编语言指令完成如下功能:

⑴把BX寄存器和DX寄存器的容相加,结果存入DX寄存器。

⑵用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的容相加,并把结果送到AL中。

⑶用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的容相加,并把结果送回存储器中。

⑷用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。

⑸把数0A0H与AL寄存器的容相加,并把结果送回AL中

〔解答〕

⑴把BX寄存器和DX寄存器的容相加,结果存入DX寄存器

adddx,bx

⑵用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的容相加,并把结果送到AL中

addal,[bx+si]

⑶用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的容相加,并把结果送回存储器中

add[bx+0b2h],cx

⑷用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中

addwordptr[0520h],3412h

⑸把数0A0H与AL寄存器的容相加,并把结果送回AL中

addal,0a0h

 

〔习题2.13〕

设X、Y、Z、V均为16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。

movax,X

imulY

movcx,ax

moxbx,dx

movax,Z

cwd

addcx,ax

adcbx,dx

subcx,540

sbbbx,0

movax,V

cwd

subax,cx

sbbdx,bx

idivX

〔解答〕

〔习题2.14〕

给出下列各条指令执行后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。

movax,1470h

andax,ax

orax,ax

xorax,ax

notax

testax,0f0f0h

〔解答〕

movax,1470h;AX=1470HCFZFSFOFPF

andax,ax;AX=1470H00000

orax,ax;AX=1470H00000

xorax,ax;AX=0000H01001

notax;AX=FFFFH01001

testax,0f0f0h;AX=FFFFH00101

 

〔习题2.15〕

控制转移类指令中有哪三种寻址方式?

〔解答〕

〔习题2.16〕

假设DS=2000H、BX=1256H、TABLE的偏移地址是20A1H,物理地址232F7H处存放3280H,试问执行下列段间接寻址的转移指令后,转移的有效地址是什么?

⑴JMPBX

⑵JMPTABLE[BX]

〔解答〕

〔习题2.17〕

判断下列程序段跳转的条件

⑴xorax,1e1eh

jeequal

⑵testal,10000001b

jnzthere

⑶cmpcx,64h

jbthere

〔解答〕

⑴xorax,1e1eh

jeequal;AX=1e1eh(异或后为0)

⑵testal,10000001b

jnzthere;AL的D0或D7至少有一位为1

⑶cmpcx,64h

jbthere;CX(无符号数)<64h

 

〔习题2.18〕

如下是一段软件延时程序,请问NOP指令执行了多少次?

xorcx,cx

delay:

nop

loopdelay

〔解答〕

〔习题2.19〕

有一个首地址为array的20个字的数组,说明下列程序段的功能。

movcx,20

movax,0

movsi,ax

sumlp:

addax,array[si]

addsi,2

loopsumlp

movtotal,ax

〔解答〕

〔习题2.20〕

按照下列要求,编写相应的程序段:

⑴由string指示起始地址的主存单元中存放有一个字符串(长度大于6),把该字符串中的第1个和第6个字符(字节量)传送给DX寄存器。

⑵有两个32位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2中,编写程序段完成DX.AX←buffer1-buffer2功能。

⑶编写一个程序段,在DX高4位全为0时,使AX=0;否则使AX=-1。

⑷把DX.AX中的双字右移4位

⑸有一个100个字节元素的数组,其首地址为array,将每个元素减1(不考虑溢出或借位)存于原处。

〔解答〕

(1)

movdl,string[1]

movdh,string[6]

(2)

movax,wordptrbuffer1

subax,wordptrbuffer2

;先减低16位

movdx,wordptrbuffer1+2

sbbdx,wordptrbuffer2+2

;后减高16位,需减低16位的借位

(3)

testdx,0f000h

jznext

movax,-1

jmpdone

next:

movax,0

done:

(4)

movcx,4

again:

shrdx,1;右移一位,移出的低位进入CF标志

rcrax,1;将CF移进AX高位,同时实现AX右移

loopagain;循环4次,实现4位右移

(5)

movcx,100

movbx,0

again:

subarray[bx],1

incbx

loopagain

〔习题2.21〕

AAD指令是用于除法指令之前,进行非压缩BCD码调整的。

实际上,处理器的调整过程是:

AL←AH×10+AL,AH←0。

如果指令系统没有AAD指令,请用一个子程序完成这个调整工作。

〔解答〕

aadpproc

pushbx

shlah,1

movbl,ah

shlah,1

shlah,1

addbl,ah

addal,bl

movah,0

popbx

ret

aadpendp

〔习题2.22〕

什么是系统功能调用?

汇编语言中,调用系统功能的一般步骤是什么?

〔解答〕

〔习题2.23〕

DAA指令的调整操作是:

①如果AL的低4位是A~F,或者AF标志为1,则AL←AL+6,且使AF=1;

②如果AL的高4位是A~F,或者CF标志为1,则AL←AL+60H,且使CF=1;

阅读如下子程序,说明其为什么能够实现AL低4位表示的一位16进制数转换成对应的ASCII码。

并且将该程序加上在屏幕上显示的功能,编写成通用的子程序。

htoascproc

andal,0fh

addal,90h

daa

adcal,40h

daa

ret

htoascendp

〔解答〕

htoascproc

pushdx

andal,0fh

aadal,90h

daa

adcal,40h

daa

movdl,al

movah,2

int21h;显示个位数

popdx

ret

htoascendp

 

〔习题2.24〕

乘法的非压缩BCD码调整指令AAM执行的操作是:

AH←AL÷10的商,AL←AL÷10的余数。

利用AAM可以实现将AL中的100数据转换为ASCII码,程序如下:

xorah,ah

aam

addax,3030h

利用这段程序,编写一个显示AL中数值(0~99)的子程序。

〔解答〕

dispascproc

pushdx

xorah,ah

aam

addax,3030h

pushax

movdl,ah

movah,2

int21h;显示十位数

popax

movdl,al

movah,2

int21h;显示个位数

popdx

ret

dispascendp

〔习题2.25〕

编写一个程序段:

先提示输入数字“InputNumber:

0~9”,然后在下一行显示输入的数字,结束;如果不是键入了0~9数字,就提示错误“Error!

”,继续等待输入数字。

〔解答〕

;数据段

inmsgdb‘InputNumber:

0~9’,0dh,0ah,’$’

ermsgdb‘Error!

’,’$’

;代码段

movdx,offsetinmsg

movah,9

int21h;显示输入数字0~9

again:

movah,1

int21h;接受一个字符

cmpal,’0’;判断是否输入的是数字0~9

jberdisp

cmpal,’9’

jaerdisp

movdl,al

movah,2

int21h;显示输入的数字

jmpdone;结束

erdisp:

movdx,offsetermsg

movah,9

int21h;显示输入错误

jmpagain;继续输入

done:

 

第3章汇编语言程序设计

〔习题3.1〕

汇编语言有什么特点?

〔解答〕

〔习题3.2〕

编写汇编语言源程序时,一般的组成原则是什么?

〔解答〕

〔习题3.3〕

.MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪7种存储模式,各用于创建什么性质的程序。

〔解答〕

〔习题3.4〕

如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?

〔解答〕

〔习题3.5〕

逻辑段具有哪些属性?

〔解答〕

〔习题3.6〕

给出你采用一个源程序格式书写的例题3.1源程序。

〔解答〕

.modelsmall

.stack

.data

stringdb’Hello,Assembly!

’,0dh,0ah,’$’

.code

start:

movax,data

movds,ax

movdx,offsetstring

movah,9

int21h

movax,4c00h

int21h

endstart

 

〔习题3.7〕

DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么?

〔解答〕

〔习题3.8〕

举例说明等价“EQU”伪指令和等号“=”伪指令的用途。

〔解答〕

〔习题3.9〕

给出下列语句中,指令立即数(数值表达式)的值:

⑴moval,23hAND45hOR67h

⑵movax,1234h/16+10h

⑶movax,23hSHL4

⑷moval,’a’AND(NOT(’a’-’A’))

⑸movax,(76543LT32768)XOR7654h

〔解答〕

〔习题3.10〕

画图说明下列语句分配的存储空间及初始化的数据值:

⑴byte_vardb’ABC’,10,10h,’EF’,3dup(-1,?

3dup(4))

⑵word_vardw10h,-5,3dup(?

〔解答〕

见微机原理wjyl习题题解1caogao.ppt-P24

〔习题3.11〕

请设置一个数据段,按照如下要求定义变量:

⑴my1b为字符串变量,表示字符串“PersonalComputer”

⑵my2b为用十进制数表示的字节变量,这个数的大小为20

⑶my3b为用十六进制数表示的字节变量,这个数的大小为20

⑷my4b为用二进制数表示的字节变量,这个数的大小为20

⑸my5w为20个未赋值的字变量

⑹my6c为100的符号常量

⑺my7c为字符串常量,代替字符串“PersonalComputer”

〔解答〕

〔习题3.12〕

希望控制变量或程序代码在段中的偏移地址,应该使用哪个伪指令?

〔解答〕

〔习题3.13〕

名字和标号有什么属性?

〔解答〕

〔习题3.14〕

设在某个程序中有如下片段,请写出每条传送指令执行后寄存器AX的容:

;数据段

org100h

varwdw1234h,5678h

varbdb3,4

varddd12345678h

buffdb10dup(?

messdb’hello’

;代码段

movax,offsetvarb+offsetmess

movax,typebuff+

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

当前位置:首页 > 高等教育 > 工学

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

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