武汉大学计算机学院考试试卷
一.单项选择题(将选项填在题干前的括号内,每小题1分,共20分)
( ) 1.用 编写的程序称为汇编语言源程序。
A.汇编语言 B.汇编程序 C.机器语言 D.高级语言
( ) 2.在IBM-PC系列机中,32位的微型计算机有 个段寄存器。
A.4 B.5 C.6 D.7
( ) 3.一般的传送指令 标志位。
A.影响 B.影响CF C.影响ZF D.不影响
( ) 4.8086CPU形成的内存物理地址有 位。
A.16 B.20 C.24 D.32
( ) 5.若SUB指令的运算结果有借位,则 被置为1。
A.ZF B.SF C.OF D.CF
( ) 6.在取指令时,使用的段寄存器是 。
A.CS B.DS C.ES D.SS
( ) 7.用 编写的程序可直接被机器执行。
A.高级语言 B.机器语言 C.汇编语言 D.C语言
( ) 8.指令“MOV AX,[BX+5]”源操作数的段寄存器是 。
A.CS B.DS C.ES D.SS
( ) 9.指令“MOV [EBX*4],EAX”目的操作数的寻址方式是 。
A.寄存器间接寻址 B.带比例因子的变址寻址
C.变址寻址 D.基址变址寻址
( )10.字乘法指令执行完后,其运算结果在 中。
A.AX B.BX C.DX:AX D.AX:BX
( )11.CPU响应中断后,在中断响应周期将 压入堆栈。
A.IP B.PSW C.CS和IP D.PSW、CS和IP
( )12.伪指令“A DW 2,20DUP(0)”分配的内存单元数是 字节。
A.2 B.21 C.42 D.84
( )13.执行“INT 10H”指令时,其中断处理程序的入口地址在 中。
A.10H B.20H C.30H D.40H
( )14.在8086 CPU的指令系统中,串操作指令的目的操作数在 。
A.DS:DI B.ES:DI C.DS:SI D.ES:SI
( )15.在IBM-PC机中,一个段最大可定义 字节。
A.16K B.32K C.64K D.128K
( )16.条件转移指令的转移范围是 。
A.0~128 B.0~255 C.-128~127 D.-127~127
( )17.若要将A定义为字,其伪操作应为 。
A.DB B.DW C.DD D.DQ
( )18.在子程序中,至少要有一条 指令。
A.传送 B.加法 C.减法 D.返回
( )19.如果移位指令的移位次数大于1时,其移位次数必须放在 中。
A.AL B.BL C.CL D.DL
( )20.在进行DOS功能调用的功能号前,其功能号应该放在 。
A.AH B.BH C.CH D.DH
二.填空题(共10小题,每小题1分,共10分)
1.目标程序经过 后产生可执行文件。
2.在PC机的指令系统中,立即数不能作 操作数。
3.标号的三个属性是段地址、偏移地址和 。
4.主机与外设间的数据传送方式有查询方式、 和DMA方式。
5.若A定义为字节,则指令“MOV AX,TYPE A”执行后AX= 。
6.指令“MOV AX,[BP]”使用的段寄存器是 。
7.当指令执行完后SF=1,则表示运算结果为 数。
8.如果在宏定义中有L标号,则在宏定义中应该用 说明L。
9.如果在某一模块中的Q变量能被其他模块引用,在该模块应该用 说明Q。
10.压缩的BCD码一个字节可表示 位十进制数。
三.判断改错题(正确的在括号内打√,否则打,并按原意改错。每题2分,共20分)
( ) 1.MOV [SI],3
( ) 2.SHL AX,5
( ) 3.MOV AX,SI
( ) 4.LEA BL,BUF
( ) 5.MOV BX,[CX]
( ) 6.ADD AX,[DI]
( ) 7.SUB AX,BL
( ) 8.MOV [DI],[SI]
( ) 9.MOV BUF,CX ;BUF为字变量
( )10.INC [SI]
四.画出如下数据段的数据在内存中的存放形式示意图(10分)
DATA SEGMENT
A DW 2,3
B DB ‘ABC’
C DB 4 DUP(0)
D = $-C
E DB $-A
F DD 12345678H
DATA ENDS
五.阅读如下程序段,解答其后问题(共10分)
RW MACRO A,B
MOV AH,A
LEA DX,B
INT 21H
ENDM
DATA SEGMENT
BUF1 DB 100,0,100 DUP(0)
BUF2 DB ‘PLEASE INPUT:’
BUF3 DB 0AH,0DH,‘$’
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
RW 9,BUF2
RW 10,BUF1
RW 9,BUF3
MOV CL,BUF1+1
MOV CH,0
MOV SI,CX
MOV AH,2
L: MOV DL,BUF1[SI+1]
INT 21H
DEC SI
LOOP L
MOV AH,4CH
INT 21H
CODE ENDS
END START
请回答 :(1)该程序完成什么功能?(5分)
(2)若输入的字符为‘12345’时,输出的结果是什么?(5分)
六.编写下列程序段(每小题5分,共15分)
1.将字变量A和B的内容互换。
2.将字变量A和B的内容相加,其结果存放在C变量中。
3.从键盘输入一字符,若为字符$,则1→CX,否则0→CX。
七.程序填空题(15分)
设有一字数组A,第一个字单元存放的是数组元素个数,从第二个字单元开始依次存放的是数组元素。现要求编写一程序,用SCAS指令搜索字数组A中与X字变量中所有相等的元素,若找到该元素,则用MOVS指令从数组中删除该元素;否则,数组中的元素不变。
DATA SEGMENT
A DW 12,432,—234,56,4,8,2,0,—1,44,20,10,22
X DW ?
CODE SEGMENT
START: MOV AX,DATA
MOV DS,AX
MOV AX,X
CLD
L: MOV CX,A
LEA DI,A+2
JNZ OK
CMP CX,0
JZ NO
MOV SI,DI
MOVSW
DEC A
JMP L
NO:
OK: MOV AH,4CH
INT 21H
CODE ENDS
展开阅读全文