浙江省2001年10月高等教育自学考试汇编语言程序设计试题作者名:不详 来源:网友提供 06年6月8日
一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 10 分 ) 1. 把若干个模块连接起来成为可执行文件的系统程序是 ( ) A. 汇编程序 B. 连接程序 C. 机器语言程序 D. 源代码程序 2. 使汇编程序执行某种操作的命令是 ( ) A. 变量 B. 指令 C. 伪指令 D. 宏指令 3. 串操作指令中,目的操作数的段地址一定在 ( ) 寄存器中 A. CS B. SS C. DS D. ES 4. 在下列语句中, AGAIN 称为 ( ) AGAIN : INC SI A. 符号 B. 助记符 C. 标号 D. 变量 5.MOV BH , 1000 [ SI ],该指令中源操作数采用的寻址方式是 ( ) A. 立即 B. 直接 C. 寄存器相对 D. 寄存器间接 6.OR AL , AL 是 ( ) 操作指令。 A. 异或 B. 加法 C. 右移 D. 逻辑或 7.DOS 系统功能调用中,显示单个字符的系统调用号是 ( )H 。 A. 01H B. 02H C. 08H D. 09H 8. 使计算机执行某种操作的命令是 ( ) A. 宏指令 B. 指令 C. 伪指令 D. 语句 9. 换码指令的助记符是 ( ) A. XCHG B. LEAS C. ALXT D. MOV 10. 计算机能直接识别并执行的语言是 ( ) A. 汇编语言 B. 机器语言 C. 高级语言 D. 低级语言 二、填空题 (共20分) 1. 假设 BL=0C5H , CL=2,CF=1 ,确定下列各条指令独立执行后, BL 和 CF 中的值,并填入括号中。 A. SHR BL , 1 ; BL=( ) CF=( ) B. SAR BL , CL ; BL=( ) CF=( ) C. ROR BL , 1 ; BL=( ) CF=( ) D. RCL BL , CL ; BL=( ) CF=( ) 2. 现有数据定义伪指令如下,写出对应的数据在存储单元中的存放形式。 BUF1 DB 01 , 52H BUF2 DW 3 DUP(? , 0) BUF3 DB 2 DUP(0 , 2DUP(1 , 2) , 3)
3. 计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是 ______ 码,称为美国 ______ 码。 4.8086/8088CPU 中,有二个变址寄存器,分别是 ______ 和 ______ ,二个指针寄存器,分别是 ______ 和 ______ 。 三、简答题 (每小题5分,共20分) 1. 请指出下列指令错误原因: A. OR AX ,[ CX ] B. ADD [ SI ],[ BX ][ DI ] C. JMP BYTE PTR LOOPS D. SAR AX , 4 E. RCL DX 2. A. 下面两个语句有何区别 ? X 1 EQU 1000H X 2 =1000H B. 下面的程序段有错吗 ? 若有,请指出错误。 CRAY PROC PUSH AX ADD AX , BX RET ENDP CRAY 3. 假设程序中的数据定义如下: ARRAY1 DW ? ARRAY2 DB 16 DUP(?) ARRAY3 DD ? PLENTH EQU $-ARRAY1 问 PLENTH 的值为多少 ? 它表示什么意义 ? 4. 试根据以下要求,分别写出相应的汇编语言指令。 A. 把 AX 寄存器和 BX 寄存器的内容相加,结果存入 AX 中。 B. 用 BX 和 SI 的基址变址寻址方式,把存储器中的一个字节与 DL 的内容相加,并把结果送回 DL 中。 C. 把数 OBEH 与 AH 内容相加,结果送回 AH 中。 D. 用 SI 和位移量 0200H 的寄存器相对寻址方式把存储器中的一个字与 AX 相加,并把结果送回存储单元中。 E. 用位移量 0860H 的直接寻址方式把存储器中一个字与数 2EA0H 相加,结果回送存储器中。 四、程序分析题 (每小题5分,共20分) 1. 试分析下面程序段完成什么功能 ? CON1 DW ×××× H CON2 DW ×××× H ┇ MOV AX , CON1 MOV BX , CON2 CMP AX , BX JGE GREAT
LESS 2. 试分析下面程序段完成什么功能 ? OR AL , AL JZ L 0 CMP AL , 1 JZ L 1 CMP AL , 2 JZ L 2 JMP STOP L 0 : ┇ L 1 : ┇ L 2 : ┇ STOP : HLT 3. 试问下面的程序段完成的功能是什么 ? 程序执行后, AX 的内容是什么 ? XOR AX , AX MOV BX , 2 MOV CX , 10 L : ADD AX , BX ADD BX , 2 LOOP L HLT 4. 试分析下面的程序段完成什么功能 ? MOV CL , 04 SHL DX , CL MOV BL , AH SHL AX , CL SHR BL , CL OR DL , BL 五、程序设计 (每小题10分,共30分) 1. 试编写使 AL 寄存器中的无符号数乘 20 的程序段。 2. 编写程序将 ELEMS 中的 100 个字节数据的位置颠倒过来 ( 即第一个字节和第 100 个字节的内容交换,第二个字节和第 99 个字节的内容交换…… ) 。 3. 仔细阅读下列程序段,它是二个 ASCII 码转换为一字节十六进制数的子程序,请回答下列问题: A. 说明一个 ASCII 码字符转换为一位十六进制数的算法。 B. 程序执行结束后, HEXBUF 字节单元中的内容是什么 ? C. 对程序进行注释,说明指令执行的工作。 ┇ ASCBUF DB 38H , 41H HEXBUF DB ? ┇ LEA SI , ASCBUF LEA DI , HEXBUF MOV CL , 4 MOV AL ,[ SI ] CALL ASC-HEX MOV [ DI ], AL MOV AL ,[ SI+1 ] CALL ASC-HEX OR [ DI ], AL HLT ASC_HEX PROC NEAR CMP AL , 3AH JC ASC1 SUB AL , 7 ASC1 : SUB AL , 30H RET ┇ 浙江省 2001 年 10 月高等教育自学考试 汇编语言程序设计试题参考答案 课程代码: 02321 一、单项选择题 (每小题1分,共10分) 1.B 2.C 3.D 4.C 5.C 6.D 7.B 8.B 9.C 10.B 二、填空题 (共20分) 1.(8 分 ) A. 62H , 1 B. 0F1H , 0 C. 0E2H , 1 D. 17H , 1 2.(每题2分,共6分)
3. ASCII 标准信息 4. SI DI SP BP 三、简答题 (每小题5分,共20分) 1.A.CX 不能作为间接寻址寄存器 B. 加法指令不能完成存储单元之间的加法运算 C. 转移指令中,转向标号地址的属性说明错 D. 移位指令格式错,当移位次数大于 1 时,需用 CL 给出 E. 指令中应指出移位次数 2.A. 第一个语句中, X1 不能多次赋值,而 X2 可以多次赋值 B. 程序最后一行有错,应写成: CRAY ENDP 3. 22 它表示 ARRAY1 到 ARRAY3 所占存储单元的字节数 4. A. ADD AX , BX B. ADD DL ,[ BX ][ SI ] C. ADD AH , OBEH D. ADD [ SI+0200H ] ,AX E. ADD [ 0860H ], 2EA0H 四、程序分析题 (每小题5分,共20分) 1. 比较两个 16 位有符号数,当 (CON1)>=(CON2) 时转 GREAT 处理,否则转 LESS 处理。 2. 判断 AL 中的内容,若 AL=0, 转 L 0 处理; 若 AL=1, 转 L 1 处理; 若 AL=2, 转 L 2 处理; 其它转结束 (STOP) 。 3. 求 2 ~ 20 之间偶数之和 AX=110( 或 6EH) 。 4. 把 DX 、 AX 中的双字左移四位。 五、程序设计 (每小题10分,共30分) 1. MOV AH , 00 MOV BX , AX MOV CL , 02 SHL AX , CL MOV DX , AX MOV AX , BX MOV CL , 03 SHL AX , CL ADD AX , AX ADD AX , DX 2. MOV CX , 50 LEA SI , ELEMS LEA DI , ELEMS+99 REVERSE : MOV AL ,[ SI ] XCHG AL ,[ DI ] MOV [ SI ], AL INC SI INC DI LOOP REVERSE 3.A. 十六进制数的 ASCII 码, 0 ~ 9 对应 30 ~ 39H(ASCII 码 ) , A ~ F 对应 41H ~ 45H(ASCII 码 ) ,此算法是:首先 ASCII 码与 3AH 比较,若小于 3AH ,就是 0 ~ 9 的 ASCII 码,将它减去 30H ,即得十六进制数 0 ~ 9 ;否则,要再减去 7( 如 41H-37H=0AH) ,即可得 A ~ F 的十六进制数。 B. 8AH ┇ LEA SI , ASCBUF ; SI ← ASCBUF 偏移地址 LEA DI , HEXBUF ; DI ← HEXBUF 偏移地址 MOV CL , 04 ; CL ←移位次数 4 MOV AL ,[ SI ]; AL ←第一个 ASCII 码 CALL ASC_HEX ;调用 ASCII 码转换一位十六进制数子程序 SHL AL , CL ;转换后的十六进制一位数移入高位 MOV [ DI ], AL ; HEXBUF 单元←转换十六进制数 MOV AL ,[ SI+1 ]; AL ←第二个 ASCII 码 CALL ASC-HEX ;调用转换子程序 OR [ DI ], AL ;高位与低位组合成一字节十六进制数 HLT ASC_HEX PROC NEAR ; 子程序名定义 CMP AL , 3AH ; ASCII 码与 3AH 比较 JC ASC1 ;小于,转 ASC1 SUB AL , 7 ;大于, ASCII 码减 7 ASC1 : SUB AL , 30H ; ASCII 码减 30H RET ;子程序返回指令
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |