《汇编语言》复习题Word格式.docx
《《汇编语言》复习题Word格式.docx》由会员分享,可在线阅读,更多相关《《汇编语言》复习题Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
C、CX<
0并且ZF=1D、CX<
0或ZF=1
5、下列合法的变量名称是()。
A、9BUFB、ADDC、BUF9D、ASSUME
6、一条指令中目的操作数不允许使用的寻址方式是()。
A、寄存器寻址B、立即数寻址C、变址寻址D、寄存器间接寻址
7、DOS的功能调用号必须送()寄存器。
A、DLB、DHC、ALD、AH
8、在实模式下,存储器管理采用分段模式,每段大小可达()。
A、64MB、1MC、64KD、16字节
9、用来存放下一条将要执行的指令地址的寄存器是()。
A、SPB、IPC、BPD、CS
10、要使串操作从低地址向高地址进行,应把标志位设置为()。
A、TF=1B、TF=0C、DF=1D、DF=0
三、判断题(每小题1分,共10分)
1、XLATBX,AL()
2、POPCS()
3、INAX,34H()
4、SHRBL,AL()
5、PUSHAL()
6、CS是代码段寄存器,在CS中存放代码段的段地址。
()
7、逻辑运算符和逻辑运算指令区别在于:
逻辑运算指令的功能在汇编阶段完成,逻辑运算符的功能在程序执行阶段完成。
8、在同一程序中,EQU不能对一个符号重复定义,=可对一个符号重复定义。
9、堆栈坚持后进先出的原则
。
10、两无符号字节数相除,需预先执行CBW指令。
四、读程序题(每空2分,共20分)
1、设AL=85H,BL=0FH,写出下列各指令单独执行后的结果。
(1)NEGAL;
AL=H
(2)ORAL,BL;
AL=H
(3)TESTAL,01H;
AL=H
(4)ANDAL,BL;
ZF=
2、已知程序如下:
CODESEGMENT
ASSUMECS:
CODE
BEGIN:
MOVBL,17
MOVCX,8
CLC
NEXT1:
MOVBH,30H
ROLBL,1
JNCNEXT2
ADDBH,1
NEXT2:
CALLPROC1
LOOPNEXT1
MOVBH,’B’
CALLPROC1
MOVAH,4CH
INT21H
PROC1PROC
MOVDL,BH
MOVAH,2
INT21H
RET
PROC1ENDP
ENDBEGIN
(1)子程序PROC1的功能是。
(2)子程序PROC1入口参数是。
(3)若RET指令执行前SP=0008H,则RET执行后,SP的值为。
(4)程序执行完毕,屏幕上显示内容是。
(5)主程序和子程序之间的参数传递方式是。
五、编程题(1~2每小题5分,3~6每小题10分,50分)
1、写出短指令序列,将CL内容除以BL的内容,结果乘4并存入AX寄存器中(设CL和BL中均为无符号数)。
2、在AL和BL寄存器中存放着两个有符号数,写出短指令序列比较两数的大小,并将大数存入MAX单元,小数存入MIN单元。
3、编写子程序,将字节单元中的2进制数转换成16进制数输出。
入口参数:
AL中存放待转换的数据。
出口参数:
要求不改变任何寄存器的内容。
4、编写子程序将两个多字节二进制数相减。
SI、DI分别指向两个数的首地址,BX指向差的首地址,CX中存放多字节的长度。
BX指向差的首地址。
5、设从内存单元BUF开始存放下列有符号数据:
1234H,0ED12H,0,2304H,0,7002H,编写完整的源程序统计其中的正数、0及负数的个数。
6、在BUF所指向的字存储单元中,存放若干个字数据3500H,0010H,1010H,8010H,编写完整的源程序计算这些数据之和,和放入SUM字单元中。
1、25=B=O=H
2、32D的原码为B,反码为B,补码为B。
3、十进制数15的压缩BCD码为;
非压缩BCD码为。
4、8086CPU可以直接寻址的内存空间大小为,程序员在编程时需要把存储器分段,每段的大小不能超过。
5、设DI=0100H,DS=3000H,在指令MOVCX,[100+DI]中,源操作数的寻址方式为;
6、汇编语言源程序有三种基本结构形式:
顺序结构、和。
7、从功能上,8086CPU分为
和两部分。
8、直接输入/输出指令的最大端口号是,间接输入/输出指令的端口号必须送寄存器。
9、DIVBX指令执行后,余数在中,商在中。
1、8086CPU中指令队列有()个字节。
A4B6C8D16
2、DF=0,执行CMPSW指令后()。
ASI减1,DI减1
BSI加1,DI加1
CSI减2,DI减2
DSI加2,DI加2
3、在DEBUG下,u命令的作用是()。
A反汇编
B汇编C查看数据
D写入数据
4、用来存放下一条将要执行的指令地址的寄存器是()。
ASPBIPCBPDCS
5、完成将有符号数BX的内容除以2的正确指令是()。
ASHRBX,1BSARBX,1
CSALBX,1DRCRBX,1
6、在汇编语言中,标号在()段使用。
ADSBESCCSDSS
7、如AX=8001H,则指令NEGAX执行后,AX的值是()。
A0FFFFHB7FFEHC0FFFEHD7FFFH
8、下列通用数据传送指令的几种传送中,错误的传送方式是()。
A从累加器到存储器B从寄存器到寄存器
C从寄存器到存储器D从存储器到存储器
9、如果AL=90H,则执行CBW后,AX中的内容为()。
AFF90HB0090HC1090HD不定
10、使进位位清0的指令是()。
ACLCBCMCCSTCDNOP
1、MOV[BX],[SI]()
2、XCHGCS,BX()
3、PUSHCS()
4、POPCL()
5、SHLBX,CL()
6、OUT50H,AX()
7、DIVAX,BL()
8、两带符号字节数相除,需预先执行CBW指令。
9、伪指令能够翻译成机器码。
10、堆栈坚持先进先出的原则
1、假设有以下数据定义伪指令,写出下列各指令单独执行后的结果。
DATA1DB88H,15H
DATA2DW1234H,2278H
CNTEQU($-DATA2)/2
(1)MOVAX,WORDPTRDATA1;
AX=
(2)MOVAL,BYTEPTRDATA2;
AL=
(3)MOVCX,CNT;
CX=
(4)MOVBL,TYPEDATA2;
BL=
(5)MOVAL,SIZEDATA2;
2、已知程序段如下:
MOVDX,0
CLC
MOVAX,1432H
MOVCL,4
ROLAX,CL;
①
DECAX;
②
MOVBX,2
MULBX;
③
(1)指令①执行后AX=CF=
(2)指令②执行后AX=CF=
(3)指令③执行后AX=
1、定义一个名字为DATA的数据段,段中的变量和数据如下:
D1为字符串变量:
‘ABCD’
D2为字变量:
1234
D3为字变量:
8个5
2、编写标准单字符输出子程序。
子程序名称:
OUTPUTP
输出字符的ASCII放在DL寄存器中。
3、编写完整的源程序实现把数据段BUF1所指向的内存单元中的字数据1245H送扩展段BUF2所指向的内存单元中。
4、在BUF开始的内存区存放2个无符号字数据,编写完整的源程序比较其大小,大数存入MAX开始的字单元,小数存入MIN开始的字单元。
5、设从STRING开始存放一以#为结束标志的字符串:
'
3$6AaAgzZ[}#'
,把字符串中的字符分类,数字送入NUM开始的内存区,字母送入CHAR开始的内存区,其它字符存到OTHER开始的内存区。
6、设从内存单元BUF开始存放下列有符号字数据:
0123H,1,8041H,0,0A004H,0,编写完整的源程序统计其中的正数、零及负数的个数,结果分别存放在PLUS_NO、ZERO_NO、POSITIVE_NO所指向的字节单元。
1、38D=B=O=H
2、-12D的原码为,反码为,补码为。
3、5B21H的反码为,补码为。
4、十进制数65的非压缩BCD码为,压缩BCD码为。
5、若(CS)=1100H,(IP)=1050H,则当前指令的物理地址为。
6、已知(AX)=789AH,问执行指令CBW后,(AX)=____________。
7、使用DOS中2号功能调用时,需先将______________送入DL中。
8888888、与MOVAX,OFFSETBUF等效的LEA指令是____________。
9、在汇编语言中,标号在段使用,标号的属性有、、。
10、DIVCL指令执行后,余数在中,商在中。
1、一条指令中目的操作数不允许使用的寻址方式是()。
A寄存器寻址B立即数寻址C变址寻址D寄存器间接寻址
2、LDSSI,[2000H]指令的功能是()。
A把地址2000H送SIB把地址2000H送DS
C把地址2000H字单元的内容送SI,把2002H单元的内容送DS
D把地址2000H字单元的内容送DS,把2002H单元的内容送SI
3、关于POP指令,以下正确的是()。
A该指令的操作数可以是立即数B该指令执行后,栈顶指针加1
C该指令执行后,栈顶指针减2D该指令执行后,栈顶指针加2
4、如果算术或逻辑运算结果为0,则()。
AZF=0BZF=1CSF=0DSF=1
5、下列合法的变量名称是()。
A9NEXTBSUBCNEXT1DASSUME
6、完成对字单元BUF的内容加1运算,下面错误的指令是()。
AMOVBX,BUFBMOVBX,OFFSETBUF
INCBXINCWORDPTR[BX]
MOVBUF,BX
CMOVBX,BUFDLEABX,BUF
INCWORDPTR[BX]INCWORDPTR[BX]
ADLBDHCALDAH
8、在DEBUG下,用()命令修改存储单元的内容。
AEBRCDDG
9、若SP=0008H,则段内返回指令RET2执行后,SP的值为()。
A0008HB000AHC000CHD0004H
10、以下说法错误是()。
AJMP是条件转移指令B条件转移指令只能实现段内转移
C条件转移指令可转移的范围是-128~+127
D无条件转移指令可以实现段间转移
1、MOV[BX],[2000H]()
2、POPAL()
3、SHLBX,CL()
4、INAX,1234H()
5、MULCL()
6、ROLAL,3()
逻辑运算符的功能在汇编阶段完成,逻辑运算指令的功能在程序执行阶段完成。
8、在同一程序中,=不能对一个符号重复定义,EQU可对一个符号重复定义。
9、8086CPU内有2字节的指令队列。
10、CS是代码段寄存器,在CS中存放代码。
1、设有如下段定义:
DATASEGMENT
BUF1DB2,-1
BUF2DW?
,1234H,-2
CNTEQU($-BUF2)/2
DATAENDS
(1)操作数-1所在的内存单元的偏移地址为_____,在内存中占个字节单元。
(2)操作数-2所在的内存单元的偏移地址为_____,在内存中占个字节单元。
(3)变量CNT的值为_____。
2、已知源程序如下:
MOVCX,16
MOVDX,0
ROLBX,1
ADCDL,30H
CALLPROC2
MOVDL,’B’
CALLPROC2
RET
PROC2PROC
MOVAH,2
INT21H
RET
PROC2ENDP
(1)子程序PROC1的功能是_____,入口参数分别是_____。
(2)子程序PROC2的功能是_____,入口参数分别是_____。
(3)如果子程序PROC1的入口参数初始值为8001H,程序执行完毕,屏幕上显示的内容是_____。
五、编程题(1~2每小题5分,4~6每小题10分,50分)
1、定义一个名字为DATA1的数据段,段中的变量及数据如下:
BUFA为字节变量:
12H,-1,0ABH,200
BUFB为字变量:
5个1000H,2000
BUFC为字符串变量:
‘HuiBianYuYan’
2、在AL寄存器存放一8位有符号数,设计短指令序列求该数的绝对值,结果存入JDZ所指向的字节单元。
3、在BUF开始的内存区存放一个以#为结束标志的字符串,设计短指令序列计算该字符串的长度并存入RESU字节单元。
5、编写完整的源程序,求满足x的阶乘小于500的最大x值,将x在屏幕上显示输出。
6、编程完整的源程序计算表达式Z=X*Y+X/2-Y的值,X和Y的值由键盘输入(X、Y均为1位十进制数,输入功能用调用子程序的方法实现),结果Z存放在RES所指向的字节单元中。