总汇编习题含问题详解.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.0FBHD.65H
4.已知[X]补=98H,则[X]补/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.面向对象语言
4.8086/8088的存储器组织是将存储器划分为段,可作为段的起始地址的是(B)。
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是表示带符号位数运算产生溢出。
三.简单题
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.IPB.SP
C.BPDBX
7.指令MOVBX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为(B)
A.17500H B.16500H
C.14500H D.13500H
8.指令MOVAX,COUNT[BX],若COUNT=0400H,SS=1200H,DS=1000H,BX=5000H,那么物理地址为(C)
A.17400H B.17000H
C.15400H D.14500H
9.8086/8088系统中,存储器是分段组织的,存储器物理地址计算式是(B)
A.段地址+偏移地址 B.段地址*10H+偏移地址
C.段地址*16H+偏移地址 D.段地址+10H*偏移地址
10.当程序顺序执行时,每取一条指令语句,IP指针增加的值是(D)。
A.1B.2C.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)。
A.NCCXJZMINUSB.SUBCX,OFFFFHJZMINUS
C.ANDCX,OFFFFHJZMINUSD.XORCX,OFFFFHJZMINUS
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.+1 B.不操作
C.-2 D.-1
25.指令ADDES:
[DI],AX和存放在(B)
A.寄存器 B.附加段
C.堆栈段 D.代码段
26.将DX的内容除以2,正确的指令是(C)。
A.DIV2B.DIVDX,2C.SARDX,1D.SHLDX,1
27.下列数值表达式和地址表达式中,错误的是(D)。
A.MOVAL,8*14+4B.MOVSI,OFFSETBUF+13
C.MOVCX,NUM2-NUM1D.MOVCX,NUM2+NUM1
28.为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是(C)。
A.INCCXJZMINUSB.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____。
3.下列指令属于基址加变址寻址方式的是(MOVDX,DS:
[BP][SI])。
4.在串操作程序中,通常在重复前缀指令REPZ或REPNZ后,选用的串操作指令是___STOS____或___CMP__才有实际意义。
5.如JMP指令采用段间间接寻址,那么由4个相邻字节单元中存放有转移地址,其中前两个字节存放的是____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.ENDP B.ENDS
C.ENDMAIN D.END
3.SKY:
MOVAL,20H中操作数为(D)
A.MOV B.SKY
C.AL或20H D.AL和20H
4.下列为不合法的标志符的是(B)
A.AXYZ B.5SKY
C.@ATT D.?
ABC
5.下列地址表达式正确的是(C)
A.[BX-SI] B.[BP-DI]
C.[BX+2] D.[BP+BX]
6.NEAR标号的类型值为(B)
A.2 B.-1
C.4 D.-2
7.组合类型中本段与其它段无逻辑关系,每段均有自己的基址的组合类型是(A)
A.NONE B.PUBLIC
C.COMMON D.STACK
8.下面哪一个命令是显示内存单元的内容?
(A)
A.D命令 B.E命令
C.F命令 D.R命令
9.取变量偏移属性的分析运算符是(A)
A.OFFSET B.TYPE
C.SIZE D.SEG
10.分析运算符LENGTH只有用(C)定义的变量才有意义。
A.表达式 B.字符串
C.DUP D.疑问号
11.在段定义中,(B)是默认的定位类型
A.PAGE B.PARA
C.WORD D.BYTE
12.定义缓冲区BUF,保留100个字节存储空间的语句是(D)。
A.BUFDB100 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:
00ABH,请给出这个数据区最末一个字单元的物理地址是(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
答:
(1)PUSHAX
(2)SHLAX,CL
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 DB 2,4,3,6,1,5
COUNT DW 6
MAX DB ?
DATA ENDS
CODE SEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVCX,COUNT
LEABX,BUFFER
MOVAX,[BX]
INCBX
DECCX
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,1h
int21h
cmpal,'0'
jzrotate
stc
rotate:
rclbl,1
deccx
jnzloop1
print:
negbl
movdl,0dh
movah,2h
int21h
movdl,0ah
int21h
movcx,8
clc
loop2:
rclbl,1
jncdis0
movdl,'1'
jmpdisplay
dis0:
movdl,'0'
display:
movah,2h
int21h
deccx
jnzloop2
exit:
MOVAH,4CH
INT21H
CODESENDS
ENDSTART