微机原理习题解答.docx
- 文档编号:12875027
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:60
- 大小:43.04KB
微机原理习题解答.docx
《微机原理习题解答.docx》由会员分享,可在线阅读,更多相关《微机原理习题解答.docx(60页珍藏版)》请在冰豆网上搜索。
微机原理习题解答
第1章汇编语言基础知识习题解答
1.1什么是汇编语言?
汇编语言的特点是什么?
;
答:
为了克服机器语言难以记忆、表达和阅读的缺点,人们采用具有一定含义的符号作为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令(或汇编指令)。
汇编语言是汇编指令集、伪指令集和使用它们规则的统称。
汇编语言的特点是:
(1)执行速度快。
(2)程序短小。
(3)可以直接控制硬件。
(4)可以方便地编译。
(5)辅助计算机工作者掌握计算机体系结构。
(6)程序编制耗时,可读性差。
(7)程序可移植性差。
1.2把下列十进制数转换成二进制数、八进制数、十六进制数。
①127②1021③0.875④6.25
答:
①1111111B;177Q;7FH②1111111101;1775Q;3FDH
③0.111B;0.7Q;0.EH④110.01B;6.2Q;6.4H
1.3把下列二进制数转换成十进制数。
①1001.11②101011.10011③111.011④1011.1
答:
①9.75D②43.59375D③7.375D④11.5D
1.4把下列八进制数转换成十进制数。
①573.06②75.23③431.7④123.45
答:
①379.09375D②61.296875D③281.875④83.578125
1.5把下列十六进制数转换成十进制数。
①0D5.F4②8BA.7C③0B2E.3A④6EC.2D
答:
①213.953125D②2234.484375③2862.2265625④1772.17578125
1.6把下列英文单词转换成ASCII编码的字符串。
①Upper②Blow③Computer④What
答:
①55H,70H,70H,65H,72H②53H,6CH,6FH,77H
③43H,6FH,6DH,70H,75H,74H,65H,72H④57H,68H,61H,74H
1.7求下列带符号十进制数的8位基2码补码。
①+127②−2③−128④+2
答:
①01111111B②11111110B③10000000B④00000010B
1.8求下列带符号十进制数的16位基2码补码。
①+628②−9③−1234④+3249
答:
10000001001110100B②1111111111110111B
③1111101100101110B④110010110001B
1.9下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
①68+(―53)②68―53③68―(―53)④(―68)―53
答:
①0FH②0FH③0A1H④87H
1.10汉字在输入、存储、输出过程中所使用的汉字编码是否一样?
使用的是什么编码?
答:
在汉字的输入、存储、输出过程中所使用的汉字编码是不一样的,输入时有输入编码,存储时有汉字机内码,输出时有汉字字形码。
第2章IBM-PC系统结构习题解答
2.1什么是微型计算机?
微型计算机主要由哪几部分组成?
其主要功能是什么?
答:
微型计算机是指以大规模、超大规模集成电路为主要部件,以集成了计算机主要部件——控制器和运算器的微处理器为核心所构造出的计算机系统。
微型计算机主要由微处理器、存储器、系统总线、I/O接口电路和I/O设备组成。
微处理器用来执行程序指令,完成所有的算术和逻辑运算及全机的控制工作;存储器用来存放程序和数据;系统总线是计算机各功能部件之间进行信息传输的通道;I/O设备是指微型计算机配备的输入输出设备,也称外围设备(简称外设),用来提供具体的输入输出手段。
2.28086/8088CPU由哪两部分组成?
它们的主要功能是什么?
答:
8086/8088CPU由总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)两部分组成。
总线接口部件BIU是8086与系统总线的接口,负责CPU与存储器、I/O端口传送数据;执行部件EU负责指令的执行和数据的运算。
2.38086/8088CPU有哪些寄存器?
各有什么用途?
答:
8086/8088内部的寄存器可分为通用寄存器、专用寄存器和段寄存器。
8086/8088有8个16位的通用寄存器,包括4个数据寄存器(AX、BX、CX、DX)、2个变址寄存器(SI和DI)和2个指针寄存器(BP和SP)。
它们均可以用于保存算术逻辑运算中的操作数和运算结果,但每个寄存器又有各自规定的专门用途。
AX通常称为累加器(Accumulator),用于算术运算、逻辑运算以及与外设传送信息等,它是汇编编程中使用频率最高的一个寄存器。
BX称为基址寄存器(BaseAddressRegister),常用来存放存储器地址。
CX称为计数寄存器(CountRegister),常用来保存计数值。
DX称为数据寄存器(DataRegister),常用来存放双字长数据的高16位,也用于存放I/O的端口地址。
SI称为源变址(SourceIndex)寄存器,DI称为目的变址(DestinationIndex)寄存器,主要用于存储器寻址方式时提供偏移地址。
SI和DI一般与数据段寄存器DS联用,用来确定数据段中某存储单元的地址。
在串操作指令中,还有专用的用法:
SI和数据段寄存器DS联用,DI和附加段寄存器ES联用,分别用来寻址数据段中的源操作数和附加段的目的操作数。
BP称为基址指针(BasePointer)寄存器,SP称为堆栈指针(StackPointer)寄存器,它们主要用于指向堆栈段中的存储单元。
BP与堆栈段寄存器SS联用,用来确定堆栈段中某存储单元的地址,BP主要用于给出堆栈中基地址,用它可直接存取堆栈中的数据;SP与堆栈段寄存器SS联用,用来确定堆栈段中栈顶的地址,SP保存堆栈栈顶的偏移地址,用它只可访问栈顶。
IP(InstructionPointer)为指令指针寄存器,用来存将要执行的指令在代码段中的偏移地址。
它和代码段寄存器CS一起可以确定下一条的指令的物理地址。
标志寄存器FLAGS也被称为程序状态寄存器PSW,用来存放状态标志和控制标志的寄存器。
8086/8088有4个16位段寄存器,分别为代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES。
段寄存器是根据内存分段的管理模式而设置的,专门用于存放段地址。
CS(CodeSegmentRegister)称为代码段寄存器,用来存放代码段的段地址;DS(DataSegmentRegister)称为数据段寄存器,用来存放数据段的段地址;ES(ExtraSegmentRegister)称为附加段寄存器,用来存放附加段的段地址;SS(StackSegmentRegister)称为堆栈段寄存器,用来存放堆栈段的段地址。
2.48086/8088CPU哪些寄存器可以用来指示存储器地址?
答:
BX、SI、DI、BP、SP、IP、CS、DS、ES、SS。
2.5标志寄存器中有哪些状态标志和控制标志?
它们每一位所表示的含义是什么?
答:
标志寄存器中有6个状态标志(CF、PF、AF、ZF、SF、OF)和3个控制标志(TF、IF、DF)。
状态标志用来记录程序运行结果的状态信息,它们是根据有关指令的执行结果由CPU自动设置的,常用作条件转移指令的转移控制条件。
CF(CarryFlag)进位标志,主要用来反映运算是否产生进位或借位,如果运算结果的最高位有效位产生进位或借位时,进位标志置1,即CF=1,否则置0。
PF(ParityFlag)奇偶标志,用于反映运算结果中“1”的个数的奇偶性,当运算结果最低字节中“1”的个数为零或偶数时,PF=1,否则PF=0。
AF(AuxiliarycarryFalg)辅助进位标志,记录运算时第3位(低半字节)产生的进位值,辅助进位标志一般在BCD码运算中作为是否进行十进制调整的判断依据。
ZF(ZeroFlag)零标志,用来反映运算结果是否为0,运算结果为0时ZF位置1,否则置0。
SF(SignFlag)符号标志,记录运算结果的符号,它与运算结果的最高位相同,结果为负时置1,否则置0。
OF(OverflowFlag)溢出标志,用于反映有符号数运算结果是否溢出,在运算过程中,如操作数超出了机器能表示的范围,则称为溢出,此时OF位置1,否则置0。
控制标志用于控制处理器的操作,可根据需要用指令设置。
TF(TrapFlag)追踪标志,也称单步标志,当追踪标志TF为1时,CPU进入单步方式即CPU每执行一条指令后,产生一个单步中断,通常用于程序的调试;当追踪标志TF为0时,处理器正常工作。
IF(InterruptFlag)中断标志,当IF=1时,CPU可以响应可屏蔽中断请求;当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。
DF(DirectionFlag)方向标志,用于在串处理指令中控制地址的变化方向,当DF位为1时,每次操作后变址寄存器SI和DI自动减少,串处理从高地址向低地址方向处理;当DF为0时,则使SI和DI自动增加,使串处理从低地址向高地址方向处理。
2.6有两个16位数3A4BH和10EFH分别存放在2000H和2004H存储单元中,请用图表示出它们在存储器里的存放情况。
答:
2000H
4BH
2001H
3AH
2002H
2003H
2004H
EFH
2005H
10H
2.7一个存储单元的物理地址、段地址、偏移地址三者之间有何关系?
答:
20位的物理地址由16位的段地址和16位的段内偏移地址组成。
物理地址PA(PhysicalAddress)的计算方法如下:
物理地址PA=段地址×10H+偏移地址
2.8在DEBUG程序中,一条指令语句表示为2000:
0030MOVAL,8。
请问:
段地址、偏移地址和物理地址分别为多少?
存放段地址和偏移地址的寄存器是哪两个?
答:
段地址:
2000H。
偏移地址:
0030H。
物理地址:
20030H。
存放段地址的寄存器是CS。
存放偏移地址的寄存器是IP。
第3章8086/8088寻址方式和指令系统习题解答
一、填空
3.1指出下列指令源操作数的寻址方式:
MOVAX,ARRAY[SI];
MOVAX,ES:
[BX];
MOVAX,[100];
MOVAX,[BX+DI];
MOVAX,BX;
MOVAX,2000H;
MOVAX,ARRAY[BX][SI];
MOVAX,[DI+20H];
答:
寄存器相对寻址;寄存器间接寻址;直接寻址;基址变址寻址;寄存器寻址;立即数寻址;相对基址变址寻址;寄存器相对寻址。
3.2假设(SP)=100H,(SS)=1000H,执行PUSHBP指令后,栈顶的物理地址是。
答:
10102H
3.3段地址和偏移地址为3FFFH:
1234H,它的物理地址是,段地址和偏移地址为1000H:
000FH,它的物理地址是。
答:
41224H,1000FH
3.4若要测试AL寄存器中操作数的第0,3,4,7位是否均为0,然后根据测试结果实现条件转移,可使用指令,以产生转移条件。
这条指令执行后将影响的标志位是。
答:
TESTAL,0A9H;SF,ZF,PF
3.5现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H,下列指令执行后AX寄存器的内容:
MOVAX,1200H;(AX)=
MOVAX,BX;(AX)=
MOVAX,[1200H];(AX)=
MOVAX,[BX];(AX)=
MOVAX,1100H[BX];(AX)=
MOVAX,[BX][SI];(AX)=
MOVAX,1100H[BX+SI];(AX)=
答:
1200H,0100H,4C2AH,3412H,4C2AH,7856H,65B7H
3.6设(BX)=101H,(DS)=2100H,(CS)=1900H,内存中(21101H)=0C7H,(21102H)=0FFH,(21103H)=00H,(21104H)=0F0H,执行如下指令后CS和IP寄存器的值是多少?
JMPBX;(CS)=,(IP)=
JMP[BX];(CS)=,(IP)=
JMPWORDPTR[BX+1];(CS)=,(IP)=
JMPDWORDPTR[BX];(CS)=,(IP)=
答:
1900H,0101H;1900H,0FFC7H;1900H,0FFH;0F000H,FFC7H
3.7试根据以下要求写出相应的汇编语言指令。
⑴把BX寄存器和DX寄存器内容相加,结果存入DX寄存器中,汇编语言指令:
;
⑵用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。
汇编语言指令:
;
⑶用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器内容相加,并把结果送回到存储器中。
汇编语言指令:
;
⑷用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回存储单元中。
汇编语言指令:
;
⑸把数0B5H与AL寄存器内容相加,并把结果送回AL寄存器中。
汇编语言指令:
;
答:
(1)ADDDX,BX
(2)ADDAL,BYTEPTR[BX][SI](3)ADD[BX+0B2H],CX
(4)ADD[0524H],2A59H(5)ADDAL,0B5H
3.8指令SAR可用来除2,而指令SHR可用来除2。
答:
带符号数,无符号数
3.9条件转移指令的目标地址应在本条指令的下一条指令的个字节范围内。
答:
2
3.10执行指令XORAX,AX的含义是。
答:
将AX清零
3.11一个有16个字的数据区,它的起始地址为70A0H:
DDF6H,那么该数据区的最后一个字单元的物理地址为H。
答:
7E814H
3.12串处理指令规定源寄存器使用,源串在段中;目的寄存器使用,目的串必须在段中。
答:
SI,数据段,DI,附加段
3.13执行加法指令时,如果两个操作数的符号相同,而结果的符号与之相反,则OF=
;执行减法指令时,如果两个操作数的符号相反,而结果的符号与减数相同,则OF=。
答:
1,1
3.14数据串传送指令执行前应做、、、
四项准备工作。
答:
置源串首地址、置目的串首地址、置串长、置方向标志
二、选择题(可多选)
3.15基址寄存器的内容、变址寄存器的内容以及指令中指定的位移量三者之和作为操作数的有效地址,它的寻址方式是。
A、直接寻址方式B、寄存器相对寻址方式
C、基址变址寻址方式D、相对基址变址寻址方式
3.16完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是。
A、MOVAL,00HB、ANDAL,00HC、XORAL,ALD、SUBAL,AL
3.17指令TESTAL,02H的含义是。
A、测试AL是否等于02HB、测试AL第二位的状态
C、测试AL第一位的状态D、将AL的第一位和02单元的各位进行测试
3.188086CPU在执行8位有符号数运算后,产生溢出是结果超出了。
A、0~255B、+128~-128C、+255~-256D、+127~-128
3.19不能改变8086程序计数指针IP的指令是。
A、RETB、PUSHAXC、CALLD、JBE
3.20不影响8086堆栈指针SP值的指令是。
A、JMPB、PUSHAXC、POPCXD、INT21H
3.218086中执行指令RET04H表示。
A、返回到04H单元B、作段间返回
C、返回到当前地址后第4个单元D、完成RET指令后SP加4
3.22下列不正确的指令是(DATA已定义)。
A、MOV4[DI],02HB、MOVBYTEPTR4[DI],02H
C、MOV4[DI],ALD、MOVDATA[DI],02H
3.23假设V1和V2是用DW定义的变量,下列指令中正确的是。
A、MOVV1,20HB、MOVV1,V2
C、MOVAL,V1D、MOV2000H,V2
3.24下列哪条指令不合法?
A、INTAX,0278HB、RORDX,CLC、CMPSBD、RET4
3.25下列指令中,有语法错误的是。
A、MOV[SI],[DI]B、INAL,DX
C、JMPWPRDPTR[BX]D、PUSHWORDPTR20[BX+SI-2]
3.26下列4条指令中,是错误的。
A、MOVDS,2000HB、ADDDX,[BP]
C、MOVAX,200D、MOVAX,ARRAY[SI+2]
3.27运算型指令的寻址和转移型指令的寻址,其不同点在于。
A、前者取操作数,后者决定程序的转移地址
B、后者取操作数,前者决定转移地址
C、两者都是取操作数
D、两者都是决定程序的转移地址
3.28下列指令中操作数在代码段中的是。
A、MOVAL,25HB、ADDBH,ALC、INCDS:
[25H]D、CMPAL,BL
3.29设(BL)=5,要使结果(BL)=0AH,应执行指令是。
A、ANDBL,0FHB、NOTBLC、XORBL,0FHD、ORBL,0FH
3.30指令JMPDWORDPTR[BX][SI]属于寻址。
A、寄存器间接寻址B、相对基址变址寻址
C、段内转移直接寻址D、段间转移间接寻址
3.31在下列指令中,指令的执行会影响条件码的CF位。
A、JMPNEXTB、JCNEXTC、INCBXD、SHLAX,1
3.32将累加器AX的内容清零的正确指令是。
A、ORAX,0B、XORAX,AXC、TESTAX,AXD、CMPAX,AX
答:
3.15D
3.16A
3.17C
3.18D
3.19B
3.20A
3.21D
3.22A
3.23A
3.24C
3.25A
3.26A立即数不允许直接送入段寄存器
3.27A
3.28A
3.29C
3.30D
3.31D
3.32B
三、简答题
3.33PUSH和POP指令有什么特点?
答:
这两条指令都不影响标志位,而且由于堆栈操作必需以字为单位,所以它们只能做字操作,不能使用立即寻址方式。
3.34算术移位指令和逻辑移位指令有什么不同?
答:
移位指令常用于乘2除2操作。
其中,算术移位用于带符号数;逻辑移位用于无符号数。
3.35串处理指令有什么特殊规定?
简述REPZCMPSB指令的执行过程。
答:
源串必须在数据段中,目的串必须在附加段中,串处理指令隐含的寻址方式是SI和DI寄存器的间接寻址方式。
源串允许使用段跨越前缀来指定段。
REPZCMPSB指令对两个字节型字符串比较,找到第一个不相等的字节结束。
3.36完成下列操作,选用什么指令?
⑴将AX的内容减去0520H和上次运算的借位;
⑵将变量名TABL的段地址送AX;
答:
(1)sbbax,0520H
(2)movax,segtabl
3.37条件转移指令和无条件转移指令有什么不同?
答:
条件转移指令只能实现偏移量为-128至+127字节范围的转移;无条件转移指令根据寻址方式可实现短转移(偏移量为-128至+127字节),段内转移,段间转移。
第4章8086/8088汇编语言(格式)习题解答
一、填空题
答:
4.1 有关操作数的伪指令中,算术运算符有+、-、*、/和MOD,逻辑运算符有AND、OR、XOR和NOT,关系操作符有EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于),数值运算符有TYPE、LENGTH、SIZE、OFFSET、SEG,属性操作符PTR、THIS、段属性前缀、SHORT、HIGH和LOW。
4.2 下列两个语句的区别在于X1不可以重复定义,X2可以重复定义。
X1EQU1000H
X2=1000H
4.3假设(DS)=3000H
ORG3100H
TABLEDB10,3*4,10H
ADDRESSDDTABLE
ARRAYDW2DUP(675AH,?
)
写出下列各单元的内容。
(3100H)= 0AH (3101H)= 0CH (3102H)= 10H
(3103H)= 00H (3104H)= 01H (3105H)= 00H
(3106H)= 31H (3107H)= 5AH (3108H)= 67H
(3109H)= 00H (310AH)= 00H (310BH)= 5AH
(310CH)= 67H (310DH)= 00H (310EH)= 00H
4.4对于下面的数据定义,各条MOV指令单独执行后,请写出相关寄存器的内容。
FLDBDB?
TABLEADW20DUP(?
)
TABLEBDB'ABCD'
(1)MOVAX,TYPEFLDB;(AX)=1
(2)MOVAX,TYPETABLEA;(AX)=2
(3)MOVCX,LENGTHTABLEA;(CX)=20
(4)MOVDX,SIZETABLEA;(DX)=40
(5)MOVCX,LENGTHTABLEB;(CX)=1
4.5设X1、X2是两个已经赋值的变量,指令ANDAX,X1ANDX2中,两个AND的区别是
第一个AND是逻辑与指令、第二个AND是逻辑与运算符。
4.6对于指令MOVBX,((XLT10H)AND40H)OR((XGE10H)AND50H),当X<10H时,汇编结果为MOVBX, 40H ,否则汇编结果为MOVBX, 50H 。
4.7数据定义语句
BUF1DW?
BUF2EQUBYTEPTRBUF1
当汇编后,PTR类型操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 习题 解答