|
一、单项选择题 ( 本大题共 20 小题,每小题 1 分,共 20 分 )
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1 .为在一连续的存储单元中,依次存放数据 41H , 42H , 43H , 44H , 45H , 46H ,可选用的数据定义语句是( )
A . DB 41 , 42 , 43 , 44 , 45 , 46 B . DW 4142H , 4344H , 4546H
C . DW ‘AB' , ‘CD' , ‘EF' D . DW ‘BA' , ‘DC' , ‘FE'
2 .在同一程序段中,定义下面伪指令,正确的是( )
A . PORT EQU AL B . CONT EQU 3500H AND OFFH
PORT EQU 2000H
C . STRl DD‘ABCD' D . STR2 DW‘ABCD'
3 . DA2 DB‘AB' , ‘CD'
┇
MOV AX , WORD PTR DA2+1
上述语句执行后 AX 中的值是( )
A . ‘AD' B . ‘BC'
C . ‘DA' D . ‘CB'
4 .下列数据定义语句中可实现留空 20H 个字节存储单元的是( )
A . DB 20 DUP(?) B . DW 20H DUP(?)
C . DB 10H DUP(4 DUP(?)) D . DD 08H DUP(?)
5 . DATA SEGMENT
VAR1 DB 12H,34H
VAR2 DB 10H DUP(O)
ADR1 DW VAR1,VAR2
DATA ENDS
为使ADR1+2字存储单元中内容为0030H,上述方框中应选用的语句是( )
A.ORG 30H B.DB 2EH DUP(0)
C.DB 30H DUP(0) D.ORG $+30H
6.如某存储器分段时,表示偏移地址是18位二进制代码,那么一个段最多的存储单元数是( )
A.32K字节 B.32K字
C.64K字节 D.64K字
7.下列寄存器中用来指示堆栈中任意数据区的偏移地址的是( )
A.BX B.BP
C.SI D.DI
8.下列指令中有语法错误的是( )
A.PUSH AX B.PUSH [20H+SI+BX]
C.POP CS D.PUSH CS
9.下面有语法错误的指令是( )
A.LDS BL,VAR[SI] B.LEA BX,VAR[SI]
C.LES DI,VAR[BX] D.LEA DI,VAR[BP]
10.执行PUSH BP指令时,目的操作数的物理地址表达式是( )
A.16*SS+BP B.16*DS+BP
C.16*CS+IP D.16*SS+SP
11.把BL中的数据输出到端口8CH中正确指令是( )
A.OUT 8CH,BL B.IN 8CH,BL
C.MOV AL,BL D.MOV AL,BL
OUT 8CH,AL IN 8CH,AL
12.结果为零的条件转移指令,其测试条件是( )
A.ZF=1 B.ZF=0
C.SF=l D.SF=0
13.下面程序段完成测试DA-BYTE字节单元中数是否为负数,若是则将全l送DH中,否则全0送DH中,那么程序段中方框里应填的语句是
MOV CH,0
TEST DA-BYTE,80H
MOV CH,0FFH
ZERO:MOV DH,CH( )
A.JNZ ZERO B.JS ZERO
C.JZ ZERO D.JC ZERO
14.汇编源程序时,出现语法错误的语句是( )
A.MOV [BX+SI],BX B.MOV CL,[BP+DI]
C.MOV CS,AX D.MOV DS,AX
15.设SP初值为3050H,执行指令PUSH BX后,SP的值是( )
A.304FH B.304EH
C.3048H D.3049H
16.下列指令执行后影响CF值的是( )
A.DEC B.XCHG
C.LEA D.SHL
17.串操作指令中,每次操作后使SI/DI为减量应设置( )
A.DF=0 B.TF=1
C.DF=1 D.TF=0
18.设AL=57H,BL=24H,执行指令SUB AL,BL后,寄存器内容为( )
A.AL=57H,BL=24H B.AL=33H,BL=24H
C.AL=57H,BL=33H D.AL=33H,BL=0
19.设CL=8,AL=0C8H,执行SAR AL,CL后,AL中的数据是( )
A.0FFH B.80H
C.00H D.0FEH
20.已知BX=028AH,SI=0294H,(DS:051EH)=5432H。执行语句LEA BX,[BX+SI]后,BX中的内容是( )
A.051EH B.5423H
C.1E05H D.3254H
二、填空题 ( 本大题共 6 小题,每小题 1 分,共 6 分 )
21 .指令指针寄存器 IP 是用于存放代码段的 ______________ 。
22 .与 LEA BX , VAR 等效的指令是 ______________ 。
23 .要从一个字符串中找出一个 AL 中指定的字符,可选用 ______________ 指令实现。
24 . SAL 指令在左移后,如果移位前后符号位有变化,那么标志位 ______________ 置 1 。
25 .假设某数据段段名为 DATA , VAR 是该段中的一个变量,若实现将该段的段地址送入 AX 中,可用 “MOV AX , DATA” 语句实现,也可以用 ______________ 语句实现。
26 .设 BX=1152H ,偏移量 D=3568H ,那么指令 “ADD D[BX] , AL” 中目的操作数的有效地址 EA=______________ 。
三、简答题 ( 本大题共 4 小题,每小题 2 分,共 8 分 )
27 .下列语句是否有语法错误,若有,指出是哪一条及是什么错误。
①Da1 DB‘ABC'
②DA2 DD‘ABC'
28 . 8086 / 8088 指令的立即寻址方式的操作数存放在什么段内 ? 寄存器间接寻址方式 [BX] 的操作数在什么段内 ?
29 .下列指令中,源操作数是什么寻址方式 ? 操作数的物理地址如何表达 ?
MOV AX , 10H [DI]
MOV DX , [BX][SI]
30 .下列语句在存储器中分别为变量分配多少个字节 ?
①AD1 DW 10H DUP(?) , 10H
②COUNT EQU 100
③AD2 DB 3 DUP(2 DUP (3))
④AD3 DD COUNT DUP(?)
四、程序分析题 ( 本大题共 6 小题,每小题 6 分,共 36 分 )
31 . BUF1 DB -1 , 2 , -3 , 4 , -5 , 6 , -7 , 8 , -9
BUF2 DB 9 DUP(O)
┇
XOR BL , BL
MOV SI , O
MOV CX , 9
LOP : MOV AL , BUF1[SI]
TEST AL , 80H
JZ K
INC BL
NEG AL
K : XOR AL , 01H
MOV BUF2[SI] , AL
INC SI
LOOP LOP
……
① 写出程序运行后 BUF2 各字节中的数据
②BL=______________
32 . DD2 DB 0 , l , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
┇
LEA SI , DD2
LEA DI , DD2+1
MOV CX , 5
LOP : MOV AL , [SI]
XCHG AL , [DI]
MOV [SI] , AL
ADD SI , 2
ADD DI , 2
DEC CX
JNZ LOP
上述程序段执行后,回答:
① 该程序段完成什么功能 ?
②DD2 开始的 l0 个字节数应是什么值 ?
33 . XOR BL, BL
NEG BL
JZ NEXT
ADD BL, 5
JMP DONE
NEXT : NOT BL
DONE : ……
程序段执行后, BL=______________ , CF=______________
34 . R1 DB 246
┇
XOR BH , BH
MOV AL , R1
MOV DL , 10
LOP : CMP AL , 0
JBE NEXT
MOV AH , 0
DIV DL
MOV BL , AH
PUSH BX
JMP LOP
NEXT : ……
┇
上述程序段执行后共向堆栈压入 ______________ 个数,按压入的先后次序该数列为 ______________ 。
35 . VAR1 DB 56H , 76H , 87H , 98H , 0A9H
┇
MOV CX , WORD PTR VAR1
AND CX , 0AH
MOV BX , WORD PTR VAR1+3
SAR BX , CL
程序段运行后, BX=______________ , CX=______________ 。
36 .已知 AX=1234H
MOV BX , AX
NOT BX
XOR BX , AX
上述程序段执行后, BX=______________ 。如把 XOR 指令改为 OR 指令,那么程序段执行后, BX=______________ 。
五、程序填空题 ( 本大题共 2 小题,每小题 6 分,共 12 分 )
37 .下面程序段实现把 DA1 字单元内容取绝对值后送到 DA2 中,请在横线处各填一条指令。
DA1 DW ××××
DA2 DW ?
┇
MOV AX , DA1
①______________
JNS K
②______________
K : MOV DA2 , AX
38 .下面程序段完成用串指令在 DA1 开始的 26 个字节单元中依次存放 A—Z 的 ASCII 码,在 DA2 开始的 26 个字节单元中依次存放 Z—A 的 ASCII 码,请在横线处各填一条指令。
DA1 DB 26 DUP(?)
DA2 DB 26 DUP(?)
┇
LEA DI , DA1
MOV AL , ‘A'
MOV CX , 26
CLD
LOP1 : STOSB
①______________
LOOP LOP1
MOV CX , 26
LOP2 : ②______________
STOSB
LOOP LOP2
六、编制程序题 ( 本大题共 2 小题, 39 小题 6 分, 40 小题 12 分,共 18 分 )
39 .( 6 分)试编制一程序段,判断 CX 和 DX 中第 7 , 15 位是否完全对应相同。如完全相同, CF 置 1 ,否则 CF 置 0 。
40 .( 12 分)试编写一个源程序实现两个一位八进制数相加,两个八进制数分别存放在 NUM1 , NUM2 字节单元中,相加结果存放在 RESULT1 (低位)和 RESULT2 (高位)中,数据段分配如下:
DATA SEGMENT
NUM1 DB X
NUM2 DB Y
RESULT1 DB 0
RESULT2 DB 0
DATA ENDS |