汇编试卷

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

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

汇编语言期末考试试题

学校: 系: 姓名: 记分: 一、 一、填空题(共15分,每空0.5分)

1.8088/8086 CPU内部共有 个寄存器,其中有 个通用寄存器、 个变址寄存器、 个段寄存器。

2.8088/8086 CPU有 种数据寻址方式,其中采用 寻址方式的指令执行速度最快。

3.IBM-PC计算机全部指令的集合称为它的 。这些指令按功能可以分为六大类:数据传送指令、算术指令、 、串处理指令、 和 。

5.在不改变段寄存器的前提下,IBM-PC计算机内存寻址的最大范围是

字节。若CS=1234H,SS=2341H,DS=3412H,BP=8756H,则以BP寄存器间接寻址的非段超越的内存单元的物理地址是 。

7.程序有顺序结构 、 、 和 四种结构。

8.循环程序有两种结构形式,一种是 ,另一种是 ,当有可能一次也无需执行循环体时采用前者。

9.8088/8086允许使用 个中断向量,每个中断向量占 个字节,系统的低段地址从 到 存放着中断向量表。 10.下面是对DOS功能调用方法的简单说明:

(1)在AH寄存器中存入所要调用功能的 。 (2)根据所调用功能的规定设置 。 (3)用 指令转入子程序入口。

