汇编习题含答案汇编.docx
《汇编习题含答案汇编.docx》由会员分享,可在线阅读,更多相关《汇编习题含答案汇编.docx(19页珍藏版)》请在冰点文库上搜索。
汇编习题含答案汇编
第一章基本知识
一、单项选择题
1.若十进制数为132.75,则其十六进制数为(B)
A.21.3B.84.C
C.4.6D.6
2若[X]补=11111,则其十进制真值为(C)
A.-31B.-15
C.-1D.31
3•已知X=78,Y=-83则[X+Y]补=(C)
A.0F5HB.0A1H
C.OFBHD.65H
4•已知凶补=98H,则凶补/2=(A)
A.0CCHB.4CH
C.49HD.31H
二、填空题
1.(35)10=(23)16。
2.(15)10=(1111)2。
3.
计算机的存储容量
1KB=
(1024)
Byte。
4.
计算机的存储容量
1MB=
(1024)
KB。
5.
计算机的存储容量
1GB=
(1024)
MB。
第二章
8086计算机组织
一、单项选择题
1.在微机系统中分析并控制指令执行的部件是(C)
A.寄存器B.数据寄存器
C.CPUD.EU
2.在计算机的CPU中执行算术逻辑运算的部件是(A)
A.ALUB.PC
C.ALD.AR
3.能被计算机直接识别的语言是(C)
A.C语言B.汇编语言
C.机器语言D.面向对象语言
B)。
4.8086/8088的存储器组织是将存储器划分为段,可作为段的起始地址的是(
A.185A2HB.00020H
B.01004HD.0AB568H
5.堆栈中当前出栈的存储单元地址是(A)
A.SS*10H+SPB.SS*10H+BP
C.SS*10+SPD.SS*10+BP
6.标志寄存器中属于控制标志位的是(B)
A.DF,OF,SFB.DF,IF,TF
C.OF,CF,PFD.AF,OF,SF
7.8086/8088存储器分段,每个段不超过(D)
A.64K个字B.32K个字节
C.1M个字节D.64K个字节
二、填空题
1•假设某个字的值为1234H,其低位字节地址是20H,高位字节地址是21H,那么该字的地址是20H。
2.在8086/8088控制寄存器中,IP寄存器内容始终指向下一条指令的首地
址,此时该指令物理地址计算式是CS*10H+IP_。
3.CPU的标志寄存器中标志位,可以分为两大类,其中一类成为状态标志位,
另一类称为控制标志位标志位。
4.当标志位_CF==1时候表示无符号数运算产生溢出。
而当标志位_OF=1是表
示带符号位数运算产生溢出。
3.简单题
1.实模式下写出段地址和偏移地址为1234:
2002、1430:
0042、FF00:
0FFF的物理地址。
答:
物理地址=段地址*10H+偏移地址
(1)14342H
(2)14342H
(3)FFFFFH
2.从物理地址为00100H开始到00103H单元中顺序存放的数据为12H,34H,56H,78H。
请画出数据存放示意图,并回答一下为题:
(1)写出地址00101H字节单元的内容。
(2)写出地址00102字单元内容。
答:
00100H
12H
00101H
34H
00102H
45H
00103H
78H
(1)(00101H)字节=34H
(2)(00102H)字=7845H
第三章IBMPC机的寻址方式和指令系统
一、选择题
1.MOVAX,ES:
[1000H]源操作数的寻址方式是(B)
A.立即寻址B.直接寻址
C.变址寻址D.基址寻址
2.MOVAX,ES:
COUNT[DI]源操作数的寻址方式是(C)
A.基址寻址B.立即寻址
C.变址寻址D.基址变址寻址
3.MOVDX,COUNT[BP][DI]的源操作数的寻址方式是(D)
A.变址寻址B.基址寻址
C.直接寻址D.基址变址寻址
4.下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(B)
A.AX,BX,CX,DXB.BX,BP,SI,DI
C.SP,IP,BP,DXD.CS,DS,ES,SS
5.下列四组寄存器中,属于通用寄存器的是(A)
A.AX,BX,CX,DX
B.SP,BP,IP
C.SI,DI,FLAGS
D.上属三者都是
6.指令指针寄存器是(A)
A.IP
C.BP
7.指令MOV址为(B)
B.SP
DBX
BX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地
A.17500H
B.16500H
C.14500H
8.指令MOV
物理地址为(
A.17400H
C.15400H
D.13500H
AX,COUNT[BX],若COUNT=0400H,SS=1200H,DS=1000H,BX=5000H,那么
C)
B.17000H
D.14500H
9.8086/8088系统中,存储器是分段组织的,存储器物理地址计算式是(B)
A.段地址+偏移地址B.段地址*10H+偏移地址
C.段地址*16H+偏移地址D.段地址+10H*偏移地址
10.当程序顺序执行时,每取一条指令语句,IP指针增加的值是(D)。
A.1B.2
C
.3D.由指令长度决定的
11.
下列属于合法的指令是(
D)
A.
MOVDS,ESB.MOV
[SI],
[DI]
C.
MOVAX,BLD.
MOV
[DI],BL
12.
下列传送指令中有语法错误的是
(A)。
A.MOVCS,AXB.MOVDS,AX
C.MOVSS,AXD.MOVES,AX
13•当执行指令ADDAX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是(D)
A•表示结果中含1的个数为偶数
B.表示结果中含1的个数为奇数
C.表示该数为偶数
D.表示结果中低八位含1的个数为偶数
14.下面指令执行后,改变AL寄存器内容的指令是(D)。
A.TESTAL,02HB.ORAL,AL
C.CMPAL,BLD.ANDAL,BL
15.与MOVBX,OFFSETVAR指令完全等效的指令是(D)。
A.MOVBX,VARB.LDSBX,VAR
C.LESBX,VARD.LEABX,VAR
16.将DX的内容除以2,正确的指令是(C)。
A.DIV2B.DIVDX,2C.SARDX,1D.SHLDX,1
17.下列数值表达式和地址表达式中,错误的是(D)。
A.MOVAL,8*14+4B.MOVSI,OFFSETBUF+13
C.MOVCX,NUM2-NUM1D.MOVCX,NUM2+NUM1
18.为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是(C)。
B.
A.NCCXJZMINUS
SUBCX,OFFFFHJZMINUS
C.
JZMINUS
ANDCX,OFFFFHJZMINUSD.XORCX,OFFFFH
19•完成对CL寄存器的内容乘以4的正确操作是(C)
A.ROLCL,1
B.MUL4ROLCL,1
C.SHLCL,1SHLCL,1
D.MOVCL,2SHLCL,CL
20.在下列串操作指令中,同时使用源串和目的串地址指针的指令是(D)
A.STOSWB.LODSWC.SCASWD.CMPSW
21.AL=0AH,下列指令执行后能使AL=05H的是(C)
A.NOTALB.ANDAL,0FH
C.XORAL,0FHD.ORAL,0FH
22.下面指令执行后,改变AL寄存器内容的指令是(D)。
A、TESTAL,02HB、ORAL,AL
C、CMPAL,BLD、ANDAL,BL
23.堆栈指针SP的内容是(B)
A.栈顶单元内容B.栈顶单元地址
C.栈底单元内容D.栈底单元地址
24.执行指令PUCHCX后堆栈指针SP自动(C)
A.+1B.不操作
D.-1
C.-2
25.指令ADDES:
[DI],AX和存放在(B)
A.寄存器B.附加段
C.堆栈段D.代码段
26.将DX的内容除以2,正确的指令是(C)。
A.DIV2B.DIVDX,2C.SARDX,1D.SHLDX,1
27.
下列数值表达式和地址表达式中,错误的是(D)。
28.为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是(C)。
B.
A.INCCXJZMINUS
SUBCX,OFFFFHJZMINUS
C.ANDCX,OFFFFHJZMINUSD.XORCX,OFFFFHJZMINUS
29.在下列串操作指令中,同时使用源串和目的串地址指针的指令是(D)
A.STOSWB.LODSWC.SCASWD.CMPSW
30.下面指令中,合理而有意义的指令是(D)。
A.REPLODSBB.REPSCASBC.REPCMPSBD.REPMOVSB
二、填空题
1.若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOVAX,(SI+COUNT)中,源操作数的有效地址EA为___20A8H,其物理地址为_11488H。
2.如JMP指令采用段间间接寻址,那么由4个相邻字节单元中存放有转移地址,其中前两
个字节存放的是IP,而后两个字节存放的是CS。
个字节存放的是IP,而后两个字节存放的是CS。
6.已知
AX=0FF60H,CF=1
MOVDX,96
XORDH,0FFH
SBBAX,DX
执行上述指令序列后,AX=0,CF=0。
7.设寄存器AL,BL,CL中内容均为76H,
XORAL,0FH
ANDBL,0FH
ORCL,0FH
执行上述指令序列后,AL=79H___,BL=__06H___CL=_7FH___。
8.已知
AX=0A33AH,DX=0F0F0H
ANDAH,DL
XORAL,DH
NEGAH
NOTAL
执行上述指令序列后,AH=60H,AL=35H_。
9.执行下面指令序列后,结果是(AX=0FF82H)。
MOVAL,82H
CBW
10.MOVAH,7896H
ADDAL,AH
上述指令执行后,标志位CF和OF的值是(CF=1,OF=0)。
10.设AL=0B4H,BL=11H,指令“MULBL”和指令“IMULBL”分别执行后OF,CF的值为(OF=1,CF=1)。
三.综合题
1•在debug下设置(SP)=20H,设置AX,BX,CX,DX为不同值,把这四个寄存器内容依次压入堆栈,再从堆栈中依次弹出到SI、DI、BP、BX寄存器。
写出一段程序实现上述操作,并画出每条入栈指令执行后SP和堆栈中数据的变化。
答:
(1)修改(SP):
-rSP
SP****
:
20
AX,BX,CX,DX相同方式
(2)pushAX
PushBX
PushCX
PushDX
。
。
。
PopBX
PopBP
PopDI
PopSI
2.测试AL寄存器,如果最高位和最低位同时为0,则转L0,如果最高位和最低位只有一个为1,则转L1,如果最高位和最低位同时为1,则转L2,画出流程图,并写出程序段。
答:
参考
ROLAL,1
ANDAL,3
JZL0
SUBAL,3
JZL3
JMPL2
第四章汇编语言程序格式
一.选择题
1.下列叙述正确的是(C)。
A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令
B•对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令
C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令
2.源程序结束语句为(C)
A.ENDPB.ENDS
C.ENDMAIND.END
3.SKY:
MOVAL,20H中操作数为(D)A.MOVB.SKY
C.AL或20HD.AL和20H
4.下列为不合法的标志符的是(B)
A.AXYZB.5SKY
C.@ATTD.?
ABC
5.下列地址表达式正确的是(C)
A.[BX-SI]B.[BP-DI]
C.[BX+2]D.[BP+BX]
6.NEAR标号的类型值为(B)
A.2B.-1
C.4D.-2
7.组合类型中本段与其它段无逻辑关系,每段均有自己的基址的组合类型是(A)
A.NONEB.PUBLIC
C.COMMOND.STACK
8.下面哪一个命令是显示内存单元的内容?
(A)
A.D命令
C.F命令
B.E命令
D.R命令
9.取变量偏移属性的分析运算符是(A)
A.OFFSET
C.SIZE
10.分析运算符
A.表达式
B.TYPE
D.SEG
LENGTH只有用(C)定义的变量才有意义。
B.字符串
D.疑问号
D.BYTE
BUF,保留100个字节存储空间的语句是(D)。
B.BUFDW100
C.BUFDW100DUP(?
)D.BUFDB100DUP(?
13.使计算机执行某种操作的命令是(B)
A.伪指令B.指令
C.标号D.助记符
14.使用DOS系统功能调用时,使用的软中断指令是(b)
A.INT21B.INT10H
C.INT16HD.INT21H二.填空题
1•比较两个带符号的数A、B,当A=B时程序转移,测试的条件为(F=1)
2.指令JMPFARPTRDONE属于(段间转移直接寻址)。
3•—个有128个字的数据区,它的起始地址为12ABH:
OOABH,请给出这个数据区最末一
个字单元的物理地址是(12C59H)。
4•在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是(进位值在CF中,校正后根据CF内容再加在AH中)
5•执行后使BX=0的同时也使CF=0,OF=0的指令是(ORBX,BX)
一、选择题
1•编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D)。
A、CMPB、SUBC、ANDD、MOV
2.测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是
(B)。
A.TESTBL,4FH
JZNEXT
B.XORBL,4FH
JZNEXT
C.ANDBL,4FH
JZNEXT
D.ORBL,4FH
JZNEXT
二、填空题
1.下列程序段将AX中值乘以9,请将程序填写完整
(1)
MOVCL,3
(2)
POPBX
ADDAX,BX
答:
2.
MOVBL,64H
MOVCL,03H
XORAX,AX
AGAIN:
ADDAL,BL
ADCAH,0
DECCL
JNZAGAIN
问:
(1)该程序段完成的功能是:
将AX内容乘3送BX中
(2)AX=___012CH。
3.设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存
放,请将程序中所缺指令语句补上。
TESTAX,8000H
JEK1或JZK1
MOVPLW,BX
JMPDONE
K1:
MOVPLW,A
DONE:
4.下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置全1。
试把空白处填上适当指令。
___XORAH,AL
ANDAH,08H
JEZERO
MOVAH,OFFH
JMPNEXT
ZERO:
MOVAH,0
NEXT:
,
5.下列程序段求数组ARRAY的累加和。
请将程序填写完整。
ARYDW45H,68H,,”,,0ABC1H,9600H;共10项
COUNTDW10
(1)
MOVCX,COUNT
XORAX,AX
AGAIN:
ADDAX,[SI]
ADDSI,2
(2)
答:
(1)LEASI,AKY
(2)LOOPAGAIN
6.以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中。
BUFDB5,6,7,58H,62,45H,127,
COUNTEQU$-BUF
MAXDB?
MONBX,OFFSETBUF
MOVCX,COUNT-1
MOVAL,[BX]
LOP1:
INCBX
CMPAL,[BX]__
JAENEXT
MOVAL,[BX]
NEXT:
DECCX
JNZLOP1
MOVMAX,AL
三、编程题
1.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
答:
BEGIN:
MOVAH,1
INT21H
CMPAL,'a'
JBSTOP
CMPAL,'z'
JASTOP
SUBAL,20H
MOVDL,AL
MOVAH,2
INT21H
JMPBEGIN
STOP:
RET
2.在给定个数的数中寻找最大值,放至指定的存储单元。
参考程序:
DATA
SEGMENT
BUFFER
DB2,4,3,6,1,5
COUNT
DW6
MAX
DB?
DATA
ENDS
CODE
SEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVCX,COUNTLEABX,BUFFERMOVAX,[BX]INCBXDECCX
AGAIN:
CMPAX,[BX]
JGENEXT
MOVAX,[BX]
INCBX
NEXT:
INCBX
LOOPAGAIN
CODE
ENDS
END
START
第六章子程序
.编程题
1.主程序从键盘输入两个示计算结果。
4位的十六进制数A和B,用子程序做十六进制计算
A+B,并显
参考:
CODESSEGMENT
ASSUMECS:
CODES
START:
movbl,0
movcx,8
loop1:
clc
movah,1hint21hcmpal,'0'jzrotatestc
rotate:
rclbl,1deccxjnzloop1print:
negblmovdl,0dhmovah,2hint21hmovdl,0ahint21hmovcx,8clc
loop2:
rclbl,1jncdis0movdl,'1'jmpdisplaydis0:
movdl,'0'
display:
movah,2hint21hdeccxjnzloop2
exit:
MOVAH,4CH
INT21H
CODESENDSENDSTART