还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
汇编期末考试经典试题及答案
一、单选题(每题1分,共10分)
1.下列哪条指令不属于8086汇编语言中的数据传送指令?()A.MOVB.ADDC.PUSHD.POP【答案】B【解析】ADD是算术加法指令,不属于数据传送指令
2.在8086汇编语言中,段地址和偏移地址相加得到的是()A.物理地址B.逻辑地址C.线性地址D.实际地址【答案】A【解析】段地址和偏移地址相加得到的是物理地址
3.下列寄存器中,主要用于存储程序状态字的是()A.AXB.BXC.CXD.Flags【答案】D【解析】Flags寄存器用于存储程序状态字
4.8086汇编语言中,用来进行串操作的基本指令是()A.MOVCB.MOVSBC.ADDD.MUL【答案】B【解析】MOVSB是串操作指令,用于移动字符串
5.在8086汇编语言中,标志寄存器中的CF标志位表示()A.溢出标志B.进位标志C.奇偶标志D.辅助进位标志【答案】B【解析】CF标志位表示进位标志
6.下列哪条指令用于将立即数8位移入AL寄存器?()A.MOVAX,8B.MOVAL,8C.MOVAH,8D.MOVCL,8【答案】B【解析】MOVAL,8将立即数8位移入AL寄存器
7.在8086汇编语言中,下列哪条指令用于将BX寄存器的值加1?()A.INCAXB.INCBXC.ADDAX,1D.ADDBX,1【答案】B【解析】INCBX将BX寄存器的值加
18.下列哪条指令用于将CS寄存器的值传送到DS寄存器?()A.MOVDS,CSB.MOVCS,DSC.PUSHCSD.POPDS【答案】A【解析】MOVDS,CS将CS寄存器的值传送到DS寄存器
9.在8086汇编语言中,下列哪条指令用于将AX寄存器的值与BX寄存器的值进行异或操作,并将结果存回AX寄存器?()A.XORAX,BXB.XORBX,AXC.ANDAX,BXD.ORAX,BX【答案】A【解析】XORAX,BX将AX寄存器的值与BX寄存器的值进行异或操作,并将结果存回AX寄存器
10.下列哪条指令用于将SP寄存器的值减去2?()A.DECSPB.SUBSP,2C.ADDSP,2D.INCSSP【答案】B【解析】SUBSP,2将SP寄存器的值减去2
二、多选题(每题4分,共20分)
1.以下哪些属于8086汇编语言中的寻址方式?()A.立即寻址B.直接寻址C.间接寻址D.寄存器寻址E.寄存器间接寻址【答案】A、B、C、D、E【解析】8086汇编语言中的寻址方式包括立即寻址、直接寻址、间接寻址、寄存器寻址和寄存器间接寻址
2.以下哪些指令属于8086汇编语言中的算术指令?()A.ADDB.SUBC.MULD.DIVE.AND【答案】A、B、C、D【解析】ADD、SUB、MUL、DIV属于算术指令,AND属于逻辑指令
3.以下哪些指令属于8086汇编语言中的逻辑指令?()A.ANDB.ORC.XORD.NOTE.SHL【答案】A、B、C、D【解析】AND、OR、XOR、NOT属于逻辑指令,SHL属于移位指令
4.以下哪些寄存器属于8086汇编语言中的通用寄存器?()A.AXB.BXC.CXD.DXE.IP【答案】A、B、C、D【解析】AX、BX、CX、DX属于通用寄存器,IP属于指令指针寄存器
5.以下哪些指令属于8086汇编语言中的串操作指令?()A.MOVCB.MOVSBC.MOVSWD.LODSBE.STOSB【答案】B、C、D、E【解析】MOVC不是串操作指令,MOVSB、MOVSW、LODSB、STOSB属于串操作指令
三、填空题(每题2分,共16分)
1.8086汇编语言中,用来表示立即数的符号是______【答案】直接使用数字(2分)
2.在8086汇编语言中,标志寄存器中的SF标志位表示______【答案】符号标志(2分)
3.8086汇编语言中,用来将BX寄存器的值传送到DS寄存器的指令是______【答案】MOVDS,BX(2分)
4.在8086汇编语言中,用来将AX寄存器的值右移1位的指令是______【答案】SHRAX,1(2分)
5.8086汇编语言中,用来进行串操作的基本指令是______【答案】MOVSB(2分)
6.在8086汇编语言中,标志寄存器中的ZF标志位表示______【答案】零标志(2分)
7.8086汇编语言中,用来将立即数8位移入AL寄存器的指令是______【答案】MOVAL,8(2分)
8.在8086汇编语言中,用来将SP寄存器的值减去2的指令是______【答案】SUBSP,2(2分)
四、判断题(每题2分,共10分)
1.两个正数相加,和一定比其中一个数大()【答案】(√)【解析】两个正数相加,和一定比其中一个数大
2.在8086汇编语言中,标志寄存器中的OF标志位表示溢出标志()【答案】(√)【解析】OF标志位表示溢出标志
3.8086汇编语言中,用来将AX寄存器的值与BX寄存器的值进行与操作,并将结果存回AX寄存器的指令是ANDAX,BX()【答案】(√)【解析】ANDAX,BX将AX寄存器的值与BX寄存器的值进行与操作,并将结果存回AX寄存器
4.在8086汇编语言中,指令PUSHAX将AX寄存器的值压入堆栈()【答案】(√)【解析】PUSHAX将AX寄存器的值压入堆栈
5.8086汇编语言中,指令POPBX将BX寄存器的值从堆栈中弹出()【答案】(√)【解析】POPBX将BX寄存器的值从堆栈中弹出
五、简答题(每题4分,共12分)
1.简述8086汇编语言中的立即寻址方式【答案】立即寻址方式是指指令的操作数直接包含在指令中,而不是在内存中例如,MOVAX,8将立即数8直接传送到AX寄存器(4分)
2.简述8086汇编语言中的直接寻址方式【答案】直接寻址方式是指指令的操作数地址直接包含在指令中,操作数存储在内存中例如,MOVAX,[1000H]将内存地址1000H处的数据传送到AX寄存器(4分)
3.简述8086汇编语言中的寄存器寻址方式【答案】寄存器寻址方式是指指令的操作数存储在寄存器中例如,MOVAX,BX将BX寄存器的值传送到AX寄存器(4分)
六、分析题(每题10分,共20分)
1.分析以下8086汇编语言代码的功能```MOVAX,1000HMOVBX,2000HADDAX,BX```【答案】该代码的功能是将AX寄存器的值与BX寄存器的值相加,并将结果存回AX寄存器具体步骤如下
1.MOVAX,1000H将立即数1000H传送到AX寄存器
2.MOVBX,2000H将立即数2000H传送到BX寄存器
3.ADDAX,BX将AX寄存器的值与BX寄存器的值相加,并将结果存回AX寄存器(10分)
2.分析以下8086汇编语言代码的功能```MOVCX,10MOVAX,1LOOPSTARTSTART:INCAX```【答案】该代码的功能是使用循环指令LOOP进行重复操作具体步骤如下
1.MOVCX,10将立即数10传送到CX寄存器,作为循环次数
2.MOVAX,1将立即数1传送到AX寄存器
3.LOOPSTART使用LOOP指令进行循环,每次循环将CX寄存器的值减1,如果CX寄存器的值不为0,则跳转到START标签处继续执行
4.START:INCAX在循环体中,将AX寄存器的值加1该代码将重复执行循环体10次,每次将AX寄存器的值加1,最终AX寄存器的值为11(10分)
七、综合应用题(每题25分,共50分)
1.编写8086汇编语言代码,实现将内存地址1000H开始的连续8个字节的数据传送到以2000H开始的内存区域【答案】代码如下```MOVSI,1000HMOVDI,2000HMOVCX,8REPMOVSB```具体步骤如下
1.MOVSI,1000H将源地址1000H传送到SI寄存器
2.MOVDI,2000H将目的地址2000H传送到DI寄存器
3.MOVCX,8将立即数8传送到CX寄存器,作为要传输的字节数
4.REPMOVSB使用REP指令进行重复操作,每次将SI寄存器指向的源数据传送到DI寄存器指向的目的地址,并将SI和DI寄存器的值分别加1,直到CX寄存器的值减为0(25分)
2.编写8086汇编语言代码,实现将AX寄存器的值右移3位,并将结果存回AX寄存器【答案】代码如下```MOVCL,3SHRAX,CL```具体步骤如下
1.MOVCL,3将立即数3传送到CL寄存器,作为右移位数
2.SHRAX,CL将AX寄存器的值右移CL寄存器的值指定的位数,并将结果存回AX寄存器(25分)---标准答案
一、单选题
1.B
2.A
3.D
4.B
5.B
6.B
7.B
8.A
9.A
10.B
二、多选题
1.A、B、C、D、E
2.A、B、C、D
3.A、B、C、D
4.A、B、C、D
5.B、C、D、E
三、填空题
1.直接使用数字
2.符号标志
3.MOVDS,BX
4.SHRAX,
15.MOVSB
6.零标志
7.MOVAL,
88.SUBSP,2
四、判断题
1.(√)
2.(√)
3.(√)
4.(√)
5.(√)
五、简答题
1.立即寻址方式是指指令的操作数直接包含在指令中,而不是在内存中例如,MOVAX,8将立即数8直接传送到AX寄存器
2.直接寻址方式是指指令的操作数地址直接包含在指令中,操作数存储在内存中例如,MOVAX,[1000H]将内存地址1000H处的数据传送到AX寄存器
3.寄存器寻址方式是指指令的操作数存储在寄存器中例如,MOVAX,BX将BX寄存器的值传送到AX寄存器
六、分析题
1.该代码的功能是将AX寄存器的值与BX寄存器的值相加,并将结果存回AX寄存器具体步骤如下
1.MOVAX,1000H将立即数1000H传送到AX寄存器
2.MOVBX,2000H将立即数2000H传送到BX寄存器
3.ADDAX,BX将AX寄存器的值与BX寄存器的值相加,并将结果存回AX寄存器
2.该代码的功能是使用循环指令LOOP进行重复操作具体步骤如下
1.MOVCX,10将立即数10传送到CX寄存器,作为循环次数
2.MOVAX,1将立即数1传送到AX寄存器
3.LOOPSTART使用LOOP指令进行循环,每次循环将CX寄存器的值减1,如果CX寄存器的值不为0,则跳转到START标签处继续执行
4.START:INCAX在循环体中,将AX寄存器的值加1该代码将重复执行循环体10次,每次将AX寄存器的值加1,最终AX寄存器的值为11
七、综合应用题
1.代码如下```MOVSI,1000HMOVDI,2000HMOVCX,8REPMOVSB```具体步骤如下
1.MOVSI,1000H将源地址1000H传送到SI寄存器
2.MOVDI,2000H将目的地址2000H传送到DI寄存器
3.MOVCX,8将立即数8传送到CX寄存器,作为要传输的字节数
4.REPMOVSB使用REP指令进行重复操作,每次将SI寄存器指向的源数据传送到DI寄存器指向的目的地址,并将SI和DI寄存器的值分别加1,直到CX寄存器的值减为
02.代码如下```MOVCL,3SHRAX,CL```具体步骤如下
1.MOVCL,3将立即数3传送到CL寄存器,作为右移位数
2.SHRAX,CL将AX寄存器的值右移CL寄存器的值指定的位数,并将结果存回AX寄存器。
个人认证
优秀文档
获得点赞 0