中南大学汇编考试试卷
填空题(每空2分,共40分)
1. (01111011)B=( )D=( )H=( )BCD;8位机器字长,用补码运算85+
(-76)=( )补码
2. 在程序运行过程中,IP寄存器中存放 3. 当标志位________=1时表示无符号数运算产生溢出,而当标志位________=1是表
示带符号数运算产生溢出
4. MOV BH,1000[SI],该指令中源操作数采用的寻址方式是 。
5. 8088/8086CPU的存储器采用分段方式管理,每个段最多可以有______字节,全部
存储空间可以分成______个大小为64K且互相不重叠的段。
6. 假设DS=2000H,BX=0100H,(20100H)=30H,(20101H)=10H问:
执行MOV DX , [BX] DX=_____ 执行LEA DX , [BX] DX=_____ 7. 将AX中划‘X'的位清0
15 5 4 0 ┏┳┳┳┳┳┳┳┳┳┳━┳━┳┳┳┳┓
┃┃┃┃┃┃┃┃┃┃┃X┃X┃┃┃┃┃ 的指令是__________________ ┗┻┻┻┻┻┻┻┻┻┻━┻━┻┻┻┻┛ 将AX的低四位取反的指令是_________________
8. 计算机的指令由______和______构成,它们分别给出计算机____________和
____________。
9. 设AL=0A8H,CL=23H,执行乘法指令MUL CL后,
标志位OF= ,CF= 10. REPZ CMPSW指令,重复执行的终止条件是___________ 二.简答题(每题5分,共20分)
1. 简述8086CPU的中断响应过程。 2. 假设程序中的数据定义如下:
ARRAY1 DW ? ARRAY2 DB 16 DUP(?) ARRAY3 DD ?
PLENTH EQU $-ARRAY1
问 PLENTH 的值为多少 ? 它表示什么意义 ? 3. 简述下面两条指令分别是什么语法错误?
MOV [BX],[SI] MOV AX,DL
4. 定义数据段DATA_SEG,数据段中的数据按下列要求依次存储:
(1)第一个字节是整数55H
(2)变量BUF,大小为25个字节,初值为’0’ (3)变量MSG存储字符串'yes' 三.程序分析题 (共20分)
第 1 页,共 5 页
1. 试问下面的程序段完成的功能是什么? 程序执行后 AX 的内容是什么 ? (5分)
XOR AX , AX MOV BX , 0 MOV CX , 10 L :ADD AX , BX ADD BX , 1 LOOP L
2. 试分析下面的程序段完成什么功能 ? (5分)
DAT1 DB 30 DUP(?) DAT2 DB 10 DUP(?) ┇
MOV CX , 10 MOV BX , 20 MOV SI , 0 MOV DI , 0 NEXT :
MOV AL , DAT1[ BX][ SI] MOV DAT2[DI] , AL INC SI INC DI LOOP NEXT 3. 已知SS=2000H,SI=1000H,AX=0ABCDH,SP=0100H,BP=00FEH,给出下列指
令执行后指定寄存器中的内容,并画出指令b,e执行后堆栈的示意图。(10分)
a) PUSH b) PUSH c) POP d) PUSH e) POP f)
四.
合适的语句
MOV AX, X
( ) ; x*y →(DX,AX)
MOV CX, AX MOV BX, DX
MOV AX, Z
( ) ;Z →(DX,AX) ADD CX, AX
ADC BX, DX ; x*y+z →(BX,CX) SUB CX, 540
SBB BX, 0 ; x*y+z-540
MOV AX, V
CWD ;V →(DX,AX)
第 2 页,共 5 页
AX ;AX= SP= SI ;SI= SP= AX ;AX= SP= BP ;BP= SP= SI ;SI= SP= BP ;BP= SP=
POP
x , y , z , v 均为16位带符号数,计算 ( v - ( x*y + z – 540 ) ) / x,在括号中填上
SUB AX, CX
( ) ; v-(x*y+z-540)
IDIV X ; (v-(x*y+z-540))/x→(AX)
五.程序题
1. 统计一个16位二进制数中0的个数,并将结果输出。
2. 从键盘输入不超过15个字符的字符串,以回车为结束,将其中非数字和非字母的
去掉(要有完整的格式,能够上机调试,必须有子程序) (1)显示去掉的字符的个数 (2)显示输入字符的总数 (3)将新的字符串显示出来
参考答案
六.填空题(每空2分,共40分)
1. (01111011)B=( 123 )D=( 7B )H=( 0001 0010 0011 )BCD,(9)补 2. 在程序运行过程中,IP寄存器中存放 代码段中的偏移地址
3. 当标志位__CF____=1时表示无符号数运算产生溢出,而当标志位___OF_=1是表
示带符号数运算产生溢出
4. MOV BH,1000[SI],该指令中源操作数采用的寻址方式是 寄存器相对寻址 5. 8088/8086CPU的存储器采用分段方式管理,每个段最多可以有 64K 字节,全部存储空间可以分成_16_个大小为64K且互相不重叠的段。
6. 假设DS=2000H,BX=0100H,(20100H)=30H,(20101H)=10H问:
执行MOV DX , [BX] DX=_30H____ 执行LEA DX , [BX] DX=__100H___ 7. 将AX中划‘X'的位清0
15 5 4 0 ┏┳┳┳┳┳┳┳┳┳┳━┳━┳┳┳┳┓
┃┃┃┃┃┃┃┃┃┃┃X┃X┃┃┃┃┃ 的指令是__________________ ┗┻┻┻┻┻┻┻┻┻┻━┻━┻┻┻┻┛ AND AX,FFCFH
将AX的低四位取反的指令是____XOR 000FH_____________ 8. 计算机的指令由___操作码字段___和__操作数字段____构成,它们分别给出计算机
__所要执行的操作__________和__ 所需要的操作数__________。 9. 设AL=0A8H,CL=23H,执行乘法指令MUL CL后,
标志位OF= 1 ,CF= 1
10. REPZ CMPSW指令,重复执行的终止条件是___CX=0 或 ZF=0________ 七.简答题(每题5分,共20分)
1. 简述8086CPU的中断响应过程。
第 3 页,共 5 页
余数→(DX)
2. 假设程序中的数据定义如下:
ARRAY1 DW ? ARRAY2 DB 16 DUP(?) ARRAY3 DD ?
PLENTH EQU $-ARRAY1
问 PLENTH 的值为多少 ? 它表示什么意义 ?
PLENTH=2+16+4, 它表示的意义是ARRAY1至array3分配的空间大小。
3. 简述下面两条指令分别是什么语法错误?
MOV [BX],[SI];两操作数不能同为内存操作数。 MOV AX,DL;两操作数大小不一致
4. 定义数据段DATA_SEG,数据段中的数据按下列要求依次存储:
(1)第一个字节是整数55H
(2)变量BUF,大小为25个字节,初值为’0’ (3)变量MSG存储字符串'yes' data_seg segment
db 55h
buf db 25 dup(0) msg db’yes’
data_seg ends 八.程序分析题 (共20分)
1. 试问下面的程序段完成的功能是什么? 程序执行后 AX 的内容是什么 ? XOR AX , AX MOV BX , 0 MOV CX , 10 L :ADD AX , BX ADD BX , 1 LOOP L
执行0-9的叠加,并将结果放置于AX AX=50
2. 试分析下面的程序段完成什么功能 ? (5分)
DAT1 DB 30 DUP(?) DAT2 DB 10 DUP(?) ┇
MOV CX , 10 MOV BX , 20 MOV SI , 0 MOV DI , 0 NEXT :
MOV AL , DAT1[ BX][ SI] MOV DAT2[DI] , AL INC SI
第 4 页,共 5 页
5分)(
INC DI LOOP NEXT
将DAT1数组中后10个字符复制到DAT2中
3. 已知SS=2000H,SI=1000H,AX=0ABCDH,SP=0100H,BP=00FEH,给出下列指
令执行后指定寄存器中的内容,并画出指令b,e执行后堆栈的示意图。(10分)
a) PUSH b) PUSH c) POP d) PUSH e) POP f)
POP
AX ;AX= 0ABCDH SP= 00FEH SI ;SI= 1000H SP= 00FCH AX ;AX= 1000H SP= 00FEH BP ;BP= 00FEH SP= 00FCH SI ;SI= 00FEH SP= 00FEH BP ;BP= 0ABCDH SP= 0100H
第 5 页,共 5 页
相关推荐: