您好,欢迎来到步遥情感网。
搜索
您的当前位置:首页湘潭大学06级汇编语言程序设计试卷A

湘潭大学06级汇编语言程序设计试卷A

来源:步遥情感网
 制卷人签名 制卷日期 审核人签名:: 审核日期:

…………………………………………………………………………………………………………………………………………………………………………………

……………………………………………………………装…………………… 订……………………线…………………………………………………………………

湘潭大学2008 学期2006级《汇编语言程序设计课程考试试卷

A1卷) 适用年级专业 计算机科学技术、网络工程

考试方式 闭卷 试时间 120 分钟

学院 专业 班级

学号 姓名

总分阅卷

教师

………………………………………………………………………………………………………………

一、判断题(每小题1分,共10分)

以下各题中,每题给出了一个汇编语言的指令语句或者伪指令语句,请判定其合法性。对合法的语句记“”,否则记“”。记于题后的括号中。

1. score RECORD fvg 1 = 1, abc 5 = 23, cls3 = 101B

2.ITEM STRUC 40 DUP < >

3. LOCAL PRG1, PRG3 , OVERFLOW

4. PURGE LODSB, PUSHA, POPA, OPERATION

5. MOV VARW, [BX + DI + 1234H ]

6. XCHG DS, [ BP + SI + 1056H ]

7. MOV BYTE PTR VARBDL

8. LES AX, DWORD PTR [ BX + SI + 100 ]

9. SBB CSWORD PTR WARW

10. HTOASC MACRO OPRABC&DOCP

二、选择题(每小题2 分,共 20 分)

以下各题中,每题含 4 个选项,其中仅有一个是正确答案,请将正确答案

对应选项的符号(ABCD)记于题后的括号中。

1. 关于“条件汇编语句”,以下陈述中不正确的说法是:

A. 条件汇编语句是“执行语句”。 B. 条件汇编语句是“说明性语句”。

C. 条件汇编语句是伪指令语句。 D. 条件汇编语句由汇编程序执行。

2. 关于“条件汇编语句”,以下陈述中不正确的说法是:

A. 条件伪指令 IFIDN 仅用于宏定义中。 B. 条件伪指令IFNB仅用于宏定义中。

C. 条件汇编语句的功能由目标程序实现。 D. 条件汇编语句以ENDIF 结束。

3. 关于“宏汇编”,以下陈述中不正确的说法是:

A. “宏”的使用始于“宏定义”。 B. “宏”通过执行发挥作用。

C. “宏”通过“宏代换”发挥作用。 D. “宏”可以带有参数。

4. 关于“记录数据”,以下陈述中不正确的说法是:

A. 程序中首先需要说明记录类型 B. RECORD 是伪指令语句。

C. 可通过“名字”访问记录数据的字段。 D. 可用RECORD定义变量。

5. 关于8086的“十进制调整”指令,以下陈述中不正确的说法是:

A. 它们与算术运算指令一起发挥作用。 B. AAD 应出现在除法指令之后。

C. AAD 应出现在程序中相应除法指令之前。 D. AAD 用于未组合BCD码除法。

6. 关于8086的“串处理”指令,以下陈述中不正确的说法是:

A. 可在基本串处理指令前加“重复前缀”。 B. REPNZ 是一个“重复前缀”。

C. 目的串指针固定地为ESDI D. 串处理指令改变标志DF的值。

7. 关于8086的“控制转移”指令,以下陈述中不正确的说法是:

A. 条件转移指令都是“段内转移”的指令。 B. JCXZ是“循环指令”。

C. 条件转移指令都使用“绝对转移”形式。 D. INT 指令属于“控制转移”指令。

8. 关于“数据传送”指令,以下陈述中不正确的说法是:

A. “交换指令”的“源”可以是段寄存器。 B. CS 不能作为“目的寄存器”。

C. 两个操作数不能都是存储器操作数。 D. 立即数不能直接送入段寄存器。

9. 关于8086的“标志寄存器”,以下陈述中不正确的说法是:

A. 标志DF属于“运算结果标志”。 B. IF 属于“状态控制标志”。

C. 可将标志寄存器内容压入堆栈。 D. 可与AH寄存器实现数据传送。

10. 关于8086的“通用寄存器”,以下陈述中不正确的说法是:

A. 数据寄存器都可用作“基址寄存器”。 B. 88位的数据寄存器。

C. SP可被用作保存加法运算结果的寄存器。 D. DX 被称为“数据寄存器”。

三、填空题(每空1 分,共20分)

根据题意在下列各题的括号内填入正确的内容。要求:字迹清晰、工整;用语准确。

1. 说明结构类型的汇编程序以伪指令语句( )开始、( )结束。

2. 开始一个重复块的伪指令语句是( )、( )和( )。

3. 四条循环指令分别是( )、( )、( )和( )。

4. 中止宏扩展的伪指令是( );清除宏定义的伪指令是( )。

5. 8086的“字除法”指令中,被除数长( )位,使用( )寻址,结果的“商”存放在寄存器( )中,余数存放在寄存器( )中。

