一、单项选择题:(共41题,41分)
1、
只能做源操作数的操作数是 。
|
|
立即数 |
|
寄存器操作数 |
|
存储器操作数 |
|
I/O操作数 |
|
2、
下列哪种寻址方式不需要计算有效地址 __ __。
|
|
寄存器间接寻址 |
|
基址寻址 |
|
寄存器寻址 |
|
変址寻址 |
|
3、
直接寻址方式默认的段基址是放在__ __段寄存器中。
|
|
CS |
|
DS |
|
SS |
|
ES |
|
4、
在寄存器间接寻址方式中,如果用来间址的寄存器是BP,则默认在 段寻找数据。
|
|
CS |
|
DS |
|
SS |
|
ES |
|
5、
在基址寻址方式中,如果用到的基址器是BX,则默认在 _ ___段寻找数据。
|
|
CS |
|
DS |
|
SS |
|
ES |
|
6、
在指令 MOV DX, COUNT[SI]中,源操作数的寻址方式是 。
|
|
直接寻址 |
|
寄存器间接寻址 |
|
基址寻址 |
|
変址寻址 |
|
7、
已知有关寄存器的内容为 (DS)=B200H,(BX)=3000H,偏移量BUFF=100H,指令MOV AX, BUFF[BX]的源操作数的物理地址是 。
|
|
B5100 |
|
0E400 |
|
B5000 |
|
B2100 |
|
8、
在指令 MOV AX, COUNT[BX]中,源操作数的寻址方式是 。
|
|
直接寻址 |
|
寄存器间接寻址 |
|
基址寻址 |
|
変址寻址 |
|
9、
已知有关寄存器的内容为 (SS)=A100H,(BP)=4000H,偏移量TABLE=0AH,指令MOV AX, TABLE[BP]的源操作数的物理地址是 H。
|
|
A500A |
|
0E10A |
|
A5000 |
|
A140A |
|
10、
在下列数据传送指令中,错误的指令是____。
|
|
MOV AL,21H |
|
MOV AX,SI |
|
MOV CL,DH |
|
MOV 34H,AL |
|
11、
下列传送语句正确的是 。
|
|
MOV CL, 1000 |
|
MOV [DI], [BX] |
|
MOV AL, BX |
|
MOV AL, 0 |
|
12、
下列汇编语句正确的是 。
|
|
POP CX |
|
POP CS |
|
POP AL |
|
POP 1234H |
|
13、
在执行换码指令XLAT之前,需要将表格首址送给____寄存器
|
|
AX |
|
BX |
|
CX |
|
DX |
|
14、
当执行POP指令以后,栈指针SP的变化为 ()
|
|
SP加1 |
|
SP减1 |
|
SP减2 |
|
SP加2 |
|
15、
在输入输出指令中,输入或输出的数据必须存放在 ____中
|
|
AX或AL |
|
BX或BL |
|
CX或CL |
|
DX或DL |
|
16、
在输入输出指令中,如果端口地址大于FFH则必须用 ____寄存器间址
|
|
BX |
|
SI |
|
BP |
|
DX |
|
17、
下列哪条传送指令改变标志寄存器的状态____。
|
|
MOV AX,BX |
|
IN AL, 20H |
|
PUSH BX |
|
POPF |
|
18、
以下四条指令中,正确的指令是____。
|
|
MOV AX, BL |
|
ADD [BX], [SI] |
|
ROL AX, 5 |
|
IN AL, 20H |
|
19、
已知寄存器(AL)=45H,(BL)=31H,执行指令ADD AL,BL后,标志位ZF的状态是____。
|
|
1 |
|
0 |
|
不确定 |
|
高阻态 |
|
20、
已知寄存器(AL)=45H,(BL)=31H,执行指令ADD AL,BL后,标志位SF的状态是____。
|
|
1 |
|
0 |
|
不确定 |
|
高阻态 |
|
21、
INC指令的操作数不能是 操作数。
|
|
寄存器操作数 |
|
存储器操作数 |
|
I/O操作数 |
|
立即数 |
|
22、
在乘法指令中, 操作数不可以做乘数
|
|
寄存器操作数 |
|
存储器操作数 |
|
I/O操作数 |
|
立即数 |
|
23、
在字节乘法指令执行前,应将被乘数放到 寄存器中
|
|
AL |
|
CL |
|
AH |
|
BL |
|
24、
字节扩展指令CBW的功能是将AL的符号位扩展到 中
|
|
CL |
|
CH |
|
AH |
|
BL |
|
25、
在以下四条指令中能实现将AL内容的低4位取反,高4位不变的指令是 。
|
|
XOR AL, 00001111B |
|
XOR AL, 11110000B |
|
AND AL, 00001111B |
|
OR AL, 00001111B |
|
26、
在以下四条指令中能实现将AL内容的中间4位置0,其余4位不变的指令是 。
|
|
XOR AL, 00111100B |
|
XOR AL, 11000011B |
|
AND AL, 11000011B |
|
OR AL, 11000011B |
|
27、
在以下四条指令中能实现将AL内容的中间4位置1,其余4位不变的指令是 。
|
|
OR AL, 00111100B |
|
XOR AL, 11000011B |
|
AND AL, 11000011B |
|
XOR AL, 11000011B |
|
28、
下列8086汇编语言执行后,AX中的内容与其它三条指令有可能不同的是 。
|
|
XOR AX, AX |
|
AND AX, 0 |
|
OR AX, 0 |
|
SUB AX, AX |
|
29、
TEST指令执行后,下面那种说法正确 。
|
|
源操作数发生变化 |
|
目的操作数发生变化 |
|
源操作数和目的操作数均不发生变化,仅标志位发生变化 |
|
源操作数、目的操作数和标志位均发生变化 |
|
30、
在移位指令中,如果移位次数超过1,应将移位次数放入 寄存器中。
|
|
AL |
|
BL |
|
CL |
|
DL |
|
31、
假设(DX)=A3B9H,(CL)=3,(CF)=1,确定指令SHL DX,CL执行后DX寄存器的值是 。
|
|
2536H |
|
1DC8H |
|
1CD8H |
|
2564H |
|
32、
假设(DX)=A3B9H,(CL)=3,(CF)=1,确定指令ROR DX,CL执行后DX寄存器的值是 。
|
|
3567H |
|
4631H |
|
3258H |
|
3477H |
|
33、
在串操作指令中,源串的段基址和変址器默认组合关系式 。
|
|
DS:DI |
|
DS:SI |
|
ES:SI |
|
ES:DI |
|
34、
在串操作指令MOVSB执行前,如果想地址增量传送,则应该执行指令 。
|
|
CLD |
|
STD |
|
CLI |
|
STI |
|
35、
在执行串操作指令REP MOVSB前,应将传送的字节数送到 中。
|
|
AX |
|
BX |
|
CX |
|
DX |
|
36、
指令REPZ CMPSB的循环结束条件是 。
|
|
CX=0或ZF=0 |
|
CX=0或ZF=1 |
|
CX=1或ZF=0 |
|
CX=1或ZF=1 |
|
37、
指令LOSB指令是将DS:SI指向单元的内容送 。
|
|
AX |
|
BX |
|
CL |
|
AL |
|
38、
条件转移指令的转移范围是转移到相距本条指令的下一条指令的 个字节的范围之内。
|
|
-128~128 |
|
-127~128 |
|
-128~+127 |
|
–127~127 |
|
39、
指令JZ NEXT的转移条件是 。
|
|
ZF=0 |
|
ZF=1 |
|
CF=0 |
|
CF=1 |
|
40、
如果在无符号比较指令中选择能实现大于转移功能的指令,应该选择下面的 指令。
|
|
JL |
|
JA |
|
JG |
|
JB |
|
41、
指令LOOPZ的循环结束条件是 。
|
|
CX=0或ZF=0 |
|
CX=0或ZF=1 |
|
CX=1或ZF=0 |
|
CX=1或ZF=1 |
|
|
三、简答题:(共3题,6分)
1、
列出你所知道的6种寻址方式,并用传送指令MOV分别写出源操作数是对应寻址方式、目的操作数是AL的指令。
|
|
2、
简述标志寄存器FLAG各个标志位的名称及作用(在何种情况下置1)。
|
|
3、
说明以下8086指令是否正确,如果不正确,简述理由 :1.ADD BL. 0F100H 2.SUB ES,20H 3.AND 0FH,AL 4.CMP [SI], [DI] 5.INC 2000H 6.MUL BL,CL 7.DIV 08H 8.SAL AX, 5
|
|
|
四、问答题:(共19题,38分)
1、
已知有关寄存器的内容为:(DS)=0F100H,(SS)=0A100H,(SI)=1001H,(DI)=2000H,(BP)=4000H,偏移量TABLE=0AH,COUNT=0BH。说明题2-1中第1小题和第2~7小题指令源操作数的物理地址。
|
|
2、
某一个存储单元的段地址为ABCDH,偏移地址为ABCDH,试说明其物理地址是什么;而另一个存储单元的物理地址为F1000H,偏移地址为FFF0H,试说明其段地址是什么?
|
|
3、
试分别用三种寻址方式的指令将偏移地址为5000H的存储单元的一个字传送到6000H单元,要求源操作数和目标操作数分别采用一下寻址方式: 1、直接寻址 2、寄存器间接寻址 3、变址寻址
|
|
4、
阅读以下程序段,说明其运行结果: 1、MOV DX, 0F100H 初值:(F100H)=’A’ (4100H)=’B’ MOV DH, [DX] 结果:(AH)= H MOV AH, [DX]
|
|
5、
试用8086指令编写程序段,分别实现以下要求: 1、将AL和BL寄存器的内容互换; 2、将1000H和1001H内存单元中的字节互换; 3、将2000H和2100H内存单元的字互换。
|
|
6、
将首地址为3000H的100个存储单元的内容传送到首地址为3100H的内存区,要求分别使用以下指令: 1、一般传送指令 2、串操作指令MOVS,但不加重复前缀REP 3、加重复前缀的串操作指令REP MOVS。
|
|
7、
说明以下8086指令是否正确,如果不正确,简述理由。 1、ADD BL. 0F100H 2、SUB ES,20H 3、AND 0FH,AL 4、CMP [SI], [DI] 5、INC 2000H 6、MUL BL,CL 7、DIV 08H 8、SAL AX, 5
|
|
8、
已知寄存器AL和BL的内容分别如下,试分析执行ADD AL,BL指令后寄存器AL及标志寄存器CF、ZF、SF、AF、OF和PF的内容。 1、(AL)=45H,(BL)=31H 2、(AL)=7AH,(BL)=56H 3、(AL)=F2H,(BL)=8DH 4、(AL)=B1H,(BL)=F8H 5、(AL)=37H,(BL)=C9H
|
|
9、
已知寄存器AL和BL的内容分别如下,试分析执行SUB AL,BL指令后寄存器AL及标志寄存器CF、ZF、SF、AF、OF和PF的内容。 1、(AL)=96H,(BL)=42H 2、(AL)=27H,(BL)=38H 3、(AL)=6CH,(BL)=A1H 4、(AL)=B4H,(BL)=E7H 5、(AL)=1DH,(BL)=E5H
|
|
10、
阅读以下程序段: MOV SI, 4000H MOV DI, 4100H MOV AL, [SI] ADD AL, [DI] DAA MOV [DI],AL MOV AL,[SI+1] ADC AL,[DI+1] DAA MOV [DI+1], AL 1.根据给定的初值,说明运行结果。 初值:(4000H)=63H (4001H)=54 (4100H)=88H (4101H)=29 结果:(4100H)= (4101H)= 2.在以上程序段中,当执行ADD AL, [DI]指令后,但尚未执行DAA指令时,有关寄存器和标志位的内容为: (AL)= ,(CF)= ,(ZF)= ,(SF)= ,(AF)= , (OF)= ,(PF)= 。 3.在以上程序段中,当第一次执行DAA指令后,有关寄存器和标志位的内容为: (AL)= ,(CF)= ,(ZF)= ,(SF)= ,(AF)= , (OF)= ,(PF)= 。 4.如果在以上程序段中去掉两条DAA指令,但初值不变,则运行结果为: (4100H)= (4101H)=
|
|
11、
阅读以下程序 START: LEA BX, TABLE MOV CL, [BX] LOOPER: INC BX MOV AL, [BX] CMP AL, 0AH JNC X1 ADD AL,30H JMP NEXT X1: ADD AL, 37H NEXT: MOV [BX],AL DEC CL JNZ LOOPER 1、假设从地址TABLE开始,10个存储单元中的内容依次为: 05H,01H,09H,0CH,00H,0FH,03H,0BH,08H,0AH 依次写出运行以上程序段后,从地址TABLE开始的10个存储单元的内容。 2、简要写出以上程序段的功能。
|
|
12、
用一条或几条8086指令实现以下要求: 1、AL寄存器清零,但进位标志CF不变 2、将AL和进位位同时清零 3、将进位标志CF清零,但AL内容不变 4、将AL内容的第0、2、4、6位取反,其余位不变 5、将AL高四位清零,低四位保留 6、将AL中的带符号数取绝对值后存入BL 7、统计AX中1的个数,统计结果送CL 8、3000H和3001H单元存放的非压缩BCD,压缩后放入3002H单元 9、将4000H和4001H单元存放的两个ASCII码分别转换为为相应的十六进制数,然后共同存放到4002H单元,前者放在低四位,后者放在高四位。例如: 初值为:(4000H)=42H=’B’ (4001H)=36H=‘6’ 要求结果为: (4002H)=6BH 10、将BL中的无符号数乘以128,高位放在BH中,低位放在BL中,要求执行速度尽量快。 11、将CL中的带符号数乘以16,高位放在CH中,低位放在CL中,要求执行速度尽量快。 12、一个4 位十进制数以压缩BCD 码的形式存放在偏移地址为DATA 和DATA+1 的内存单元中,DATA 单元存放个位和十位,DATA+1 单元存放百位和千位。要求将其转换为相应的ASCII 码,存放到以BUFF 为首地址的4 个内存单元。例如: 初值为: (DATA)=47H , (DATA+1)=92H 要求结果为:(BUFF)=‘7’ , (BUFF+1)=‘4’ (BUFF+2)=‘2’ , (BUFF+3)=‘9’
|
|
13、
已知被减数和减数均为包括6 个字节的十六进制数,分别存在首地址为DATA1 和DATA2 的内存区,低位在前,高位在后。试用8086/8088 指令编写减法的程序段,要求相减以后得到的结果存放在首地址为DATA3 的内存区。
|
|
14、
已知被减数和减数均为包括6 个字节的十六进制数,分别存在首地址为DATA1 和DATA2 的内存区,低位在前,高位在后。试用8086/8088 指令编写减法的程序段,要求相减以后得到的结果存放在首地址为DATA3 的内存区。 如果题 中的被减数和减数均为包括包括6 个字节的压缩BCD 码(相当于12 位十进制数),试重新编写减法的程序段。
|
|
15、
有一个数据块中存放了若干8 位无符号数,数据块的长度存放在BLOCK单元,数据块本身从BLOCK+1 单元开始存放,编写程序段找出数据块中最大的无符号数,存放到MAX 单元。
|
|
16、
以BUFFER 为首地址的内存区存放了100 个16 位带符号数,编写程序段比较它们的大小,找出其中最小的带符号数,存进MIN 和MIN+1 单元。
|
|
17、
两个字符串的长度均为100,首地址分别为STRING1 和STRING2,比较两个字符串是否完全相同,如果相同,将BL 寄存器置为00H;如果不完全相同,将BL 寄存器置为FFH,并将第一个字符串中的第一个不相同字符的地址放在SI寄存器。
|
|
18、
假设(BX)=12E3H,变量VALUE中存放的内容为1234H,确定下列各条指令单独执行BX寄存器的内容: 1、XOR BX,VALUE 2、AND BX,VALUE 3、OR BX, VALUE 4、 XOR BX,00FFH 5、AND BX,0 6、TEST BX,0001H
|
|
19、
假设(DX)=0A3B9H,(CL)=3,(CF)=1,确定下列各条指令执行后DX寄存器的值。 1、SHR DX,1 2、SAR DX,CL 3、SHL DX,CL 4、SHL DL,1 5、ROR DX,CL 6、ROL DL,CL 7、SAL DH,1 8、RCL DX,CL 9、RCR DL,1
|
|
|
五、程序阅读题:(共5题,10分)
1、
阅读以下程序: 1、假设从地址TABLE开始,10个存储单元中的内容依次为:05H,01H,09H,0CH,00H,0FH,03H,0BH,08H,0AH依次写出运行以上程序段后,从地址TABLE开始的10个存储单元的内容。 2、简要写出以上程序段的功能。
|
|
2、
将首地址为3000H的100个存储单元的内容传送到首地址为3100H的内存区,要求分别使用以下指令: (1)一般传送指令 (2)串操作指令MOVS,但不加重复前缀REP (3)加重复前缀的串操作指令REP MOVS。
|
|
3、
有一个数据块中存放了若干8 位无符号数,数据块的长度存放在BLOCK单元,数据块本身从BLOCK+1 单元开始存放,编写程序段找出数据块中最大的无符号数,存放到MAX 单元。
|
|
4、
以BUFFER 为首地址的内存区存放了100 个16 位带符号数,编写程序段比较它们的大小,找出其中最小的带符号数,存进MIN 和MIN+1 单元。
|
|
5、
两个字符串的长度均为100,首地址分别为STRING1 和STRING2,比较两个字符串是否完全相同,如果相同,将BL 寄存器置为00H;如果不完全相同,将BL 寄存器置为FFH,并将第一个字符串中的第一个不相同字符的地址放在SI寄存器。
|
|
|
|