汇编语言习题测验题答案.docx
《汇编语言习题测验题答案.docx》由会员分享,可在线阅读,更多相关《汇编语言习题测验题答案.docx(87页珍藏版)》请在冰豆网上搜索。
汇编语言习题测验题答案
汇编语言各章习题、测试题答案
习题一
分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数
0111011100101111
十六进制运算
1A52H+4438H3967H-2D81H37H×12H1250H×4H
将十进制数变为8位补码并做运算(结果用二进制、十六进制、十进制表示)
29+5373-24-66+82-102-15
用压缩BCD码计算(结果用二进制、BCD码、十进制表示)
29+5373-2466+18132+75
符号位扩展(字节扩展为字,字扩展为双字)
20A3H94H3456H7FHEC00H
若机器字长为16位,其无符号数表示范围是多少带符号数表示范围是多少分别用十进制和十六进制表示。
写出下列十六进制数所能代表的数值或编码:
(1)38H
(2)FFH(3)5AH(4)0DH
将下列十进制数分别转换为二进制、十六进制、二进制补码、压缩BCD码和ASCII码:
(1)108
(2)46(3)-15(4)254
写出下列算式的8位二进制运算结果,标志位CF、SF、ZF、OF分别是什么值
(1)56+63
(2)83-45(3)-74+29(4)-12-37
查表,指出ASCII码0DH、0AH、07H、1BH、20H、60H、50H、70H对应的控制字符。
测验一
单选题:
1.已知X=76,则[X]补=。
A.76HB.4CH
2.已知[X]补=80H,则X=。
A.80HB.0C.0FFHD.-80H
3.已知[X]补=98H,则[X]补/2=。
A.0CCHC.49HD.31H
4.已知X=78,Y=-83,则[X+Y]补=。
A.0F5HB.0A1HC.0FBHD.65H
5.将124转换成十六进制数的结果是
A.7CHB.7DHC.7EHD.7BH
6.将93H看成一个压缩BCD码,其结果是
A.B.C.D.
7.45转换成二进制数是
A.C.00101101D.
8.6CH转换成十进制数是
A.118B.108C.48D.68
9.将93H扩展为字的结果是
A.FF93HB.0093HC.1193HD.1093H
10.56的压缩BCD码是
A.38HB.56HC.0506HD.3536H
11.ASCII中的47H表示的字符是
A.“7”B.“G”C.“g”D.“E”
12.十进制数-128的8位二进制数的补码为
A.B.01111111C.D.
13.下列为补码表示,其中真值最大的是
A.B.
14.十六进制数88H,可表示成下面几种形式,请找出错误的表示
A.无符号十进制数136B.带符号十进制数-120
C.压缩BCD码十进制数88D.8位二进制数-8的补码
15.计算机对字符、符号采用统一的二进制编码。
其编码采用的是
A.BCD码B.二进制码D.十六进制码
第一章参考答案
习题一答案:
无符号数:
=211=D3H,01110111=119=77H,=131=83H,
00101111=47=2FH,=170=AAH
带符号数:
=-45=D3H,01110111=+119=77H,=-125=83H,
00101111=+47=2FH,=-86=AAH
5E8AH,0BE6H,3DEH,4940H
00011101+00110101=01010010=52H=82
01001001+=00110001=31H=49
+01010010=00010000=10H=16
+==8BH=-117
00101001+01010011=01111100+00000110==82H=82
01110011-00100100=01001111-00000110=01001001=49H=49
01100110+00011000=01111110+00000110==84H=84
00000000+01110101=00000001+00000110
=00000011=0207H=207
000020A3H,FF94H,00003456H,007FH,FFFFEC00H
无符号数:
0~65535,0000H~FFFFH;带符号数:
-32768~+32767,8000H~7FFFH
(1)38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码
(2)FFH等于十进制数-1,是带符号数-1的补码,无符号数为255
(3)5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码
(4)0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码
(1)108=01101100B=6CH,补码01101100B,压缩BCD码00000000,ASCII码313038H
(2)46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H
(3)–15=B=F1H,补码B,ASCII码2D3135H
(4)254=00000000B=00FEH,补码00000000B,压缩BCD码00000000,ASCII码323534H
(1)56+63=01110111B,CF=0,SF=0,ZF=0,OF=0
(2)83-45=00100110B,CF=0,SF=0,ZF=0,OF=0
(3)-74+29=B,CF=0,SF=1,ZF=0,OF=0
(4)-92-37=01111111B,CF=1,SF=0,ZF=0,OF=1
回车、换行、响铃、ESC键、空格键、@、P、p
测验一答案:
1~5BDACA6~10BCBAB11~15BCDDC
习题二
写出冯·诺依曼计算机的基本特点。
如何解决内存速度与CPU速度不匹配问题。
计算机总线的分类与作用。
简述8086CPU寄存器的分组及各自的作用。
标志寄存器中都有哪些标志位与计算结果有关
简述逻辑地址与物理地址的概念,两者的关系。
存储器为什么要分段如何分段。
8086系统把存储器分为哪四种类型的段各自的特点是什么。
8086CPU的地址线为20根,寻址空间为1MB。
最少可划分为多少个逻辑段最多呢
在四种类型的段中通常使用哪些寄存器表示逻辑地址
字节单元和字单元如何区分若给出一个地址,如何知道要访问的是字节单元还是字单元
偶地址单元和奇地址单元在保存数据上有区别吗
有一个32K字节的存储区,首地址是3302:
5AC8H,写出其首单元和末单元的物理地址。
什么是有效地址如何获得有效地址。
存储单元地址和内容表示如下,请画出存储单元存放形式。
(1)(1280AH)=3456H
(2)(20021H)=4DH(3)(33450H)=37A520D1H
根据逻辑地址计算出物理地址,并解释逻辑地址与物理地址的对应关系。
(1)2389:
3DE9H
(2)1230:
EC92H(3)14D9:
C202H
给出段地址和偏移地址如下,计算出对应的物理地址。
(CS)=54C3H,(ES)=2569H,(DS)=1200H,(SS)=4422H,
(BX)=5678H,(SP)=9945H,(IP)=0E54H,(DI)=63B1H
已知堆栈区大小为512字节,栈底单元的物理地址为15230H。
将两个字入栈保存后,当前栈指针所指单元的物理地址是多少堆栈区中还能保存多少个数据
写出修改当前数据段200H开始的数据区数据的DEBUG命令。
对当前代码段从100H开始反汇编的DEBUG命令是什么
在DEBUG下,要将寄存器CX的值修改为100H,应该执行什么命令
在DEBUG下,怎样将数据段的0号~4号字节单元填入'a'、'b'、'c'、'd'
测验二
单选题:
1.在微机系统中分析并控制指令执行的部件是。
A.寄存器B.数据寄存器C.CPUD.EU
2.在计算机的CPU中执行算术逻辑运算的部件是。
A.ALUB.PCC.ALD.AR
3.执行指令PUCHCX后堆栈指针SP自动。
A.+2B.+1C.-2D.-1
4.在标志寄存器中表示溢出的标志是。
A.AFB.CFC.OFD.SF
5.对汇编语言源程序进行翻译的程序是。
A.连接程序B.汇编程序C.编译程序D.目标程序
6.在汇编语言中,能够翻译成二进制代码的指令是。
A.汇编指令B.伪指令C.机器指令D.宏指令
7.计算机中存储信息的基本单位是一个位。
A.二进制B.八进制C.十进制D.十六进制
8.若计算机字长16位,则无符号整数的范围用十六进制表示为。
A.8000H~FFFFH~7FFFH
C.0000H~FFFFHD.0001H~FFFFH
9.在计算机中一个字节由位二进制数组成。
A.2B.4C.8D.16
10.将高级语言程序翻译成机器语言代码的实用程序是。
A.编译程序B.汇编程序C.解释程序D.目标程序
11.设物理地址(10FF0H)=10H,(10FF1H)=20H,(10FF2H)=30H,从地址10FF1H中取出一个字的内容是。
A.1020H
12.用指出下一条要执行的指令所在单元的偏移地址。
A.IPB.SPC.通用寄存器D.段寄存器
13.代码段寄存器是。
A.IPB.SPC.DSD.CS
14.某数据段存储单元的偏移地址为2200H~31FFH,则其存储空间大小是。
A.2KC.8KD.16K
15.在8086标志寄存器中,ZF=1表示。
A.结果有进位B.结果为0
C.结果溢出D.结果为负
16.两个操作数运算时,下列哪种结果会发生溢出。
A.两个负数相加,结果为负
B.两个正数相加,结果为负
C.一正一负相加,结果为负
D.两个正数相加,结果为正
17.设有一个双精度数12A034B0H,将它存入双字单元12000H,那么12003H中存放的是。
A.B0HB.34HC.A0HD.12H
18.堆栈段的逻辑地址由组成。
A.DS:
BX:
DIC.CS:
IP:
SP
19.代码段某单元的逻辑地址为3458:
2C92H,其物理地址为。
A.37212HB.36FF2HD.32C92H
20.物理地址的计算公式是。
A.段地址×10+偏移地址B.偏移地址×10+段地址
C.段地址×10H+偏移地址D.偏移地址×10H+段地址
21.在8086系统中,数据寄存器组为。
A.SI、DI、SP、BPB.AX、BX、CX、DX
C.CS、DS、ES、SSD.CF、SF、ZF、OF
22.在内存中,每一小段的大小为。
A.64KBB.16KBD.16B
23.查看用户程序中数据段10号存储单元的DEBUG命令是。
A.DDS:
AAB.DDS:
AC.DDS:
1010D.DDS:
10
24.在DEBUG下,修改寄存器AX的命令是。
A.UAXB.RAXC.RD.AAX
25.从200H开始反汇编的DEBUG命令是。
A.U200B.R200C.D200
测验二答案:
1~5CACCB6~10AACCA11~15BADBB16~20BDDAC21~25BDABA
第二章参考答案
习题二答案:
最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)
CS:
IP,DS:
BX、SI、DI,ES:
BX、SI、DI,SS:
SP、BP
字节单元保存8位数,字单元保存16位数。
根据源操作数的属性确定要访问的是字节单元还是字单元。
对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU的访存次数。
首单元的物理地址=38AE8H,末单元的物理地址=38AE8H+7FFFH=40AE7H
(1)物理地址=27679H
(2)物理地址=20F92H(3)物理地址=20F92H
(2)和(3)的物理地址是一样的。
说明逻辑地址不唯一,多个逻辑地址可对应到同一个物理单元上。
代码段CS:
IP的物理地址=55A84H堆栈段SS:
SP的物理地址=4DB65H
数据段DS:
BX的物理地址=17678H附加段ES:
DI的物理地址=2BA41H
当前栈指针所指单元的物理地址是1522CH。
堆栈区中还能保存254个字。
执行E200
执行U100
执行RCX,然后输入100
执行EDS:
0‘a’‘b’‘c’‘d’
测验二答案:
1~5CACCB6~10AACCA11~15BADBB16~20BDDAC21~25BDABA
习题三
名词解释:
零地址指令,一地址指令,二地址指令。
分别写出与数据有关的7种寻址方式并举例说明。
已知(BX)=1290H,(SI)=348AH,(DI)=2976H,(BP)=6756H,(DS)=2E92H,(ES)=4D82H,(SS)=2030H,请指出下列指令的寻址方式,并求出有效地址EA和物理地址:
MOVAX,BX
MOVAX,1290H
MOVAX,[BX]
MOVAX,DS:
[1290H]
MOVAX,[BP]
MOV[DI][BX],AX
MOVES:
[SI],AX
寄存器间接寻址方式可以使用哪些寄存器作为间址寄存器
立即寻址方式和寄存器寻址方式的操作数有物理地址吗
什么是段超越段超越前缀代表什么
请指出下列指令的错误:
MOVAX,[CX]
MOVAL,1200H
MOVAL,BX
MOV[SI][DI],AX
MOVES:
[DX],CX
MOV[AX],VALUE
MOVCOUNT,[SI]
根据题目要求,写出相应的汇编指令:
(1)把BX寄存器的值传送给AX
(2)将立即数15送入CL寄存器
(3)用BX寄存器间接寻址方式将存储单元中的字与AX寄存器的值相加,结果在AX中
(4)把AL中的字节写入用基址变址寻址的存储单元中
(5)用SI寄存器和位移量VALUE的寄存器相对寻址方式,从存储单元中读出一个字送入寄存器AX。
(6)将AX中的数与偏移地址为2000H存储单元的数相减,结果在AX中
写出用下列寻址方式将存储单元X中的第3个字取出,AX与其相加再放入Y单元的指令序列。
(1)直接寻址
(2)寄存器相对寻址(3)基址变址
在数据寻址方式中,哪种寻址方式的操作数与指令一起存放在代码段
测验三
单选题:
1.指令MOVAX,DS:
[1000H],源操作数的寻址方式是。
A.立即寻址B.直接寻址C.寄存器寻址D.基址变址寻址
2.指令MOVAX,ES:
COUNT[DI],源操作数的寻址方式是。
A.基址变址寻址B.立即寻址C.寄存器相对寻址D.相对基址变址寻址
3.指令MOVDX,COUNT[BP][DI]的执行结果是。
A.将COUNT的值传送给DX
B.将COUNT+BP+DI的值传送给DX
C.将数据段中有效地址为COUNT+BP+DI的存储单元的值传送给DX
D.将堆栈段中有效地址为COUNT+BP+DI的存储单元的值传送给DX
4.若(AX)=2530H,(BX)=18E6H,MOV[BX],AL指令正确的执行结果为。
A.BX寄存器的值为2530HB.BL寄存器的值为30H
C.18E6H单元的值为30HD.18E6H单元的值为2530H
5.若(DS)=1240H,(BX)=8936H,则MOVAX,[BX]源操作数的物理地址是。
A.1AD36HB.9B760HD.9B76H
6.若(SS)=1383H,(DS)=2378H,(SI)=492AH,则ADDAX,[SI]源操作数的物理地址是=。
A.1815AHB.5CADHC.6CA2HD.281AAH
7.若(SI)=1310H,(BX)=3213H,(DS)=3593H,则SUBDX,[BX][SI]的有效地址EA为。
A.1310HB.3213HC.4523HD.7AB6H
8.指令MOVBX,MASK[BP],若MASK=3540H,(SS)=1200H,(DS)=1300H,(BP)=1160H,那么有效地址EA为。
A.4740HB.46A0HC.4840HD.2460H
9.指令MOVAX,COUNT[BX]完成的操作是。
A.从存储单元读出一个字送入AX
B.从存储单元读出一个字节送入AX
C.将AX中的一个字写入存储单元
D.将AX中的一个字节写入存储单元
10.指令MOVDX,DELTA[BX][SI]的源操作数保存在。
A.代码段B.堆栈段C.数据段D.附加段
11.操作数地址由BX寄存器指出,则它的寻址方式是。
A.直接寻址B.寄存器寻址C.立即寻址D.寄存器间接寻址
12.指令“MOVES:
[BX],AX”中,目的操作数的寻址方式为。
A.立即数寻址B.寄存器寻址
C.存储器直接寻址D.寄存器间接寻址
13.一条指令中目的操作数不允许使用的寻址方式是。
A.寄存器寻址B.立即数寻址
C.变址寻址D.寄存器间接寻址
14.下列哪句话是错误的。
A.指令的目的操作数和源操作数可以同时使用寄存器间接寻址
B.指令的目的操作数和源操作数可以同时使用寄存器寻址
C.指令的源操作数可以使用寄存器间接寻址
D.指令的目的操作数可以使用寄存器寻址
15.用直接寻址将AL的内容保存到16号单元,可用指令。
A.MOVDS:
[0016H],ALB.MOVAL,DS:
[0016H]
C.MOVDS:
[0010H],ALD.MOVAL,DS:
[0010H]
第三章参考答案
习题三答案:
MOVAX,BX源操作数为寄存器寻址,EA无,物理地址无
MOVAX,1290H立即寻址,EA无,物理地址无
MOVAX,[BX]寄存器间接寻址,EA=1290H,物理地址=2FBB0H
MOVAX,DS:
[1290H]直接寻址,EA=1290H,物理地址=2FBB0H
MOVAX,[BP]寄存器间接寻址,EA=6756H,物理地址=26A56H
MOV[DI][BX],AX目的操作数为基址变址寻址,EA=3C06H,物理地址=32526H
MOVES:
[SI],AX寄存器间接寻址,EA=348AH,物理地址=50CAAH
MOVAX,[CX]错。
CX不能为间址寄存器
MOVAL,1200H错。
立即数超出8位寄存器范围
MOVAL,BX错。
两个操作数不匹配
MOV[SI][DI],AX错。
两个变址寄存器不能在一起
MOVES:
[DX],CX错。
DX不能为间址寄存器
MOV[AX],VALUE错。
AX不能为间址寄存器
MOVCOUNT,[SI]错。
两个操作数不能都是存储单元
(1)MOVAX,BX
(2)MOVCL,15(3)ADDAX,[BX]
(4)MOV[BX+SI],AL(5)MOVAX,VALUE[SI](6)SUBAX,DS:
[2000H]
(1)ADDAX,[X+4]
(2)MOVBX,4(3)MOVBX,4
MOVY,AXADDAX,X[BX]MOVSI,OFFSETX
MOVY,AXADDAX,[BX+SI]
MOVY,AX
立即寻址方式中操作数(立即数)和指令一起存放在代码段中。
测验三答案:
1~5BCDCA6~10DCBAC11~15DDBAC
习题四
汇编语言程序有什么特点什么是源程序
简要说明从源程序到可执行程序的操作过程。
什么是伪指令汇编指令与伪指令有何区别写出4种常用的伪指令。
8086指令系统分为哪几类举例说明算术运算类指令的用法。
在8086汇编语言中,哪些段寄存器可以用MOV指令赋值,哪些段寄存器不允许
堆栈段寄存器SS和栈指针SP可以修改吗如何修改
入栈指令PUSH和出栈指令POP可以保存字节数据吗要保存的话,如何实现
有哪些方法可以获得操作数的有效地址
解释下列伪指令的作用:
(1)ASSUMECS:
CODE,DS:
DATA
(2)ENDSTART
(3)VALUEDW12,35,-6(4)STRINGDB‘INPUT:
’
(5)MESSDB5DUP()(6)XXDDH
(7)ORG0320H(8)CONTEQU2*
根据题目,写出相关伪指令:
(1)定义数据段DATA,并在数据段中定义两个字单元X、Y,初始值都是0
(2)定义一个字符串SRING,保存’Computer’
(3)定义有100个字节单元的COUNT数组,初始值均为空
(4)用赋值伪指令定义PI为
(5)用类型操作符LABEL将VALUE单元定义为字节型
下列伪指令有错吗如果有错,请指出错误原因:
(1)X1DB35H,0,-80
(2)X2DB35,260,-1(3)X3DB1234H
(4)X4DW100(5)X5DW100()(6)X6DD‘AB’
写出下列指令的执行结果:
TABLEDB3,33,33H
(1)MOVAL,TABLE
(2)MOVAX,WORDPTRTABLE
(3)MOVDX,OFFSETTABLE
(4)MOVCL,TABLE+2
(5)MOVBX,SEGTABLE
(6)MOVBX,TYPETABLE
(7)LEADX,TABLE
写出指令序列,分别求两个双精度数20125D68H和100349A6H的相加和相减运算。
写出将DX、AX中的32位无符号数减CX中的16位无符号数,结果存放在DX、AX中的指令序列。
写出将e