2013年汇编语言程序设计期末考试题

更新时间:2023-09-11 13:12:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、单项选择题(本大题共10小题,每小题3分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.CPU要访问的某一存储单元的实际地址称(C)

A. 段地址 B. 偏移地址 C. 物理地址 D. 逻辑地址 2.某存储单元的物理地址是12345H,可以作为它的段地址有(D) A. 2345H B. 12345H C. 12340H D. 1234H 3.执行后使BX=0的同时也使CF=0,OF=0的指令是(A)

A. XOR BX,BX B. OR BX,BX C. AND BX,BX D. CMP BX,BX

4.循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是(B)

A. CX≠0且ZF=1 B. CX≠0且ZF=0 C. CX≠0或ZF=1 D. CX≠0或ZF=0

5.在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是(C) A. DAA校正指令的功能已自动加在AH中

B. 进位值在AF中,校正后根据AF内容再加在AH中 C. 进位值在CF中,校正后根据CF内容再加在AH中 D. 进位值在AL最高位上,校正后根据AL最高位内容再加在AH中 6. AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是(C) A. 指令XOR AX,AX执行后,AX内容不变,但设置了标志位 B. 指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C. 指令AND AX,OFH执行后,分离出AL低四位 D. NOT AX,执行后,将AX清0

1

7. 在执行下列指令时,需要使用段寄存器DS的指令是(D) A. STOSW B. ADD AL,CL C. NEG BX D. INC DA[BX] 8. 无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是(B)

A. ADD BH,01H B. OR BH,01H C. XOR BH,01H D. TEST BH,01H

9. 比较两个带符号的数A、B,当A=B时程序转移,测试的条件为(A) A. ZF=1 B. ZF=0 C. SF=1 D. SF=0 10.下面各传送指令中,正确的是(C)

A. MOV [DI],[SI] B. MOV[DX+DI],AL C. MOV WORD PTR [BX],0100H D. MOV AL,BX 11. 汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法(B) A. 名字的第一个字符可以是大写英文字母及小写英文字母 B. 名字的第一个字符可以是字母、数字及、@、_ C. 名字的有效长度≤31个字符 D. 在名字中不允许出现$

12. 要实现使BETA的值为56,应采用语句为( C )

A .BETA DB 56 B. BETA DB 56H C. BETA EQU 56 D. BETA EQU 56H

13. REPZ CMPSW指令,重复执行的终止条件是( A ) A. CX=0或ZF=0 B. CX=0且ZF=0 C. CX=0或ZF=1 D. CX=0且ZF=1

2

14. 下面程序段执行后,AL中的内容是( B ) MOV AX,8833H ADD AL,AH DAA

A. 21 B .21H C. 0C1H D. 0DDH

15. 比较两个带符号的数A、B,当A=B时程序转移,测试的条件为(A) A. ZF=1 B. ZF=0 C. SF=1 D. SF=0

16. 检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是( C ) A. JNC LOP1 B. JA LOP1 C. JC LOP1 D. JGE LOP1 17. 在下列串操作指令中,同时使用源串和目的串地址指针的指令是( D ) A. STOSW B. LODSW C. SCASW D. CMPSW 18. 设AL=0AH,下列指令执行后能使AL=05H的是( C )

A. NOT AL B. AND AL,0FH C. XOR AL,0FH D. OR AL,0FH 19. DA1 DW?AB?,?CD?,?EF?,?GH?( D )

MOV AX,DA1+3

指令执行后AX中的内容是

A. ?EF? B. ?CD? C. ?BC? D. ?FC? 20. 使用DOS系统功能调用时,使用的软中断指令是(B)

A. INT 21 B. INT 10H C. NT 16H D. INT 21H

3

二、简答题(每题10分,共30分)

1.简述循环程序常用的控制方法。

解: 技术控制:适用于循环次数已知,包括正计数与倒计数两种。采用循环指令LOOP

和JCXZ实现,将最大循环次数置入CX,最后用LOOP对CX减1并判断是否为0。 条件控制:用于循环次数未知。需要用转移指令判断循环条件,转移指令可以指定目的标号来改变程序运行顺序目的标号指向一个重复执行的语句开始或结束,就构成了循环控制结构,循环体为标号语句至转移指令。 混合控制:包括开关控制和逻辑尺控制,前者适用于循环内部有一定规律分支,循环前预置开关走向,结束前设置下一个开关方向。逻辑尺控制适用于内部分支不规律,用位来控制每次循环的操作。

计数控制:循环次数已知,每循环一次+、-1:;常用LOOP指令实现

条件控制:循环次数未知,须根据条件控制循环;用条件转移指令实现 状态控制:根据事先设置或实时检测的状态来控制循环

2.比较参数传递的三种方法,并分析递归调用时为什么不能采用约定存储单元法

来传递数据?

寄存器:将入口参数和出口参数放在与约定的寄存器,数据传递速度快,编程方便,节

约内存单元,但是寄存器数量有限,适用较少的子程序

约定存储单元:不占用寄存

器、参数个数任意,数据都有独立的存储单元,但定义变量有难度。 堆栈:不占用寄存器和存储单元,参数放在公共堆栈区,处理后恢复,注意参数的位置断点保存和恢复。

参数传递的方法主要有约定寄存器法、约定存储器法与堆栈法三种。

1.约定寄存器法

约定寄存器法直接利用CPU内部寄存器传送参数。在转向子程序之前,主程序将入口参数送入指定寄存器中;调用子程序后,子程序从指定寄存器引用这些参数。经加工处理的结果也放入指定的寄存器中,这样从子程序返回主程序后可以从指定的寄存器中获得处理结果。这种方法最简单,但由于寄存器资源有限,故仅适用传递参数较少的情况。 2.约定存储器法

约定存储器法是在存储器中专门指定一些单元存放入口参数和出口参数。在转子程序之 前,主程序用数据传送指令将入口参数存入入口参数的存储单元中。调用子程序后,子程序按照约定从入口参数存储单元中取出这些参数进行处理。子程序完成处理,将处理结果送入指定的出口参数存储单元中,返回后主程序可从这些特定存储单元中获取需要的处理结果。 约定存储器法传送速度比约定寄存器法要慢些,适合于传递参数较多的情况。 3.堆栈法

堆栈法使用堆栈来完成数据传递。在调用子程序之前将参数压入堆栈,转入子程序后通过 sP指针获得压入堆栈的参数地址,从而将其取出。子程序的处理结果亦送入堆栈保存。返回主程序后再通过出栈指令取出结果。使用该方法时应明了堆栈的变化情况,特别注意参

4

数入栈与出栈顺序。

堆栈法适合于参数较多且子程序有嵌套、递归调用的场合。

3.简述外部中断和软件中断的中断过程。

中断是用以提高计算机工作效率、增强计算机功能的一项重要技术。外部中断:当中断源向CPU发出中断请求,CPU接受请求在一定条件下暂停执行原程序进行中断处理,执行完中断服务程序后再返回断点继续执行原程序。软件中断:是一条CPU指令,用以自陷一个中断。由于软中断指令通常要运行一个切换CPU至内核态的子例程,它常被用作实现系统调用.

4.简述循环程序结构的一般组成。

初始化部分:在循环程序的开头,先执行。设置地址指针的初值、计数器的

初值及程序中用到的某些寄存器和某些内存单元的初值,只执行一遍。 工作

部分:从初始化部分设置的初值开始,动态地反复执行相同的操作,实现循环

程序的功能。修改部分:对参加运算的数据或地址指针和记过单元地址指针修改 控制部分:按预定循环次数的执行和正常退出循环。

5.简述多分支程序实现的一般步骤与常用处理方法。

使用条件转移JCC指令和无条件专题JMP指令实现分支程序结构。获得

条件变量-->对应转换为地址表入口偏移-->BX=BX+入口偏移JMP[BX]跳转到相应位置。常用地址表的方法。无法使用地址表,只能通过多条条件转移指令实现。

6.简述完整子程序结构所包含的内容。

子程序也是一段程序,由文字说明和子程序本身构成。一般由子程序名、子程序的功能。子程序选用的寄存器名和存储单元分配、子程序入口参数、子程序出口参数。

5

本文来源:https://www.bwwdw.com/article/974h.html

Top