还剩7页未读,继续阅读
文本内容:
汇编实验测试题经典题目与答案
一、单选题(每题1分,共10分)
1.下列哪条指令不是8086汇编语言中的指令?A.MOVB.ADDC.JMPD.IF【答案】D【解析】IF是高级语言中的条件语句,不是汇编指令
2.在汇编语言中,寄存器AX的16位可以分成两个8位寄存器,分别是?A.AH和ALB.AH和BLC.BH和ALD.CH和AH【答案】A【解析】AX分成AH(高8位)和AL(低8位)
3.下列哪个寄存器用于存储段地址?A.AXB.BXC.DSD.CS【答案】C【解析】DS是数据段寄存器,存储数据段的段地址
4.8086汇编语言中,数据传送指令MOVA,B的功能是?A.将B的值传送到AB.将A的值传送到BC.A与B相加D.A与B相减【答案】A【解析】MOVA,B表示将B的值传送到A
5.下列哪条指令用于将寄存器AX的值与立即数5相加?A.ADDAX,5B.SUBAX,5C.MULAX,5D.DIVAX,5【答案】A【解析】ADD用于加法运算
6.在汇编语言中,标志寄存器中哪个标志位用于表示无符号数溢出?A.CFB.OFC.SFD.ZF【答案】A【解析】CF是进位标志,用于无符号数溢出
7.下列哪条指令用于将寄存器BX的值左移一位?A.SHLBX,1B.SHRBX,1C.ROLBX,1D.RORBX,1【答案】A【解析】SHL用于左移操作
8.在汇编语言中,下列哪个指令用于跳转到标签Label?A.JMPLabelB.CALLLabelC.RETLabelD.GOTOLabel【答案】A【解析】JMP用于无条件跳转
9.下列哪个寄存器用于存储堆栈段地址?A.SSB.CSC.DSD.ES【答案】A【解析】SS是堆栈段寄存器
10.在汇编语言中,下列哪个指令用于将寄存器AX的值与寄存器BX的值相乘?A.MULBXB.IMULBXC.ADDAX,BXD.SUBAX,BX【答案】A【解析】MUL用于无符号数乘法
二、多选题(每题4分,共20分)
1.下列哪些是8086汇编语言中的寄存器?A.AXB.BXC.CXD.DXE.IF【答案】A、B、C、D【解析】IF不是寄存器,是中断标志
2.下列哪些指令用于数据传送?A.MOVB.ADDC.PUSHD.POPE.JMP【答案】A、C、D【解析】ADD是算术指令,JMP是跳转指令
3.下列哪些指令用于逻辑运算?A.ANDB.ORC.XORD.ADDE.SUB【答案】A、B、C【解析】ADD和SUB是算术指令
4.下列哪些寄存器是通用寄存器?A.AXB.BXC.CXD.DXE.IP【答案】A、B、C、D【解析】IP是指令指针寄存器,不是通用寄存器
5.下列哪些指令用于堆栈操作?A.PUSHB.POPC.CALLD.RETE.MOV【答案】A、B、C、D【解析】MOV是数据传送指令
三、填空题(每题2分,共8分)
1.在8086汇编语言中,寄存器AX的16位可以分成两个8位寄存器,分别是______和______【答案】AH;AL
2.下列指令______用于将寄存器AX的值与立即数5相加【答案】ADDAX,
53.在汇编语言中,标志寄存器中哪个标志位用于表示无符号数溢出?______【答案】CF
4.下列指令______用于将寄存器BX的值左移一位【答案】SHLBX,1
四、判断题(每题2分,共10分)
1.两个正数相加,和一定比其中一个数大()【答案】(√)【解析】两个正数相加,和一定大于其中一个数
2.指令JMPLabel是无条件跳转指令()【答案】(√)【解析】JMP用于无条件跳转
3.寄存器AX的16位可以分成AH和AL两个8位寄存器()【答案】(√)【解析】AX分成AH(高8位)和AL(低8位)
4.指令PUSHAX的功能是将AX的值压入堆栈()【答案】(√)【解析】PUSH用于将数据压入堆栈
5.标志寄存器中的ZF用于表示零标志()【答案】(√)【解析】ZF是零标志位
五、简答题(每题3分,共9分)
1.简述8086汇编语言中寄存器的分类【答案】8086汇编语言中的寄存器可以分为通用寄存器、段寄存器、控制寄存器和指令指针寄存器通用寄存器包括AX、BX、CX、DX等,用于数据存储和运算;段寄存器包括DS、CS、SS、ES,用于存储段地址;控制寄存器包括IP、Flags等,用于控制程序执行;指令指针寄存器IP用于存储下一条指令的地址
2.简述汇编语言中堆栈操作的基本原理【答案】堆栈是一种后进先出(LIFO)的数据结构,汇编语言中通过PUSH和POP指令进行堆栈操作PUSH指令将数据压入堆栈,POP指令将数据弹出堆栈堆栈操作通常用于保存和恢复寄存器值以及函数调用
3.简述汇编语言中标志寄存器的作用【答案】标志寄存器用于存储算术和逻辑运算的结果状态,其中包括进位标志CF、溢出标志OF、符号标志SF、零标志ZF等这些标志位可以用于条件跳转指令,控制程序的执行流程
六、分析题(每题10分,共20分)
1.分析以下汇编代码的功能```assemblyMOVAX,1000HADDAX,2000HJMPLabel```【答案】该代码首先将立即数1000H传送到寄存器AX,然后将立即数2000H加到AX上,最后无条件跳转到标签Label处继续执行
2.分析以下汇编代码的功能```assemblyPUSHAXPUSHBXMOVAX,1000HMOVBX,2000HADDAX,BXPOPBXPOPAX```【答案】该代码首先将寄存器AX的值压入堆栈,然后将寄存器BX的值压入堆栈接着将立即数1000H传送到寄存器AX,将立即数2000H传送到寄存器BX,并将AX和BX的值相加最后,依次将BX和AX的值从堆栈中弹出
七、综合应用题(每题25分,共50分)
1.编写一段汇编代码,实现将寄存器AX的值与立即数5相加,并将结果存储在寄存器BX中【答案】```assemblyMOVAX,1000H;将立即数1000H传送到AXADDAX,5;将AX的值与立即数5相加MOVBX,AX;将结果存储在BX中```
2.编写一段汇编代码,实现将寄存器AX的值左移一位,并将结果存储在寄存器BX中【答案】```assemblyMOVAX,1000H;将立即数1000H传送到AXSHLAX,1;将AX的值左移一位MOVBX,AX;将结果存储在BX中```---标准答案
一、单选题
1.D
2.A
3.C
4.A
5.A
6.A
7.A
8.A
9.A
10.A
二、多选题
1.A、B、C、D
2.A、C、D
3.A、B、C
4.A、B、C、D
5.A、B、C、D
三、填空题
1.AH;AL
2.ADDAX,
53.CF
4.SHLBX,1
四、判断题
1.(√)
2.(√)
3.(√)
4.(√)
5.(√)
五、简答题
1.8086汇编语言中的寄存器可以分为通用寄存器、段寄存器、控制寄存器和指令指针寄存器通用寄存器包括AX、BX、CX、DX等,用于数据存储和运算;段寄存器包括DS、CS、SS、ES,用于存储段地址;控制寄存器包括IP、Flags等,用于控制程序执行;指令指针寄存器IP用于存储下一条指令的地址
2.堆栈是一种后进先出(LIFO)的数据结构,汇编语言中通过PUSH和POP指令进行堆栈操作PUSH指令将数据压入堆栈,POP指令将数据弹出堆栈堆栈操作通常用于保存和恢复寄存器值以及函数调用
3.标志寄存器用于存储算术和逻辑运算的结果状态,其中包括进位标志CF、溢出标志OF、符号标志SF、零标志ZF等这些标志位可以用于条件跳转指令,控制程序的执行流程
六、分析题
1.该代码首先将立即数1000H传送到寄存器AX,然后将立即数2000H加到AX上,最后无条件跳转到标签Label处继续执行
2.该代码首先将寄存器AX的值压入堆栈,然后将寄存器BX的值压入堆栈接着将立即数1000H传送到寄存器AX,将立即数2000H传送到寄存器BX,并将AX和BX的值相加最后,依次将BX和AX的值从堆栈中弹出
七、综合应用题
1.```assemblyMOVAX,1000H;将立即数1000H传送到AXADDAX,5;将AX的值与立即数5相加MOVBX,AX;将结果存储在BX中```
2.```assemblyMOVAX,1000H;将立即数1000H传送到AXSHLAX,1;将AX的值左移一位MOVBX,AX;将结果存储在BX中```。
个人认证
优秀文档
获得点赞 0