微机原理及应用习题与答案2.docx
- 文档编号:7793794
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:41
- 大小:249.58KB
微机原理及应用习题与答案2.docx
《微机原理及应用习题与答案2.docx》由会员分享,可在线阅读,更多相关《微机原理及应用习题与答案2.docx(41页珍藏版)》请在冰豆网上搜索。
微机原理及应用习题与答案2
《微机原理及应用》
习
题
参
考
答
案
中原工学院
电子信息学院
微机原理课程组
2010年09月18日
习题一
1.冯.诺依曼计算机由哪几个部分组成?
各部分的功能是什么?
答:
冯.诺依曼在1946年提出了“存储程序”的计算机设计方案,计算机由运算器、控制器、存储器、输入设备和输出设备几个部分组成。
输入设备用来向计算机输入程序和原始数据;输出设备用来输出计算机的处理结果及程序;存储器用来存放程序和数据;运算器是对数据进行运算的部件,其主要功能是对二进制数据进行算术运算(加、减、乘、除)和逻辑运算(与、或、非、移位),故又称为算术逻辑单元;控制器是整个计算机的控制中心,其功能是控制计算机各个部件自动协调工作。
2.计算机的发展经历了哪几个时代?
计算机有哪些方面的应用?
答:
第一代(1946年~1958年):
电子管计算机;第二代(1959年~1964年):
晶体管计算机;第三代(1965年~1970年):
集成电路(IC)计算机;第四代(1971年以后):
大规模/超大规模集成电路(LSIC/VLSIC)计算机。
计算机应用主要有:
1.科学计算;2.数据处理;3.实时控制;4.计算机辅助系统;5.人工智能;6.远程教育;7.电子商务等。
3.微型计算机系统主要由哪些部分组成?
各部分的主要功能是什么?
答:
微型计算机系统主要由:
微处理器、主存储器、输入/输出接口、输入/输出设备、系统总线等部分组成。
各部分的主要功能是:
1.微处理器:
它是微型计算机的核心部件,由运算器、控制器、寄存器等组成其主要功能是通过对指令的译码,产生微操作以控制计算机各个部件自动协调工作。
2.主存储器:
是微型计算机的重要组成部分之一,用于存储指令和数据。
3.输入/输出接口:
简称I/O接口,是微机与I/O设备进行信息传递的桥梁,即微机通过I/O接口与输入/输出设备进行信息交换。
4.输入/输出设备:
简称为I/O设备,人们通过I/O设备与微机进行信息交流。
5.系统总线(systembus):
是用来连接微处理器与其他部件的一束信号线,通过系统总线架起了微处理器与其他部件之间进行信息传递的通道。
4.什么是微型计算机的系统总线?
简要说明微处理器三总线的作用。
答:
系统总线是用来连接微处理器与其他部件的一束信号线,根据所传递的信息不同,可以将系统总线分为:
地址总线(AB),用于传送存储器或I/O接口的地址;数据总线(DB),用于微处理器与其他部件的信息传递;控制总线(CB),用于传送各类控制信号,使外设和其它的部件在微处理器的控制下完成控制操作。
5.解释下面术语的含义。
习题二
1.数制转换
(1)12=(1100)B=(0C)H
(2)(0F89)H=(111110001001)B=(3977)D
(3)(67.75)D=(1000011.11)B=(43.B)H
(4)96.25=(1100000.01)B=(60.4)H
(5)10111011B=(187)D=(0BB)H
(6)(000110000010.0101)B=(386.3125)D=(182.5)H
2.写出下列二进制数的原码、反码和补码。
(1)+1111000B[X]原=01111000[X]反=00000111[X]补=01111000
(2)-1000000B[X]原=11000000[X]反=10111111[X]补=11000000
(3)-0000001B[X]原=10000001[X]反=11111110[X]补=11111111
(4)-0101100B[X]原=10101100[X]反=11010011[X]补=11010100
3.求下列数的补码(用一个字节表示),如果用一个字表示结果如何?
(1)-9[X]补=11110111(字节)[X]补=111111*********1(字)
(2)23[X]补=00010111(字节)[X]补=0000000000010111(字)
(3)-65[X]补=10111111(字节)[X]补=111111*********1(字)
(4)-128[X]补=10000000(字节)[X]补=1111111110000000(字)
4.已知[X]补,求X的真值。
(1)[X]补=01111111BX=+127
(2)[X]补=10000001BX=-127
(3)[X]补=10000000BX=-128
(4)[X]补=01111000BX=+120
5.试将二进制数10000100B和00001110B相加,试说明不管把这两个数看作是无符号数还是有符号数,结果都正确(看作有符号数时采用补码表示)。
答:
当作为无符号数相加时和为146,小于255结果正确,
当作为有符号数,正数和负数相加,结果不会溢出。
6.将有符号数10000100B和11100110B相加,判断结果是否溢出,为什么?
答:
用进位位法判别溢出:
CY=1,CD=0,OF=CY⊕CD=1,
产生溢出。
因为两负数相加,其和大于-128,超出了表示的范围。
7.数值型数据,在加减运算中为什么采用补码表示?
答:
对数值型数据,有正数也有负数,采用补码表示时,可以将符号和数值位一起进行编码,并可将减运算转化成加运算。
8.完成下列8421BCD码与其它数制/码制的转换。
(1)(10010011)BCD=(93)D=(01011101)B
(2)(10000010.0101)BCD=(82.5)D=(01010010.1)B
(3)(001101110110.0111)BCD=(376.7)D=(101111000.1011001)B
(4)(11010001)B=(001000001001)BCD
(5)(000110000010.0101)B=(001110000110.0011000100100101)BCD
(6)(58.5)D==(111010.1)B=(01011000.0101)BCD
9.计算下列BCD码的和,并按规则进行十进制调整。
(1)98+87
(2)48+68(3)59+84(4)456+989
答:
(1)98+87=185
个位相加和大于9,加6调整,
十位相加和产生进位,加60H调整
结果为:
185
答:
(2)48+68=116
个位相加产生进位加6调整
十位相加和大于9加60H调整
结果为:
116
答:
(3)59+84=143
个位相加和大于9,加6调整
十位相加和大于9,加60H调整
结果为:
143
答(4):
456+989=1445
个位、十位、百位相加和均大于9
个位、十位、百位均加加6调整
结果为:
1445
10.A~Z、a~z、0~9的ASCII码分别是什么?
空格、回车、换行、$、?
、+、-的ASCII码是什么?
答:
ASCII码用16进制表示
A~Z的ASCII码为:
41H-5AH;
a~z的ASCII码为:
61H-7AH;
0~9的ASCII码为:
30H-39H;
空格的ASCII码为:
20H;
回车的ASCII码为:
0DH;
换行的ASCII码为:
0AH;
“$”的ASCII码为:
24H;
“?
”的ASCII码为:
3FH;
“+”的ASCII码为:
2BH;
“-”的ASCII码为:
2DH。
11.什么是组合的BCD码?
什么是非组合的BCD码?
答:
组合的BCD码是用一个字节表示2位BCD码;
非组合的BCD码一个字节仅在低四位表示1位BCD码。
12.简述汉字的编码规则。
答:
GB2312国标字符集呈二维表,分成94行×94列,行号称为区号,列号称为位号。
每一个汉字或符号在码表中都有各自一个惟一的位置编码,该编码就是字符所在的区号(行号)及位号(列号)的二进制代码(7位区号在左、7位位号在右,共14位),也称为汉字的区位码。
因此,字符集中的任何一个图形、符号及汉字都用唯一的区位码表示。
为了不影响已经约定好的数据通信规程,将区位码的区号和位号都加32(即100000),变换成对应的国标码。
习题三
14.8086CPU读/写总线周期各包含多少个时钟周期?
什么情况下需要插入TW等待周期?
应插入多少个TW,取决于什么因素?
什么情况下会出现空闲状态TI?
答:
读写总线周期最少各包含了四个时钟周期,如果配合工作的存储器或I/O端口由于本身速度或其它原因来不及在T3时钟周期送出所需信息,则插入TW。
否则不需插入等待周期TW。
在T3周期结束后可立即进入T4周期;
当检测到READY引脚为低电平,则在T3周期结后不进入T4周期,而应插入一个TW周期。
以后在每一个TW周期的上升沿都
要检测READY引脚电平,只有检则到
READY为高电平时,才在这个TW周期
后进入T4周期。
当BIU不访问存储器和外设时,总
线时序出现空闲状态TI
15.某程序数据段中存有两个数据字
1234H和5A6BH,若已知DS=5AA0H,它们
的偏移地址分别为245AH和3245H,试画
出它们在储存器中的存放情况。
答:
它们在储存器中的存放情况见图:
16.80286CPU的结构中比8086CPU增加的部分有哪些?
其主要用途是什么?
答:
8086CPU内部有BIU和EU两个独立部件并行工作,而80286CPU内部有4个部件BU(总线单元)、IU(指令单元)、EU(执行单元)和AU(地址单元)并行工作,提高了吞吐量,加快了处理速度。
其中IU是增加的部分,该单元取出BU的预取代码队列中的指令进行译码并放入已被译码的指令队列中,这就加快了指令的执行过程。
习题四
1.8086语言指令的寻址方式有哪几类?
用哪一种寻址方式的指令执行速度最快?
答:
数据操作数的寻址方式有七种,分别为:
立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。
其中寄存器寻址的指令执行速度最快。
3.设BX=637DH,SI=2A9BH,位移量为C237H,试确定由这些寄存器和下列寻址方式产生的有效地址。
(1)直接寻址答:
有效地址为EA=C237H
(2)用BX的寄存器间接寻址答:
有效地址为EA=637DH
(3)用BX的相对寄存器间接寻址答:
有效地址为EA=125B4H
(4)基址加变址寻址答:
有效地址为EA=8E18H
(5)相对基址变址寻址答:
有效地址为EA=1504FH
其中,(3)和(5)中产生进位,要把最高位1舍去。
该段程序实现了字节数据X乘10,结果在AX中。
6.试编程实现:
(1)AL寄存器的低4位清0
(2)BL寄存器的低4位置1
(3)CL寄存器的低4位取反
(4)测试DL寄存器的最低2位是否同时为0,若是,将0送入BL寄存器;否则将1送入BL寄存器。
;①AL寄存器的低4位清0
;②BL寄存器的低4位置1
;③CL寄存器的低4位取反
;④测试DL寄存器
答:
程序段如下
ANDAL,0F0H
ORBL,0FH
XORCL,0FH
TESTDL,03H
JZNEXT
MOVBL,1
JMPNEXT1
NEXT:
MOVBL,0
NEXT1:
HLT
7.若有两个4字节的无符号数相加,这两个数分别存放在2000H和3000H开始的存储单元中,得到的和存放在2000H开始的内存单元。
试编程完成。
答:
程序段如下
MOVAX,[3000H]
ADD[2000H],AX
MOVAX,[3002H]
ADC[2002H],AX
8.设从2000H为首址的内存中,存放着10个带符号的字节数据,试编程完成:
找出其中最大的数,并存入2000H单元。
答:
程序段如下
MOVBX,2000H
MOVCX,9
MOVAL,[BX]
N2:
INCBX
CMPAL,[BX]
JGEN1
MOVAL,[BX]
N1:
LOOPN2
MOV[2000H],AL
HLT
9.用寄存器间接寻址方式时,BX、BP、SI、DI分别针对什么情况来使用?
用这4个寄存器分别组合间接寻址时,物理地址是怎样计算的?
举例说明。
答:
BX、SI、DI用于在数据段寻址,BP用于在堆栈段寻址。
在数据段物理地址为:
PA=DS×10H+BX/SI/DI
或者为:
PA=DS×10H+BX+SI或(BX+DI)
在堆栈段物理地址为:
PA=SS×10H+BP
或者为:
PA=SS×10H+BP+SI或(BP+DI)
举例如下:
MOVAX,[BX+SI];在数据段寻址,PA=DS×10H+BX+SI
MOVAX,[BP+DI];在堆栈段寻址,PA=SS×10H+BP+DI
;答:
执行完该条指令后AX=1400H
;答:
执行完该条指令后AX=0300H
;答:
执行完该条指令后AX=4C2AH
;答:
执行完该条指令后AX=3412H
10.已知:
DS=2000H,BX=0300H,SI=0002H,(20300H)=12H,(20301)=34H,(20302H)=56H,(20303H)=78H,(21400H)=2AH,(21401H)=4CH,(21402H)=B7H,(21403H)=65H试说明下列各条指令执行完后AX寄存器的内容。
(1)MOVAX,1400H
(2)MOVAX,BX
(3)MOVAX,[1400H]
(4)MOVAX,[BX]
11.根据以下要求,试写出相应的汇编语言指令。
12.已知堆栈段寄存器SS的内容是0FF0AH,堆栈指针寄存器SP的内容是0008H,先执行两条把8057H和0F7CH分别进栈的PUSH指令,再执行一条POPBX指令。
试画出堆栈区和SP的内容过程变化示意图(标出存储单元的物理地址)。
答:
将8057H和0F7CH分别进栈后,SP=0004H,再执行一条POPBX指令后,SP=0006H,
BX=0F7CH。
堆栈区和SP的内容过程变化示意图如下:
7CH
0FH
57H
80H
××H
××H
××H
7CH
0FH
57H
80H
××H
××H
××H
0FF0A0H
0FF0A1H
0FF0A2H
0FF0A3H
0FF0A4H
0FF0A5H
0FF0A6H
0FF0A7H
0FF0A8H
××H
0FF0A9H
××H
0FF0AAH
××H
13.字节扩展指令和字扩展指令用在什么场合?
举例说明。
答:
用在除法运算中,对带符号数的被除数进行扩展;
例如:
当被除数在AX中,除数在BX中时
CDW
IDIVBX
14.写出执行以下计算的指令系列。
其中X、Y、Z、R、W均为存放16位带符号数单元的地址。
(1)Z←W+(Z-X)
答:
指令系列如下
MOVAX,Z
SUBAX,X
ADDAX,W
MOVZ,AX
(2)Z←W-(X+6)-(R-9)
答:
指令系列如下
ADDX,6
SUBR,9
MOVAX,W
SUBAX,X
SUBAX,R
MOVZ,AX
(3)Z←(W×X)/(Y+6),R←余数
答:
指令系列如下
MOVAX,W
IMULX
MOVBX,Y
ADDBX,6
IDIVBX
MOVR,DX
(4)Z←((W-X)/5×Y)×2
答:
指令系列如下
MOVAX,W
SUBAX,X
CDW
IDIV5
IMULY
IMUL2
ADDDX,CF
MOVZ,AX
15.写出完成以下操作的程序段。
假设各变量的值均为用压缩BCD码表示的二位十进制数
(1)U←V+(S-6)
答:
程序如下
MOVAL,S
SUBAL,6
DAS
ADDAL,V
DAA
MOVU,AL
(2)U←(X+W)-(Z-V)
答:
程序如下
MOVAL,Z
SUBAL,V
DAS
MOVBL,AL
MOVAL,X
ADDAL,W
DAA
SUBAL,BL
DAS
MOVU,AL
16.移位指令和循环移位指令在执行操作时,有什么差别?
在编制乘除法程序中,为什么常用移位指令来代替乘除法指令?
试编制一个程序段,实现CX中的数除以4,结果仍放在CX中。
答:
逻辑移位指令用于无符号数的移位,左移时,最低位补0,右移时,最高位补0。
算术移位指令用于对带符号数的移位,左移时,最低位补0,右移时,最高位的符号在右移的同时,且保持。
小循环移位指令ROL、ROR是只对目标操作数进行循环,即不含CF的左、右移循环移位。
大循环移位指令RCL、RCR是把标志位CF也包含在循环中的左、右移循环移位。
对于二进制数,左移一位相当于乘二,右移一位相当于除二,所以可以用移位指令来代替乘除法指令。
SARCX,1;CX算术右移一位,除二
SARCX,1;CX算术右移一位,除二
17.在0628H单元处有一条二字节指令JMPSHORTOBJ,如果其中位移量为:
①27H;②6BH;③0C6H,试问转向地址处的值为多少?
答:
段内短转移的把当前的IP值(即JMP指令的下一条指令的地址)与指令指定的8位偏移量之和送到IP,使程序运行发生转移。
指令中的OBJ是一个带符号的八位偏移量。
当OBJ=27H时,转移的目标地址值为:
0651H
当OBJ=6BH时,转移的目标地址值为:
0692H
当OBJ=0C6H时,转移的目标地址值为:
05F0H
18.带参数的返回指令用在什么场合?
设栈顶地址为4000H,当执行RET0008H后,SP指针的值是多少?
答:
当调用程序为子程序提供一定的参数或参数的地址,这些参数是通过堆栈传递给子程序时;在子程序运行结束返回时,这些参数或参数地址已经没有在堆栈中保留的必要。
因此,使用带参数的返回指令RETn,以便废弃一些CALL指令执行前入栈的参数。
设栈顶地址为4000H,当执行RET0008H后,执行SP←SP+n的操作,SP=4008H。
19.假定AX和BX中内容为带符号数,CX和DX中的内容为无符号数。
请用比较指令和条件转移指令实现以下判断。
(1)若DX的内容高于CX的内容,转去执行EXCEED。
(2)若BX的内容大于AX的内容,转去执行EXCEED。
(3)若CX的内容等于零,转去执行ZERO。
(4)若BX的内容小于等于AX的内容,转去执行EXCEED。
(5)若DX的内容低于等于CX的内容,转去执行EXCEED。
答:
①CMPDX,CX
JAEXCEED
2CMPBX,AX
JGEXCEED
③CMPCX,0
JZZERO
④CMPBX,AX
JLEEXCEED
⑤CMPDX,CX
JBEEXCEED
20.分析下列程序段:
ADDAX,BX
JNOL1
JNCL2
SUBAX,BX
JNCL3
JNOL4
JMPSHORTL5
如果AX和BX的内容(带符号数)给定如下:
AXBX
(1)B568H54B7H
(2)147BH80DCH
(3)D023H9FD0H
(4)42C8H608DH
(5)B568H94B7H
问该程序执行完后,程序转向哪里?
答:
①AX+BX没有产生溢出,程序转向L1
②AX+BX没有产生溢出,程序转向L1
③AX+BX产生溢出,产生进位,执行减运算,产生借位,产生溢出,程序转向L5
④AX+BX产生溢出,无进位,程序转向L2
⑤AX+BX产生溢出,产生进位,执行减运算,产生借位,产生溢出,程序转向L5
21.8086/8088用什么途径来更新CS和IP的值?
答:
出栈;转移;过程调用;中断。
22.设IP=3D8FH,CS=4050H,SP=0F17CH。
当执行CALL2000:
0094H后,试指出IP、CS、SP、(SP-1)、(SP-2)、(SP-3)和(SP-4)的值。
答:
CS=2000H,IP=0094H;SP=0F78H,(SP-1)=3DH,(SP-2)=8FH,(SP-3)=40H,(SP-3)=50H
23.编写一段程序,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串,则执行NEW_LESS,否则顺序执行。
答:
设字符串OLDS位于数据段,字符串NEWS位于扩展段,程序段如下:
LEASI,OLDS;取源串首址送SI
LEADI,NEWS;取目的串首址送DI
CLD;增址比较
MOVCX,5;串长度为5
REPECMPSB;相等重复串比较
JNENEW_LESS;不相等转移
HLT;暂停
习题五
1.汇编程序和汇编语言源程序有什么区别?
两者的作用是什么?
答:
汇编程序是对汇编源程序进行编译的系统程序;汇编源程序是编程人员利用汇编语言为解决某些问题而编写的程序。
汇编程序用来对汇编源程序进行编译,从而产生目标代码的;而汇编源程序是用来执行程序动作的语句。
2.汇编语言源程序的语句有哪几种?
各自的作用是什么?
答:
汇编语言源程序是由指令语句、伪指令语句、宏指令语句组成。
指令语句:
产生目标代码,是CPU可以执行的能够完成特定功能的语句。
伪指令语句:
在汇编程序对源程序汇编期间由汇编程序处理的操作,它可以完成如处理器选择、定义数据、分配存储区、指示程序结束等功能,但不产生目标代码。
宏指令语句:
宏指令语句的目的在于简化汇编语言源程序的书写,不能缩小目标代码文件。
3.标号和变量都有什么属性?
各属性的作用是什么?
答:
有段属性、偏移地址属性和类型属性。
①段属性:
段属性定义了标号和变量的段起始地址,其值是在某一段寄存器中。
②偏移地址属性:
该属性表示标号和变量相距段起始地址的字节数,是一个16位无符号数。
③类型属性:
对于标号而言:
用于指出该标号是在本段内引用还是在其它段中引用。
标号的类型有NEAR(段内引用)和FAR(段间引用)两种;对变量而言:
其类型属性由定义变量的伪指令DB(定义字节型)、DW(定义字型)、DD(定义双字型)等确定。
4.试叙述汇编语言源程序的上机过程。
答:
分四步进行①编辑、②汇编、③连接、④调试。
编辑:
用编辑程序(例如EDIT.COM)建立扩展名为.ASM的汇编语言源程序文件。
汇编:
用汇编程序(例如MASM.EXE)将汇编语言源程序文件汇编成目标程序文件,其扩展名为.OBJ。
如果在汇编过程中出现语法错误,根据错误信息提示(如错误位置、错误类型、错误说明),用编辑软件重新调入源程序文件进行修改,直至没有出现语法错误,再进行连接程序。
连接:
用连接程序(例如LINK.EXE)把目标程序文件转化成可执行文件,其扩展名为.EXE。
调试:
用调试程(例如DEBUG.EXE)序对可执行文件进行调试,直到无错误为止。
此时的可执行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 应用 习题 答案