6. 8086的数据寄存器中,仅有一个寄存器可用在存储器操作数的地址表达式中,该寄存器是( )。

7. 80x86的基本串处理指令有5条,分别是:( )指令、( )指令、( )指令、( )指令和( )指令。

四、计算题(每小题4分,共20分)

以下各题的每题给出了一个程序片断,请按要求在相应的括号内填入计算机执行程序的相应结果。

1. 程序片断1

……

MOV AX 3456H

ADD ALAH OF = SF =

DAA ;(AL = AF =

……

2. 程序片断2

……

MOV AX, 6

ADD AL, 4 ;(AF = ,PF =

AAA ;(AH = ,AL =

……

3. 程序片断3

……

MOV AX, 236H

STC

SBB AL, 8 ;(AL = ,AF =

AAS ;(AL = ,AH =

……

4. 程序片断4

……

MOV AX, 946BH

AND AL, AH ;(ZF = ,AL =

MOV CL, AL

INC CL

SAR AH, CL ;(CF = ,AH =

……

5. 程序片断5

……

MOV AX, 9669H

XOR AL, AH :(PF = ,AL =

MOV CL, AL

ADD CL, 2

ROL AH, CL ;(CF = ,AH =

……

五、程序填空题(2/空,共10分)

下面程序的功能是将输入缓冲区中的一个十进制数字串转换为16位无符号二进制数。程序中留有若干空缺,请将其填补上,实现程序功能。

;数据段

DSEG SEGEMENT

operand DB 5334H32H34H0DH

result DW ?

DSEG ENDS

代码段

CSEG SEGMENT

ASSUME CSCSEGDSDSEG

BEGINMOV AX, DSEG

MOV DS, AX

MOV BX, operand

MOV AL, [ BX + 1 ]

XOR AH, AH

MOV SI, AX

XOR DH, DH

XOR DI, DI

MOV DL, ;取数字符

AND DL, 0FH

PRG1 DI

CMP DI, SI

JZ PRG2 ;转结束处理

PUSH DX

MOV AX, 10 DX=DX)×10 + dj

MUL DX

MOV DX,

POP AX

MOV AL,

AND AL, 0FH

ADD DL, AL

ADC DH, 0

JMP PRG1

PRG2MOV result, DX

MOV AX, 4C00H

INT 21H

CSEG ENDS

END BEGIN

六、程序改错题(10分)

以下程序中存在若干错误。请将错误所在划线指出,并将正确的结果写在相应代码行的后面(在本代码行中)。若误将正确代码行(或其成分)划线,则每错划一处扣1分,直至本题得分为0止(能正确标识错误则记1/错)。

;程序功能:将一个字节数据中的低4位转换为ASCII

DSEG SEGMENT

DGHEX DB 5AH

RESULT DB ?

DSEG ENDS

CSEG SEGMENT

ASSUME CSCSEGDSDSEG

STARTMOV AX, DSEG

MOV DS, AX

MOV AX, DGHEX

AND AL, 0FFH

CMP AL, 9

JB PRG1

ADD AL, ’A’- 10

PRG1ADD AL, 48

MOV RESULT, AL

MOV AL, 4CH

INT 21H

CSEG ENDS

END START

七、程序设计题(10分)

试题给出了一个欠完整的汇编语言程序,请基于此给定程序,回答所是各有关问题。

说明:(1)程序功能:将指定输入缓冲区中由十进制数字字符组成的数字串转换为一

16位的无符号二进制数;输入缓冲区的数据组织格式满足DOS 0A

系统调用的要求;假定输入缓冲区中的内容已经过检查,确认无错。

2)参数规定:输入缓冲区首址经堆栈传入子程序;子程序的处理结果经AX

寄存器返回。

3)要求使用“结构”抽象子程序入口处堆栈栈顶的内容。

问题:(1)给出子程序的详细说明信息;(1分)

2)画出子程序的程序流程图;(3分)

3)补充完善子程序的代码。(6分)

已有的子程序代码(含需要补充的内容的说明)如下:

…… ;说明“结构”类型(1分)

BCDTOB PROC FAR

PUSH BP

MOV BP, SP

…… ;保护寄存器(2分)

MOV DS, [ BP ].STRSEG

MOV BX, [ BP ].STROFF

INC BX

MOV AL, [ BX ]

XOR AH, AH

MOV SI, AX

…… ;清零DXDI1分)

INC BX

MOV DL, [ BX ][ DI ]

AND DL, 0FH

BCDTOB1INC DI

CMP DI, SI

JZ BCDTOB2

PUSH DX

MOV AX, 10

MUL DX

MOV DX, AX

MOV AL, [ BX ][ DI ]

AND AL, 0FH

ADD DL, AL

ADC DH, 0

POP AX

JMP BCDTOB1

BCDTOB2MOV AX, DX

…… ;恢复寄存器(2分)

RET 4

BCDTOB ENDP

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

Copyright © 2019- obuygou.com 版权所有 赣ICP备2024042798号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务