(4)相应的子程序运行完后,可以按规定取得 。 11.设(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=34H,(20101H)=56H,

(20102H)=12H,(20103H)=76H,(21200H)=B7H,(21201H)=2AH,(21202H)=4CH, (21203H)=56H,则指令“mov ax, 1100[si][bx] ”执行后,寄存器ax的内容为 。

12.在0624单元内有一条两字节指令“jmp short obj”,如其中位移量为0B2H,则转向目的地址(有效地址)是 。

13.微型计算机的I/O数据传输方式中, 方式的数据传输不需要CPU直接控制。 14.CPU是否响应外部中断请求的两个条件是: (1) ;(2) 。

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

1.[ ]下列标号不合法的是:

A.MOV B. WANG C. F8 D. AB3 2. [ ]语句DADA DW ‘AB’, ‘CD’, ‘E’,‘F’汇编后占用的存储空间是: A.4个字节 B. 8个字节 C. 6个字节 D.5个字节

3.[ ]PSW中使用的标志位以及其中的状态标志位、控制标志位的位数分别是:

A.9,6,3 B. 9,8,1 C. 9,7,2 D. 16,9,7 4.[ ]指令ADD AX, [BX][DI]中源操作数的寻址方式是:

A.段内寄存器间接寻址 B. 段间寄存器间接寻址 C.基址加变址寻址 C. 寄存器寻址

5.[ ]在伪指令语句NUMBER DW 1234H中的NUMBER 项称为:

A.标号 B. 变量 C. 伪操作符 D. 数据

6.[ ]在存储器中保留待定的10个字节单元的伪指令语句是:

A.NUMB EQU 10 B. NUMB DW 10 DUP(?)

C. NUMB DB 10 D. NUMB DB 2 DUP(5 DUP(?)) 7. [ ]把汇编语言源程序翻译成目标代码的程序是:

A.编译程序 B. 解释程序 C. 汇编程序 D.连接程序 8. [ ]下列指令中,不影响PSW的指令是:

A. MOV B. TEST C. SAL D. CLD 9.[ ]下列叙述不正确的是:

A. 立即数不能直接送段寄存器。

B. 目的操作数不能是立即数和段寄存器。 C. 不能在两个存储单元间直接传送数据。 D. 两个段寄存器之间不能直接传送数据。 10.[ ]汇编语言在程序设计语言家族中属于:

A. 第一代语言 B. 第二代语言 C. 第三代语言 D. 第四代语言

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

1.[ ]8086/8088内存分段存取,受其内存总量的限制,最多只能分为16个段来使用。 2.[ ]汇编语言接近于自然语言,易学、易用、通用强。 3.[ ]任意一程序模块最后一条语句必须是END [地址]。 4.[ ]一个子程序必须有一条RET语句,也可以有多条。 5.[ ]指令执行后的结果为0。则零标志为0

6.[ ]把若干个模块连接起来成为可执行文件的系统程序是汇编程序

7.[ ]用指令的助记符、符号地址、标号等符号书写程序的语言成为汇编语言,汇编语言

能被计算机直接识别。

8.[ ]指令INT 21H引起的中断是内中断。

9.[ ]直接寻址方式中,有效地址存放在代码段中指令操作码之后,但操作数一般存放在

数据段中。

10.[ ]立即数不能直接送段寄存器。

四、 四、为实现下列指定的功能,分析所用的指令是否有错,若有错,改正之,

所用指令数不限(共15分,每小题3分)

1.1.将SI寄存器中的内容存入BX寄存器中: MOV [BX], [SI]

2.2.将DX寄存器中的内容逻辑右移两次: MOV CL, 2 SAR DX, CL

3.3.将AL中的内容保存到堆栈中: PUSH AX

4.4.将NUMB2中的值送入NUMB1中(NUMB1,NUMB2均为字节型)

MOV NUMB2, NUMB2

5.5.判断AX和BX中的内容谁大(考虑所有情况),若AX大于BX,则转移到GIGGER处执

行,否则,转移到SMALLER处执行: CMP AX, BX JAE BIGGER

SMALLER: … BIGGER: … DONE: …

五、 五、阅读程序填空(共10分,每小题5分)

1.1.设(SP)=5000H

MOV AX, 3000H XOR AX, 0FFH MOV BX, 0

OR BX, 7788H PUSH AX PUSH BX

MOV DX, AX

ADD DX, BX 问执行后:(ZF)= PUSH DX (DX)= POP CX (SP)= HLT (CX)=

2.2.NUM DW 1,2,3,4

SA DW ? SB DW ? ……

LEA SI, NUM MOV AX, [SI] MOV SA, AX

MOV AX, [SI+8] 问执行后:(AX)= ADD SA, AX (SA)= MOV SB, AX (SB)= HLT (CF)=

六、编程,要求画出流程图,写出完整程序(共30分,任选3小题,每小题10分)

1. 1. 设有10个学生的成绩分别是76,69,84,90,74,88,99,63,100,80分。试编制一个子

程序统计60—69,70—79,80—89,90—99和100分的人数,分别保存在S6,S7,S8,S9,S10单元中。

2. 2. 假设已编制好5个歌曲程序,请用跳跃表法编制一个选歌程序。 3. 3. 在屏幕上显示所有的ASCII码字符。 4. 4. 已知A数组中有15个互不相等的整数,B数组中有20个互不相等的整数。编制一程序,把既

在A中又在B中的整数存放在数组C中。

5. 5. 加密移动字符串,设缓冲区SBUFF中有20个小写字母a,将每个a加上它相对于缓冲区的位

移量后传送到缓冲区DBUFF。

汇编语言2005—2006学年第二学期期末考试复习题及参考答案

一、 填空

1. 十进制数369转换成二进制数为()2,转换成十六进制数为()16.

2. 计算机中的指令由( )和( 地址码 )两部分组成。 3. 8086的地址总线有20根,寻址范围为( )字节。 4. 下一条将要执行的指令的地址存放在寄存器( )中。

5. 写出IBM PC机的三种子程序返回的指令(RET), (IRET),(IRETD)。 6. 汇编语言源程序需经过()程序汇编,( )程序连接才能生成可执行文件。 7. 存储器某单元的地址表示为2314H:4132H,则它的偏移地址=(4132),物理地址=()

8. REP指令前缀与()指令配合使用。

9. 在显示器上查看和修改内存单元的内容可以使用DEBUG的( )和( )命令。 10. (AL)=BFH,要求屏蔽第0,1两位,则要执行指令( );如果要求第0,1位变反,可使用指令( )

11. 宏汇编适合于(),()的子功能段使用; 二、 选择题

1. 设字长N=16,有符号数7AE9H的补码表示为( )

A. 9EA7H B. 76C4H C. 8417H D. 7AE9H 2. 比较有符号数3260H与0B425H的大小关系为( )

A. 相等 B. 小于 C. 大于 D. 不能比较 3. 指令JMP WORD PTR [BX][DI]中转移的目标地址为( )

A.16 d x(DS)+(BX)+(DI) B.16d x(ES)+(BX)+(DI)

C.16d x(SS)+(BX)+(DI) D.16d x(CS)+(BX)+(DI)

4. 在指令 MOV AX,[1000H]中,源操作数的寻址方式为( )

A.立即寻址 B.直接寻址 C.段内间接寻址 D.寄存器寻址 5. 中断矢量表中存放的是( )

A. 中断类型号 B. 断点地址 C. 中断服务程序 D. 中断服务程序入口地址 6. 8086 的汇编语言指令系统中的条件转移指令可以使程序转移到( )

A. 段内的任何地方 B. 距该指令偏移地址为-32768~+32767的地方

C. 距该指令偏移地址为-128~+127的地方. D. 段外

7. 能定义ASCII码字符串的数据定义语句有( )

A. DB,DW,DD,DQ,DT B. DB,DW,DD C. DB, DW D. DB;

8. 若(AL)=87H,执行ADD AL,0F5H后,S,Z,C,O,P的状态为( )

A.SF=0,ZF=0,CF=1,OF=1,PF=0 B.SF=1,ZF=0,CF=1,OF=0,PF=1 C.SF=0,ZF=0,CF=0,OF=1,PF=0 D.SF=1,ZF=0,CF=1,OF=1,PF=1 9. 比较指令CMP( )

A. 专用于有符号数比较 B. 专用于无符号数比较

C. 专用于串比较

D. 不区分比较的对象是有符号数还是无符号数

10. 数据传送指令对标志位的影响为( )

A.都不影响; B.都影响;

C.除了SAHF,POPF,其它均不影响.

D.除了控制标志位,其它均不影响

三、 判断题 ( )31. 段间调用的子程序必须由伪操作FAR说明为远过程。 ( )32. PC机以位作最小寻址单位。 ( )33. 当SRC是立即数时,DST可以使用存储器寻址。 ( )34. 指定各个逻辑段偏移地址可以使用ORG伪指令。 ( )35. LOOPE/LOOPZ是相等/为零时转移到标号,其退出条件是(CX)=0或ZF=0。 ( )36. POP IP ( )37. 设327FH和0BFFFH为有符号数的补码表示,则327FH < 0BFFFH ( )38. 多个模块间的符号交叉引用要用伪指令PUBLIC和EXTRN说明 ( )39. MOV AX,VAR1-VAR2+100 ( )40. ADD [SI],50 四、 程序分析题

1. A DW 1234H

B DW 5678H PUSH A PUSH B POP A POP B

试回答:上述程序段执行后(A)= ,(B)=

2. 分析下面程序段,

MOV AL,200 SAR AL,1 MOV BL,AL MOV CL,2 SAR AL,CL ADD AL,BL

试问程序段执行后(BL)= (AL)=

3. STRING DB ‘ABCDEFGHIJ'

MOV AH,01 ;从键盘输入字符1~9 INT 21H

AND AL,0FH DEC AL

XOR AH,AH

MOV BX,OFFSET STRING ADD BX,AX MOV BL,[BX]

MOV AH,02H ;显示输出 INT 21H

试回答:

(1)上述程序段的功能是什么?

(2)如从键盘输入字符‘4',程序段有什么结果?

4. 有如下程序:

五、 程序填空题

1. 设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。 TEST AX,8000H JE K1或JZ K1 MOV PLW,BX JMP DONE

K1: MOV PLW,AX DONE:

2. 现有下列数据段: DATA SEGMENT

STR1 DB‘ABCDEFGHIJKL' COUNT EQU -STR1

BUF DB COUNT DUP(0) DATA ENDS

下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。

MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF MOV CX,COUNT __ CLD__ LOOP:MOVSB __ SUB SI,2__ LOOP LOP

或者(STD/ADD DI,2) 六、 程序设计题

1. 编程序段计算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF为首址i=1的数据区,每个数据占两个字节,和数SUM也为两个字节。(要求用循环结构编写,循环控制采用计数控制)。(此题勿需书写源程序格式,只需把试题要求的有关指令序列书写出来。) 程序段:MOV AX,0 MOV BX,OFFSET BUF MOV CX,20

LOP:ADD AX,[BX] INC BX INC BX LOOP LOP MOV SUM,AX

2. 设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送

SQR单元。并写出主程序的调用方式。 数据段如下: DATA SEGMENT DAT DB XXH

SQRTAB DB 0,1,4,9,...81 SQR DB? DATA ENDS

STACL1 SEGMENT PARA STACK DW 20H DUP(?) STACK1 ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AX ┇

CALL SUBROT ┇

MOV AH,4CH INT 21H

SUBROT PROC PUSH AX PUSH BX

LEA BX,SQRTAB MOV AL,DAT TEST AL,80H JNS NEXT NEG AL

NEXT: XLAT SQRTAB MOV SQR,AL POP BX POP AX RET

SUBROT ENDP CODE ENDS END SRART

3. 试编写出把DX、AX中的双字右移四位的程序段。 MOV CL,04 SHR AX,CL MOV BL,DL SHR DX,CL SHL BL,CL OR BL,AH

4. 定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制

20次,并显示出复制结果。 DATA SEGMENT

PATTERN DB 23H,24H,25H,26H DISPLAY DB 80 DUP(‘ ’),‘$’ DATE ENDS CODE SEGMENT ┇ CLD

LEA SI,PATTERN LEA DI,DISPLAY MOV CX,80 REP MOVSB MOV AH,09H

LEA DX,DISPLAY INT 21H RET

CODE ENDS

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

Top