您的当前位置:首页正文

《汇编语言》试卷及答案

2022-05-27 来源:易榕旅网
《汇编语言程序设计》试卷

一、选择题(每题2分,共20分) 1.能够被计算机直接执行的语言称为( )。 a、高级语言 b、汇编语言 c、自然语言 d、机器语言

2.可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是( )。 a、AX,BX,CX,DX b、DS,ES,CS,SS c、SP,BP,IP,BX d、SI,DI,BX,BP

3.FR寄存器的各个标志位中,如果出现ZR,其含义为( )。 A.结果为0 B.结果不为0 C.结果溢出 D.结果没有溢出

4.汇编语言中,存储区的存储原则是( ) 。 A.低低高高 B.高高低低 C.随机 D.以上均错

5.要将汇编语言目标文件生成可执行文件,应该通过( )工具生成。 A.EDIT B.MASM C.LINK D.DEBUG 6.下列哪种寻址方式无法访问存储单元( )。

A.基址+变址 B.直接寻址 C.寄存器寻址 D.寄存器的相对寻址 7.非压缩的BCD码乘法调整指令为( )。 A.AAS B.AAM C.DAA D.AAD

8.要使一个段从一个节的位置开始存储,应该使用的定位类型为( ) A.PAGE B.PARA C.DWORD D.WORD 9.DOS功能21H号的9号功能其入参为( )

A.DS:DX B.DS:SI C.DS:DI D.ES:DX 10.控制计算机面板扬声器的端口地址为( )。

1

A.71H B.70H C.16H D.61H 二、填空题(每空2分,共20分)

1. 计算机中的存储基本单位为___(1)____ 。

2. 8086/8088CPU中共有 (2) 个16位通用寄存器。

3. DEBUG命令中,查看内存单元内容的命令为 (3) ,读当前寄存器的命令为 (4) ,执行程序的命令为 (5)。

4. MOV AX,[SI+BP+1234H]该指令的寻址方式为 (6) 。

5. 想要访问CMOS芯片,需要通过___ (7) 端口和 (8) ___端口。 6. 变换键的状态字中,D5和D6位分别代表的是 (9) 以及 (10) 状态变化。

三、简答题(5*6分=30 分) 1、简述汇编语言的编辑于调试步骤。

2、请分析该图中用线框起来的这8个标志分别代表的是什么标志的值?其含义是什么?

NV: UP: EI: PL: NZ: NA: PO: NC:

3、简述DOS功能的基本调用步骤。

4、简述子程序与主程序之间参数传递的三种方

5、简述21H号功能的6号功能调用的入口参数及出口参数。 四、程序设计题(共2题,共30 分)

2

(1)在屏幕上重复显示字符“A”,直到按下CTRL+C或CTRL+B组合键为止(10分)。 (2)编写一个程序,完成如下功能:在屏幕的中间开出一个窗口,随后接收用户按键,并把按键显示在窗口的最底行,当窗口底行显示满时,窗口内容就向上滚动一行。该程序使用CTRL+C键结束。(20分)

一、选择题(每题2分,共20分) 1 D 2 D 3 A 4 B 5 C 6 C 7 B 8 B 9 A 10 D 二、填空题(每空2分,共20分) 1 3 5 7 9 字节 D命令 G命令 70H NUM LOCK 2 4 6 8 8 R命令 相对的基+变 71H 10 CAPS LOCK 三、解答题(共30 分)

1、简述汇编语言的编辑于调试步骤。

(1)用EDIT编辑程序建立汇编语言程序源文件;

(2)用MASM汇编程序把汇编语言源文件汇编成目标文件; (3)用LINK链接程序把目标文件链接成可执行文件;

(4)使用DEBUG调试结果或直接输入可执行文件名。

2、请分析该图中用线框起来的这8个标志分别代表的是什么标志的值?其含义是什么?

NV:溢出标志,代表没有溢出; UP:方向标志,代表递增; EI:中断标志,代表允许中断; PL:符号标志,代表结果为正; NZ:零标志,代表结果不为0;

NA:辅助进位标志,代表结果没有辅助进位;

3

PO:奇偶标志,代表结果为奇数; NC:进位标志,代表没有进位。

3、简述DOS功能的基本调用步骤。 (1)功能号送AH寄存器 (2)准备入参 (3)发出INT 21H

4、简述子程序与主程序之间参数传递的三种方法 (1)寄存器传递 (2)存储器传递 (3)堆栈传递

5、简述21H号功能的6号功能调用的入口参数及出口参数。

入口参数:如果DL=0FFH,则表示该功能调用是输入;如果DL=XX(非0FFH),则将DL的ASCII码输出;

出口参数:输入时,ZF=1表示无字符可读,ZF=0表示读到字符,AL=输入字符的 ASCII码;输出时,无出口参数。

四、程序设计题(共2题,共30分)

(1)在屏幕上重复显示字符“A”,直到按下CTRL+C或CTRL+B组合键为止。(10分)

CSEG SEGMENT ASSUME CS:CSEG START:

MOV DL,\"A\" MOV AH,02H

INT 21H ;显示字符“A” INC BX

JMP START ;死循环 MOV AH,4CH INT 21H CSEG ENDS END START

(2)编写一个程序,完成如下功能:在屏幕的中间开出一个窗口,随后接收用户按键,并把按键显示在窗口的最底行,当窗口底行显示满时,窗口内容就向上滚动一行。该程

4

序使用CTRL+C键结束。(20分) WINWIDTH=40 ;窗口宽度

WINTOP=8 ;窗口左上角行号 WINLEFT=20 ;窗口左上角列号 WINBOTTOM= 17 ;窗口右下角行号 WINRIGHT= 59 ;窗口右下角列号 COLOR= 74H ;属性值 PAGEN=0 ;显示页

CTRL_C=03H ;结束符ASCII码 CSEG SEGMENT ASSUME CS:CSEG START:

MOV AL,PAGEN ;选择显示页 MOV AH,5 INT 10H

MOV CH,WINTOP ;清窗口 MOV CL,WINLEFT MOV DH,WINBOTTOM MOV DL,WINRIGHT MOV BH,COLOR MOV AL,0 MOV AH,6 INT 10H

MOV BH,PAGEN ;将光标定位到窗口左下角 MOV DH,WINBOTTOM MOV DL,WINLEFT MOV AH,2 INT 10H NEXT:

MOV AH,0 ;接收一个键 INT 16H

CMP AL,CTRL_C ;判断是否为结束键 JZ EXIT ;是,则转EXIT标号 MOV BH,PAGEN ;否,则显示该按键 MOV CX,1 MOV AH,0AH INT 10H

INC DL ;准备向右移动光标

CMP DL,WINRIGHT+ 1 ;判断是否超出窗口范围

5

JNZ SETCUR ;否,则转SETCUR标号 MOV CH, WINTOP ;是,则窗口内容上滚一行 MOV CL,WINLEFT ;空出窗口最底行 MOV DH,WINBOTTOM MOV DL,WINRIGHT MOV BH,COLOR MOV AL,1 MOV AH,6 INT 10H

MOV DL,WINLEFT SETCUR:

MOV BH,PAGEN MOV AH,2 INT 10H JMP NEXT EXIT:

MOV AH,4CH

INT 21H CSEG ENDS END START

6

;光标后移 返回DOS

因篇幅问题不能全部显示,请点此查看更多更全内容