汇编语言.docx
- 文档编号:24282434
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:64
- 大小:53.05KB
汇编语言.docx
《汇编语言.docx》由会员分享,可在线阅读,更多相关《汇编语言.docx(64页珍藏版)》请在冰豆网上搜索。
汇编语言
如下程序段中的“DECCX”指令执行了几次
MOVCX,4
JCXZNEXT
AGAIN:
DECCX
JNZAGAIN
NEXT:
....
A:
1B:
5C:
0D:
4
下列语句无异义的是
A:
MOVAL,[BX]B:
INC[AX]C:
MOV[AX],5D:
JMP[BP]
解答:
MOVAL,[BX]无异义,是字节操作;INC[AX]和MOV[AX],5无法知道是字节操作还是字操作;JMP[BP]不知是段内间接转移还是段间间接转移。
在汇编语言编程中,结束用户程序返回操作系统应使用的中断指令是
A:
RET2B:
INT10HC:
RETD:
INT20H
指令MOVES:
[BX],AX中,目的操作数的寻址方式为
A:
寄存器寻址B:
存储器直接寻址C:
立即寻址D:
寄存器间接寻址
指令MOVAX,1234H中的立即数1234H是存储在
A:
数据段B:
堆栈段C:
代码段D:
附加段
十进制数–100的8位二进制数的补码为
A:
10011100B:
10011101C:
1100100D:
10011011
将10个字数据3456H存放在存储单元中的伪指令是
A:
DW10DUP(5634H)B:
DD10DUP(5634H)C:
DW10DUP(3456H)D:
DD10DUP(3456H)
条件转移指令JNE的测试条件是
A:
CF=1B:
CF=0C:
ZF=1D:
ZF=0
解答:
JNZ指令和JNE指令的测试条件都是ZF=0,即上一次的运算结果不为零/不相等,则转移。
移位指令SAL用于
A:
无符号数除2B:
有符号数乘2C:
无符号数乘2D:
有符号数除2
解答:
在8086指令集中,算术左移SAL不存在,等价于逻辑左移SHL
下述对PSW寄存器中标志位不产生影响的指令是
A:
JMPNEXTB:
SHLAL,1C:
TESTAL,80HD:
INCSI
假设VAR为变量,指令MOVBX,OFFSETVAR的寻址方式是
A:
直接寻址B:
存储器寻址C:
立即数寻址D:
间接寻址
在条件转移指令中,结果不为0则转移的指令是
A:
JZB:
JNSC:
JSD:
JNZ
对于LOOPNEXT循环指令,循环的范围是
A:
在-256~+256字节之内B:
在-128字节之内C:
在-128~+127字节之内D:
在+127字节之内
完成将AX清零,并且使CF清零,下面错误的指令是
A:
ANDAX,0B:
MOVAX,0C:
SUBAX,AXD:
XORAX,AX
下面指令中影响状态位CF的指令是
A:
INCAXB:
NOTAXC:
DECAXD:
NEGAX
在分支指令中,利用符号进行判断的指令是
A:
JZB:
JSC:
JCD:
JO
子程序是通过什么来定义的。
A:
CALL~RETB:
SUB~PROCC:
PROC~RETD:
PROC~ENDP
下列描述中正确的是
A:
在汇编语言编程中,必须分别完整的定义数据段、堆栈段、附加段和代码段
B:
在汇编语言编程中,数据可以安排在代码段中
C:
在汇编语言编程中,必须采用过程的形式编写
D:
在汇编语言编程中,必须有数据段和代码段
在COUNTDB5这条存储单元定义伪指令中,COUNT称为
A:
助记符B:
标号C:
符号D:
变量
堆栈的逻辑地址由什么组成
A:
CS:
IPB:
SS:
SPC:
DS:
BXD:
ES:
DI
使用8086/8088汇编语言的伪操作命令定义
VALDB10DUP(5,2DUP(2DUP(1,2DUP(3)),4))
则在VAL存储区内前10个字节单元中的数据是
A:
5,2,1,3,3,4,1,3,3,1B:
5,2,2,1,2,3,4,1,2,3C:
1,0,5,2,2,1,2,3,4,5D:
5,1,3,3,1,3,3,4,1,3
解答:
从所列的语句分析可知其有4层重复定义操作,自内向外逐层展开,分别相当于:
(1)10DUP(5,2DUP(2DUP(1,3,3),4))
(2)10DUP(5,2DUP(1,3,3,1,3,3,4))
(3)10DUP(5,1,3,3,1,3,3,4,1,3,3,1,3,3,4)
对于下列程序段:
AGAIN:
MOVES:
[DI],AL
INCDI
LOOPAGAIN
可用什么指令完成相同的功能。
A:
REPMOVSBB:
REPESCASBC:
REPLODSBD:
REPSTOSB
解答:
PTR用来建立一个符号地址,但它本身并不分配存储器,只是用来给已分配的存储地址赋予另一种属性,使该地址具有另一种类型。
有关8086/8088CPU以奇地址或偶地址访问存储器时,下列说法正确的是
A:
访问奇地址要比访问偶地址花费时间多一倍B:
二者花费的时间一样多
C:
访问偶地址要比访问奇地址花费时间多一倍D:
上述说法都不对
两个操作数运算时,下列哪种结果会发生溢出
A:
一正一负相加,结果为负B:
两个负数相加,结果为负
C:
两个正数相加,结果为负D:
两个正数相加,结果为正
用什么指出下一条要执行的指令所在单元的偏移地址
A:
PCB:
BPC:
SPD:
IP
下述程序为一数据段,正确的判断是
1 DATASEGMENT
2 XDB332H
3 FIRST=1
4 FIRSTEQU2
5 ENDS
A:
以上5句为数据段定义,是正确的B:
语句3、4分别为FIRST赋值是正确的
C:
所有答案都不正确D:
语句2定义变量X是正确的
解答:
该程序作为段定义,段结束指令ENDS前无段名是错误的;332H超过了字节表示的范围,所以变量X的定义也不正确;语句4中符号名PIRST已经定义过,重复定义是错误的。
8086/8088CPU的I/O指令可以采用的寻址方式为
A:
变址寻址B:
间接寻址C:
直接寻址D:
直接寻址与间接寻址
设A=9210H,B=4582H,如果A>B做相减运算,否则做相加。
执行JG指令后,结果是
A:
先做相减再做相加运算B:
做相加运算C:
什么都不做D:
做相减运算
在汇编期间,为汇编程序提供分段信息的是
A:
ASSUME伪指令B:
SEGMENT伪指令C:
标号STARTD:
MOV指令
CBW指令的功能是
A:
把AH中的符号位扩展到AL中B:
把源操作数的符号位扩展到目的操作数中
C:
把AL中的符号位扩展到AH中D:
把AX中的符号位扩展到DX中
指令MOVCX,[BP+16]的源操作数采用的段寄存器是
A:
SSB:
CSC:
ESD:
DS
解答:
存储器寻址默认使用DS,但有BP参与会使用SS
串扫描SCAS指令要求的串放在
A:
数据段B:
堆栈段C:
附加段D:
代码段
关于字除法指令错误的说法是
A:
有符号除法的商和余数都是补码表示的数B:
商在AX寄存器中,余数在DX寄存器中
C:
32位被除数DX:
AX与16位源操作数相除D:
16位被除数AX与8位源操作数相除
执行CALLSUBR1指令后,完成的操作是
A:
将SUBR1的偏移地址入栈保存B:
将断点的偏移地址→IP
C:
将SUBR1的段地址→CS,偏移地址→IPD:
将断点的偏移地址入栈保存
JMPFARPTRDONE是
A:
段内间接转移B:
段间直接转移C:
段内直接转移D:
段间间接转移
解答:
FARPTR是表示段间转移的操作符。
指令MOVAX,ES:
[BX][SI]源操作数的物理地址是
A:
CS16+BX+SIB:
ES16+BX+SIC:
SS16+BX+SID:
DS16+BX+SI
指令LOOPZ的循环执行条件是
A:
CX≠0或ZF=0B:
CX≠0且ZF=0C:
CX≠0且ZF=1D:
CX≠0或ZF=1
80X86系统的中断向量表位于
A:
BIOS中B:
系统CMOS中C:
内存最高端D:
内存最低端
下列叙述正确的是
A:
对两个无符号数进行比较时采用CMP指令,对两个有符号数进行比较时采用CMPS指令
B:
对无符号数条件转移时采用JGE/JNL指令,对有符号数条件转移时采用JAE/JNB指令
C:
对两个无符号数进行比较时采用CMPS指令,对两个有符号数进行比较时采用CMP指令
D:
对无符号数条件转移时采用JAE/JNB指令,对有符号数条件转移时采用JGE/JNL
在汇编语言中有三种指令,其中用于定义常数、变量,内存空间的分配和定位的是
A:
宏指令B:
伪指令C:
机器指令D:
微指令
设物理地址(10FF0H)=10H,(10FF1H)=20H,(10FF2H)=30H,从地址10FF1中取出一个字的内容是
A:
2010HB:
2030HC:
3020HD:
1020H
执行INAL,DX指令后,进入AL寄存器的数据来自
A:
寄存器B:
存储器C:
外设端口D:
立即数
测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,那么在“JZNEXT”指令前的一条指令应是
A:
XORBL,4FHB:
TESTBL,4FHC:
ORBL,4FHD:
ANDBL,4FH
汇编语言源程序是指
A:
连接生成的.EXEB:
汇编生成的.LSTC:
系统提供的MASMD:
用户编写的.ASM
完成同指令XCHGAX,BX相同功能的指令或指令序列是
A:
MOVBX,AXB:
PUSHAXPOPBXC:
MOVAX,BXD:
MOVCX,AXMOVAX,BXMOVBX,CX
执行ORAL,80H后,可以肯定的执行结果是AL寄存器的
A:
低7位均为0B:
最高位为1C:
低7位均为1D:
最高位为0
在程序状态字寄存器PSW中,作为记录指令操作结果的标志是
A:
IF,DF,OF,CFB:
CF,PF,ZF,SFC:
CF,OF,PF,AF,SF,ZFD:
OF,DF,IF,SF,ZF,CF
主程序将它的参数带给子程序,这个参数被称为
A:
入口参数B:
存储器参数C:
寄存器参数D:
出口参数
利用数据定义伪指令定义数据:
BUFDB4DUP(0,2DUP(1,0)),定义后存储单元中有数据0100H的字单元个数是
A:
8B:
4C:
12D:
3
解答:
首先应掌握如何将数据定义伪指令定义的数据画成存储单元的存储示意图,然后再根据存储单元中的数据进一步分析。
现画出存储示意图如下:
BUF-0001000100000100010000010001000001000100然后根据存储示意图分析,可见变量BUF开始的存储单元中有数据0100H的字单元个数是8。
若DX=1010H,则ANDDX,DX的执行结果为
A:
1010HB:
0000HC:
1111HD:
FFFFH
获得BUFFER单元有效地址的汇编指令为
A:
MOVBX,BUFFERB:
LDSBX,BUFFERC:
LEABX,BUFFERD:
MOVBX,[BUFFER]
串操作重复前缀REPZ指令,继续重复的条件是
A:
CX=0或ZF=1B:
CX≠0且ZF=1C:
CX≠0或ZF=1D:
CX=0且ZF=1
下列描述不正确的是
A:
执行指令TEXTAX,8000H后,不会改变累加器原有的内容
B:
执行指令ORAX,0000H后,不会改变累加器原有的内容
C:
执行指令XORAX,AX后不会改变累加器原有的内容
D:
执行指令ANDAX,0FFFFH后,不会改变累加原有的内容
逻辑移位指令SHL可用于
A:
有符号数乘以2B:
无符号数除以2C:
无符号数乘以2D:
有符号数除以2
能实现有符号数乘以2的移位指令是
A:
SALAL,1B:
SHLAL,1C:
SARAL,1D:
SHRAL,1E:
无法实现
在子程序调用过程中,返回地址指的是
A:
CALL指令本身B:
CALL的下一条指令的地址C:
子程序名D:
CALL的下一条指令
将字符串“INPUT”保存到存储单元MESS,正确的伪指令是
A:
INPUTDB"MESS"B:
INPUTDBMESSC:
MESSDBINPUTD:
MESSDB"INPUT"
下面指令执行后,改变AL寄存器内容的指令是
A:
TESTAL,02HB:
ANDAL,BLC:
CMPAL,BLD:
ORAL,AL
完成BX-CX→AX的错误操作是
A:
SUBAX,BXSUBAX,CXB:
SUBBX,CXMOVAX,BXC:
XCHGAX,BXSUBAX,CXD:
MOVAX,BXSUBAX,CX
解答:
对于任何指定的操作,都可以用不同的指令组合完成。
这不仅要求对指令的正确选择,而且与指令执行的顺序也有关。
第一条是“SUBAX,BX”的指令组,由于AX的初始值不定,只有当AX的内容是BX的两倍时,才能完成题目的要求。
将十进制数75以压缩BCD码送入AX,正确的指令是
A:
MOVAX,0705HB:
MOVAX,0075HC:
MOVAX,0705D:
MOVAX,0075
解答:
首先应掌握压缩BCD码和非压缩BCD码不同的存储格式。
所谓BCD码又称8241码,即用4位二进制数来表示一位十进制数。
非压缩BCD码的存储格式是用一个字节来存放一位BCD码,也就是高4位为0,低4位为0000~1001。
压缩BCD码的存储格式是用一个字节来存放两位BCD码,即低4位和高4位都可以是0000~1001。
为了书写简便,通常将二进制数写成十六进制形式。
VAR是数据段中定义的变量,指令MOVAX,VAR源操作数的寻址方式是
A:
寄存器寻址B:
立即寻址C:
相对寻址D:
直接寻址
在汇编期间,为汇编程序提供分段信息的是
A:
标号STARTB:
ASSUME伪指令C:
MOV指令D:
SEGMENT伪指令
执行ORAL,80H后,可以肯定的执行结果是AL寄存器的
A:
低7位均为1B:
最高位为1C:
低7位均为0D:
最高位为0
MULCL指令实现的功能是
A:
有符号乘法:
DX←ALCLB:
无符号乘法:
DX←ALCL
C:
有符号乘法:
AX←ALCLD:
无符号乘法:
AX←ALCL
下列叙述正确的是
A:
机器指令都是8位B:
机器指令都是16位C:
16位机的指令系统完全相同D:
不同类型的机器指令系统不相同
下列指令中不等价的是
A:
JL和JNGB:
JG和JNLEC:
JBE和JNAD:
JA和JNBE
下列串操作指令中,加重复前缀没意义的指令是
A:
MOVSBB:
STOSBC:
LODSBD:
SCASB
语句BUFDB10DUP(3DUP(?
10),3,10)汇编后,变量BUF占有的存储单元字节数是
A:
80B:
100C:
40D:
20
执行CALLFARPTRSUB1指令后,在堆栈区域中
A:
弹出两个字节的内容B:
压入四个字节的内容C:
压入两个字节的内容D:
弹出四个字节的内容
下列传送指令中有语法错误的是
A:
MOVES,AXB:
MOVSS,AXC:
MOVDS,AXD:
MOVCS,AX
下列四条指令执行后不影响标CF志位的是
A:
CMPAX,BXB:
SHLAX,1C:
INCAXD:
ORAL,AL
在计算机中一个字节有几位二进制数组成
A:
16B:
2C:
8D:
4
DW50DUP(?
)语句预留了多少个字节存储空间
A:
50B:
100C:
200D:
25
连接两个汇编语言目标程序时,若其数据段的段名相同,组合类型为PUBLIC,定位类型省略,连接后第一个目标程序数据段的起始物理地址是00000H,长度为1376H,试问第二个目标程序数据段的起始物理地址是
A:
01378HB:
01377HC:
01400HD:
01380H
DA1EQUBYTEPTRDA2
DA2DW0ABCDH
┇
SHLDA1,1
SHRDA2,1
上述指令序列执行后,DA2字存储单元的内容是
A:
0ABCDHB:
55CDHC:
559AHD:
0AB9AH
下列传送指令中,有错误的是
A:
MOVAH,BLB:
MOVCL,DXC:
MOVDS,AXD:
MOVSI,90
语句“VARDW1,2,$+2,5,6”,若汇编时VAR分配的偏移地址是0010H,则汇编后0014H单元的内容是
A:
06HB:
14HC:
05HD:
16H
经过汇编产生的二进制目标文件是
A:
.OBJB:
.MAPC:
.EXED:
.ASM
指令“TESTBH,1”测试BH中的数是否为奇数,若为奇数则转移,那么随后的条件转移指令应为
A:
JZB:
JCC:
JSD:
JNE
执行INC指令除对于SF、ZF有影响外,还要影响的标志位是
A:
OF,AF,PFB:
AF,PF,CFC:
OF,PF,CFD:
OF,AF,CF
指令MOVBX,MASK[BP],若MASK=3540H,(SS)=1200H,(DS)=1300H,(BP)=1160H,那么有效地址为
A:
46A0HB:
2460HC:
4840HD:
4740H
在执行NEG指令时,对标志位CF有影响,其影响的规则是
A:
对零求补时,CF=1B:
对非零数数求补时,CF=1C:
对正数求补时,CF=0D:
对负数求补时,CF=0
现有一数据定义语句:
DA1DB35H,37H能与上述语句等效的语句或语句序列有
A:
MOVDA1,'5'MOVDA1+1,'7'B:
MOVDA1,37HMOVDA1+1,35H
C:
MOVWORDPTRDA1,3537HD:
MOVWORDPTRDA1,'57'
若AX=1240H,CX=9939H,则ADDAX,CX执行后,AH=?
A:
79HB:
AB79HC:
79ABHD:
ABH
在80x86标志寄存器中,ZF=1表示
A:
结果为0B:
结果溢出C:
结果有进位D:
结果为负
循环指令的控制条件,除CX寄存器外,还可以把哪个标志位作为控制条件
A:
ZFB:
OFC:
CFD:
SF
串操作指令,源串和目的串的偏移地址由什么寄存器决定
A:
SI和DIB:
BX和DXC:
DS和DXD:
SI和CX
下面指令序列执行后,
MOVAL,BYTEPTRX
SHLAL,1
DECAL
MOVBYTEPTRY,AL
完成的的算术表达式应是
A:
Y=2X+1B:
Y=2X-1C:
X=2Y-1D:
X=2Y+1
如果想让程序从100H开始存放及执行,须用指令
A:
ENDSTARTB:
STARTEQU100HC:
ORG100HD:
MOVSTART,100H
在编写汇编语言程序时,要正确使用好两种语句的功能,它们分别是
A:
说明语句和定义语句B:
分支语句和循环语句C:
指令语句和伪指令语句D:
顺序语句和非顺序语句
指令MOVAX,ES:
COUNT[DI],源操作数的寻址方式是
A:
寄存器相对寻址B:
基址变址寻址C:
立即寻址D:
相对基址变址寻址
指令MOVAX,[1000H],源操作数的寻址方式是
A:
基址变址寻址B:
寄存器寻址C:
直接寻址D:
立即寻址
下列指令中,不影响标志位的指令是
A:
JNCLABELB:
SUBAX,BXC:
RORAL,1D:
CMC
堆栈的逻辑地址由什么组成
A:
CS:
IPB:
DS:
BXC:
ES:
DID:
SS:
SP
将寄存器AX的内容乘以2的正确指令序列是
A:
RORAX,1B:
RCRAX,1C:
SHLAX,1D:
SHRAX,1
完成对寄存器BX的内容求补运算,下面错误的指令是
A:
NOTBXINCBXB:
NEGBXC:
MOVAX,0SUBAX,BXD:
XORBX,0FFFFHINCBX
已知RET指令是属性为NEAR子程序中的返回指令,执行RET前SP=100H,执行后SP的内容为
A:
100HB:
102HC:
0FEHD:
104H
已知RET指令是属性为NEAR子程序中的返回指令,执行RET前SP=100H,执行后SP的内容为
A:
100HB:
102HC:
0FEHD:
104H
在多重循环程序中,从外循环再次进入内循环时,内循环的计数值
A:
重新赋值B:
置1C:
置0D:
不变考虑
从键盘输入一个十进制数3042,它所对应的非压缩型BCD码的存储形式是
A:
02,04,00,03B:
33,30,34,32C:
32,34,30,33D:
03,00,04,02
解答:
首先应掌握压缩BCD码和非压缩BCD码不同的存储格式。
所谓BCD码又称8241码,即用4位二进制数来表示一位十进制数。
非压缩BCD码的存储格式是用一个字节来存放一位BCD码,也就是高4位为0,低4位为0000~1001。
压缩BCD码的存储格式是用一个字节来存放两位BCD码,即低4位和高4位都可以是0000~1001。
为了书写简便,通常将二进制数写成十六进制形式。
不能用MOV指令赋初值的段寄存器是
A:
ESB:
CSC:
DSD:
SS
执行指令PUSHCX后,堆栈指针SP自动
A:
-2B:
-1C:
+2D:
+1
解答:
栈操作以字为单位,栈顶向低地址方向浮动
在汇编语言源程序中,表达式的计算是由哪个完成的
A:
编程者B:
汇编器C:
程序执行时D:
连接器
PC机采用向量中断方式处理8级外中断,中断号依次为08H~0FH,在RAM的0:
2CH单元开始依次存放23H、FFH、00H、F0H四个字节,该向量对应的中断号和中断服务程序入口是
A:
0BH,00F0:
23FFHB:
0BH,F000:
FF23HC:
0CH,23FF:
00F0HD:
0CH,F000:
FF23H
解答:
中断向量的地址=中断类型号4。
每个中断向量在中断向量表中占4个字节,低16位存放的是中断程序的偏移地址,高16位存放的是中断程序的段地址。
一般地,我们将计算机指令的集合称为
A:
汇编语言B:
机器语言C:
模拟语言D:
仿真语言
指令MOVAX,[BX][SI]源操作数的物理地址是
A:
CS*2*2*2*2+BX+SIB:
DS*2*2*2*2+BX+SIC:
ES*2*2*2*2+BX+SID:
SS*2*2*2*2+BX+SI
换码指令XLAT要求给出存储单元的有效地址为
A:
(BX)+(AL)B:
(AL)C:
(BX)D:
(BX)+(AX)
在汇编语言程序中,对END语句的叙述正确的是
A:
END语句是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言