微机原理与接口技术课后习题答案.docx
- 文档编号:22803398
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:139
- 大小:183.13KB
微机原理与接口技术课后习题答案.docx
《微机原理与接口技术课后习题答案.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术课后习题答案.docx(139页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术课后习题答案
.25
2.将下列二进制数、十六进制数转换成十进制数。
(1)10111010110010010
(2)100110.1101(3)0FFA9H(4)14AF.5DH
3.写出下列十进制数的原码、反码和补码(用8位二进制)。
(1)+65
(2)-65(3)+115(4)-115
4.写出下列用补码表示的二进制数的真值(即十进制数)。
(1)01101110
(2)01011001(3)10001101(4)11111001
5.当前计算机的体系结构由哪五部分组成?
6.试述微型计算机的一般结构。
7.Intel8088在功能上可以分为哪两大部分?
各有什么功能?
8.试述Intel8088所采用的取指令与执行指令重叠技术的原理及好处。
9.为什么说Intel8088是准16位的微处理器芯片?
10.Intel8088的通用寄存器有哪些?
那些寄存器可拆分为高低字节两部分使用?
11.Intel8088对存储器的寻址范围是多少?
为什么?
12.为什么Intel8088的存储器地址空间要分段?
请说明其物理地址的形成过程。
参考答案:
1.
(1)1111101.101B,175.5Q,7D.AH
(2)1000100100.11B,1044.6Q,224.CH
(3)101111000.001B,570.1Q,178.2H
(4)11111110.01B,376.2Q,FE.4H
2.
(1)95634D
(2)38.8125D(3)65449D(4)5295.36328125D
3.
(1)01000001B,01000001B,01000001B
(2)11000001B,10111110B,10111111B
(3)01110011B,01110011B,01110011B
(4)11110011B,10001100B,10001101B
4.
(1)+110D
(2)+89D(3)-115D(4)-7D
5.当前计算机的体系结构由运算器、控制器、存储器、输入设备和输出设备组成,称为冯.诺依曼体系结构。
6.微型计算机的一般结构可表示为
7.略。
8.略。
9.Intel8088微处理器的内部体系结构是16位,与外部通信采用8位数据总线,因此也称为准16位微处理器。
10.略。
11.Intel8088芯片的地址引脚有20个,对存储器的寻址范围为220=1MB。
12.8088有20根地址线,它的直接寻址范围为220=1MB(Byte,字节)。
所以在以8088组成的微机系统中,可以有1MB的内部存储器。
而8088中的寄存器都是16位的,所以16位的寄存器只能给出来16位的地址,寻址空间只能在64KB的范围内。
因此,在8088系统中,将1MB的内存分成若干个段,一个段最大64KB,最小16B(16个字节定义成一个小节),最多可有64K个段,最少16个段。
段与段之间可以部分重叠,也可以完全重叠。
物理地址的形成过程可由下式表示:
物理地址=段寄存器的内容×10H+有效地址EA
第二章8088的寻址方式与指令系统
本章的主要内容是8086/8088的寻址方式,以及常用指令的格式和功能。
2.1难点与重点
本章的学习重点是存储空间的分段管理;堆栈的结构与操作的规则;与数据有关的七种寻址方式、与转移地址有关的四种寻址方式;常用指令的格式和功能,及其对CF、OF、SF、ZF标志的影响。
主要掌握的知识点是寻址方式与指令系统。
2.1.1指令的一般格式
(1)操作码规定了指令的操作性质,用助记符表示;操作数规定了指令的操作对象。
(2)指令可分为无操作数指令、单操作数指令、双操作数指令(依次为目的操作数、源操作数)等。
(3)操作数类型有三种:
立即数——出现在指令中的常数;
寄存器操作数——操作数在寄存器中;
存储器操作数——操作数在存储器中。
(4)在双操作数指令中,目的操作数和源操作数的类型必须一致,即字节对应字节,字对应字;两个操作数不能同时使用存储器寻址方式,除源操作数为立即寻址方式外,两个操作数中其中一个必为寄存器寻址方式;目的操作数不允许使用立即寻址方式,即不允许出现立即数。
2.1.2存储空间的分段管理
(见第一章习题12参考答案)
2.1.3堆栈的结构与操作的规则
堆栈是按先进后出的的原则在内存中组织的一个存储区域。
该区域一端固定一端活动,固定端称为栈底,而活动端称为栈顶。
8086/8088系统中,堆栈位于堆栈段,段地址由SS指示,SP作为指针,始终指向栈顶所在存储单元。
堆栈有两个基本操作:
PUSH(进栈)和POP(出栈),只能作字操作。
PUSH操作使栈顶向低地址方向移动,而POP操作则刚好相反。
当前栈顶为空时,栈顶和栈底指向同一内存单元。
2.1.48088寻址方式
1.与数据有关的寻址方式
这部分寻址方式有立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式、基址变址寻址方式、相对基址变址寻址方式。
注意:
以上除了立即寻址和寄存器寻址两种方式,其他寻址方式可以归结为存储器寻址方式一,允许段跨越,以便取得存储器中其它段中的数据。
2.与转移地址有关的寻址
这种寻址方式用来确定转移指令及子程序调用指令的转向地址,分为段内直接寻址方式、段内间接寻址方式、段间直接寻址方式、段间间接寻址方式。
2.2例题解析
1.指出下列指令的错误:
(1)MOVAH,BX
(2)MOV[SI],[BX]
(3)MOVAX,[SI][DI]
(4)MOVAX,[BX][BP]
(5)MOV[BX],ES:
AX
(6)MOVBYTEPTR[BX],1000
解:
(1)源操作数和目的操作数的类型不匹配,即字长不一致。
必须字节对字节,字对字。
(2)源操作数和目的操作数不能同时为存贮器寻址方式。
(3)基址变址方式没有SI和DI的组合。
因为SI和DI都变址寄存器。
(4)BX和BP作为基址寄存器不允许组合使用。
(5)AX为16位通用数据寄存器,ES:
为段跨越前缀,指明存储器的所在段,ES:
AX为非法。
(6)源操作数和目的操作数的类型不匹配,1000超出一个字节的表示范围,而BYTEPTR[BX]表示字节存储器。
2.已知(DS)=3000H,(SS)=3001H,(BX)=100H,(BP)=0F3H,(SI)=2,内存单元的值如图所示,求下列指令执行后AX的值。
30100H
30101H
30102H
30103H
30104H
30105H
30106H
30107H
…
12H
34H
05H
06H
1AH
10H
7CH
OBH
…
(1)MOVAX,1200H
(2)MOVAX,BX
(3)MOVAX,[100H]
(4)MOVAX,[BX]
(5)MOVAX,2[BX]
(6)MOVAX,[BX][SI]
(7)MOVAX,[BP][SI]
(8)MOVAX,DS:
11H[BP][SI]
(9)MOVAX,4H[BX][SI]
解:
(1)(AX)=1200H立即寻址
(2)(AX)=0100H寄存器寻址
(3)(AX)=3412H直接寻址
源操作数物理地址=(DS)×10H+100H=30100H
(4)(AX)=3412H寄存器间接寻址
源操作数物理地址=(DS)×10H+(BX)=30100H
(5)(AX)=0605H寄存器相对寻址
源操作数物理地址=(DS)×10H+(BX)+2H=30102H
(6)(AX)=0605H基址变址寻址
源操作数物理地址=(DS)×10H+(BX)+(SI)=30102H
(7)(AX)=7C10H基址变址寻址
源操作数物理地址=(SS)×10H+(BP)+(SI)=30105H
(8)(AX)=0B7CH相对基址变址寻址(段超越)
源操作数物理地址=(DS)×10H+(BP)+(SI)+11H=30106H
(9)(AX)=0B7CH相对基址变址寻址
源操作数物理地址=(DS)×10H+(BX)+(SI)+4H=30106H
3.指出下列程序中用(.)指定的指令执行后AX、DX、CF的值,以及该程序段的功能。
movax,7856H
movdx,8234H
addax,8998H
(1)
adcdx,1234H
(2)
subax,4491H(3)
sbbdx,8000H(4)
解:
(1)AX=01EEH,CF=1
(2)DX=9469H,CF=0
(3)AX=BD5DH,CF=1
(4)DX=1468H,CF=0
功能:
作双字的加减法运算,即(DX:
AX)=82347856H+12348998H-80004491H=1468BD5DH,注意:
在作高位字的运算时,要考虑进位和借位的情况,故应用ADC或SBB指令。
4.已知(DS)=1000H,(ES)=2000H,(BX)=200H,(SI)=10H,内存单元的值如图所示。
分别给出下列各条指令执行后BX、DS、ES的值。
1000:
0210H
1000:
0211H
1000:
0212H
1000:
0213H
…
00H
41H
02H
03H
…
(1)MOVBX,[BX][SI]
(2)LEABX,[BX][SI]
(3)LDSBX,[BX][SI]
(4)LESBX,[BX][SI]
解:
(1)(BX)=4100H,(DS)=1000H,(ES)=2000H
(2)(BX)=0210H,(DS)=1000H,(ES)=2000H
(3)(BX)=4100H,(DS)=0302H,(ES)=2000H
(4)(BX)=4100H,(DS)=1000H,(ES)=0302H
5.给出下列程序实现的功能。
PUSHAX
PUSHBX
POPAX
POPBX
解:
交换AX和BX值。
6.给出下列指令执行后,AL、BL的值,以及标志位的值。
movbl,10101010b
andbl,11110110b
(1)
orbl,00001001b
(2)
xorbl,00001001b(3)
NOTBL(4)
解:
(1)BL=10100010B。
CF=OF=0,SF=1,ZF=0,PF=0,AND常用于复位某些位(同0与),不影响其他位。
(2)BL=10101011B。
CF=OF=0,SF=1,ZF=0,PF=0,OR常用于置位某些位(同1或),不影响其他位。
(3)BL=10100010B。
CF=OF=0,SF=1,ZF=0,PF=0,XOR常用于求反某些位(同1异或),不影响其他位。
(4)BL=01011101B。
标志位不变。
NOT作按位取反操作,不影响标志位。
7.编写程序段,用移位和加法实现将AL寄存器中的无符号数乘10的功能。
解:
10a=23a+2a,程序段如下:
xorah,ah;实现(AH)=0,同时使CF=0
shlax,1;(AX)←2×(AL)
movbx,ax;(BX)←(AX)=2×(AL)
shlax,1;(AX)←4×(AL)
shlax,1;(AX)←8×(AL)
addax,bx;(AX)←8×(AL)+2×(AL)=10×(AL)
8.对于AX中存放的无符号数,如果是偶数则除以2,如果是奇数则加1后除以2。
解:
下面提供判断奇偶数的两种方法
(1)
testax,01h;测试AX的最低位(不用AND指令,以免改变AX)
jzeven;标志ZF=1,即D0=0:
AX是偶数,程序转移
addax,01h;标志ZF=0,即D0=1:
AX内的奇数,加1
even:
shrax,1;AX←AX÷2
(2)
MOVBX,AX
shrbx,01h;将AX的最低位D0移进CF
jnceven;标志CF=0,即D0=0:
AX内是偶数,程序转移
addax,01h;标志CF=1,即D0=1:
AX内的奇数,加1
even:
shrax,01h;AX←AX÷2
9.用MOV和LOOP指令完成和下列指令一样的功能:
REPMOVSB(DF=0)
解:
NEXT:
MOVAL,[SI]
MOVES:
[DI],AL
INCSI
INCDI
LOOPNEXT
10.编写程序段,求1+2+…+100之和,并将结果存入AX中。
解:
XORAX,AX
MOVCX,100
AGAIN:
ADDAX,CX
LOOPAGAIN
2.3习题与参考答案
1.Intel8088的寻址方式有那几类?
每一类又有那几种?
2.Intel8088各种寻址方式是如何形成物理地址的?
3.段跨越前缀在指令中起什么作用?
4.在双操作数指令中目的操作数的寻址方式有什么限制?
5.在双操作数指令中目的操作数和源操作数的寻址方式有什么规定?
6.设当前数据段段地址寄存器的内容为1B00H,在数据段的偏移地址2000H单元中含有一个内容为0FF10H和8000H的指针,它们是一个16位变量的偏移地址和段地址,试写出把该变量装入AX的指令序列。
7.TABLE为数据段中0032H单元的符号地址,其中存放的内容为1234H,试问以下两条指令有什么区别?
指令执行完后AX寄存器的内容是什么?
MOVAX,TABLE
LEAAX,TABLE
8.知堆栈段段址寄存器SS的内容为0FFA0H,堆栈指针寄存器的内容为0080H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令。
试画出堆栈区和SP的内容变化过程示意图(标出存储单元的物理地址)。
9.现有(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,1100h[bx]
(6)movax,[bx][si]
(7)movax,1100h[bx][si]
10.写出执行以下计算的指令序列,其中X、Y、Z、R、W均为存放16位带符号数的单元地址。
(1)Z←W+(Z-X)
(2)Z←W-(X+6)-(R+6)
(3)Z←(W*X)/(Y+6)的商
R←(W*X)/(Y+6)的余
(4)Z←((W-X)/5*Y)*2
11.写出对存放在DX和AX中的双字长求补的指令序列。
12.写出完成以下操作的程序段。
假设各变量的值均为用压缩BCD码表示的二位十进制数。
(1)U←V+(S-6)
(2)U←(X+W)-(Z-V)
13.试写出将(DX:
AX)双字右移4位的程序段。
14.设(DS)=2100H,(SS)=5200H,(BX)=1400H,(BP)=6200H,说明下面两条指令所进行的具体操作:
MOVBYTEPTR[BP],20H
MOVWORDPTR[BX],2000H
15.使用堆栈操作指令要注意什么问题?
16.已知(SS)=9000H,(SP)=0E200H
则整个堆栈段物理地址范围为~,栈顶的物理地址为。
17.下面这些指令中哪些是正确的?
哪些是错误的?
若是错误的,请说明原因。
(1)XCHGCS,AX
(2)MOV[BX],[1000H]
(3)XCHGBX,IP
(4)PUSHCS
(5)POPCS
(6)INBX,DX
(7)MOVBYTEPTR[BX],1000
(8)MOVCS,[1000H]
(9)ADDAX,[SI][DI]
(10)SUB56,AL
18.指令序列为:
CMPAX,BX
J××L1
请在能引起转移到L1单元的条件转移指令下面划钩,AX、BX的内容给定如下:
AX
BX
JB
JNB
JBE
JNBE
JL
JNL
JLE
JNLE
1F52
1F52
88C9
88C9
FF82
007E
58BA
020E
FFC5
FF8B
09A0
1E97
8AEA
FC29
D367
32A6
19.假如在程序的括号中分别填入指令
(1)LOOPL20
(2)LOOPNEL20(3)LOOPEL20
试说明在三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器的内容分别是什么?
请在下列表格的空档中填入正确的内容。
指令
AX
BX
CX
DX
LOOPL20
LOOPNEL20
LOOPEL20
BEGIN:
MOVAX,01
MOVBX,02
MOVCX,03
MOVDX,04
L20:
INCAX
ADDBX,AX
SHRDX,1
()
参考答案:
1.答:
立即寻址方式
寄存器寻址方式直接寻址方式
与数据有关的寻址方式寄存器间接寻址方式
存储器寻址方式寄存器相对寻址方式
基址变址寻址方式
8088寻址方式基址变址相对寻址方式
段内直接寻址方式
段内间接寻址方式
与转移地址有关的寻址方式段间直接寻址方式
段间间接寻址方式
2.答:
具体就是以数据有关的寻址方式的物理地址的形成方式。
直接寻址方式:
物理地址=(DS)╳16D+EA
寄存器间接寻址方式:
物理地址=(DS)╳16D+(BX)|(SI)|(DI)
物理地址=(SS)╳16D+(BP)
寄存器相对寻址方式:
物理地址=(DS)╳16D+(BX)|(SI)|(DI)+8位|16位位移量
物理地址=(SS)╳16D+(BP)+8位|16位位移量
基址变址寻址方式:
物理地址=(DS)╳16D+(BX)+(SI)|(DI)
物理地址=(SS)╳16D+(BP)+(SI)|(DI)
相对基址变址寻址方式:
物理地址=(DS)╳16D+(BX)+(SI)|(DI)+8位|16位位移量
物理地址=(SS)╳16D+(BP)+(SI)|(DI)+8位|16位位移量
3.答:
在指令中段跨越前缀允许CPU访问别的数据段的数据。
4.答:
其限制有:
(1)两操作数不能同时使用存储器寻址方式;
(2)除源操作数为立即寻址方式外,两操作数中至少一个为寄存器寻址方式;
(3)目的操作数不能为立即数。
5.答:
源操作数可使用所有寻址方式,目的操作数除立即寻址方式外其他寻址方式均可使用。
另外要考虑第4题中所述的限制。
6.解:
LDSSI,[2000H]
MOVAX,[SI]
7.解:
MOVAX,TABLE;以TABLE为偏移地址的内存单元的内容送AX,指令执行完后,
;(AX)=1234H
LEAAX,TABLE;TABLE的偏移地址送AX,指令执行完后,(AX)=0032H
8.解:
SP→FFA0:
0080
SP→FFA0:
007E
SP→FFA0:
007C
79H
SP→FFA0:
007E
79H
0FH
0FH
57H
57H
57H
80H
80H
80H
初始状态PUSHPUSHPOP
9.解:
(1)1200h
(2)0100h(3)4c2ah(4)3412h(5)4c2ah(6)7856h(7)65b7h
10.解:
(1)MOVAX,Z
SUBAX,X
ADDAX,W
MOVZ,AX
(2)ADDX,6
ADDR,9
MOVAX,W
SUBAX,X
SUBAX,R
MOVZ,AX
(3)MOVAX,W
IMULX
ADDY,6
IDIVY
MOVZ,AX
MOVR,DX
(4)假定运算过程中均不超过16位。
MOVAX,W
SUBAX,X
CWD
MOVBX,5
IDIVBX
IMULY
MOVBX,2
IMULBX
MOVZ,AX
11.解:
NOTAX
NOTDX
ADDAX,1
ADCDX,0
12.解:
(1)MOVAL,S
SUBAL,6
DAS
ADDAL,V
DAA
MOVU,AL
(2)MOVAL,X
ADDAL,W
DAA
MOVBL,AL
MOVAL,Z
SUBAL,V
DAS
XCHGAL,BL
SUBAL,BL
DAS
MOVU,AL
13.解:
MOVCL,4另解:
movcx,4
SHRAX,CLagain:
shrdx,1
MOVBL,DLrcrax,1
SHRDX,CLloopagain
SHLBL,CL
ORAH,BL
14.解:
MOVBYTEPTR[BP],20H;字节操作,20H→(58200H),
MOVWORDPTR[BX],2000H;字操作,2000H→(22400H),即
;00H→(22400H),20H→(22401H)
15.答:
PUSH和POP堆栈操作指令中操作数为除立即寻址方式外的所有寻址方式,字操作。
16.解:
90000H,9E1FFH,9E200H
17.解:
(1)错。
码段段址寄存器CS不能出现在指令中。
(2)错。
双操作数指令中两操作数不能同为存储器寻址方式。
(3)错。
IP是指令指针寄存器,它的内容是下一条要取出的指令的偏移地址,不能为用户所用,故不能出现在指令中。
(4)(5)错。
原因同
(1)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 课后 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)