11) MUL 25 12) INC IP
27.指出下列指令的正误,说明原因并改正。 1)LEA BX,AX 2)XCHG BL,100 3)IN AL,300H 4)TEST AL,100H 5)MOV [BX],[SI]
28.指出下列传送指令中哪些是非法指令,说明原因 1)POP AL
2)MOV CS,AX 3)OUT 310,AL
4)MOV {BX+CX},2130H 5)ADD [BX],[SI] [答案]
1 T 2 T 3 F 4T 5F 6F 7T 8T 9T 10T 11F 12T 13T 14T 15F 16T 17T 18F 19T 20T 21T 22F 23F 24F 25F
26. 1)F,禁止对CS寄存器赋值 2)F,段寄存器不能直接赋值 3)F,无此指令,可PUSHF
4)F,源操作数和目标操作数的尺寸不一致 5)F,LEA指令的源操作数必须是内存操作数
6)F,存储器寻址的有效地描述只能使用BX,BP。SI,DI,不能使用DX 7)F,BX和BP不能同时使用,BX只能与SI或DI相搭配
8)F,8086/8088的移位指令,当移位超过1位就必须将移动位数赋给CL 9)F 不允许在存储单元之间比较
10)F,断口地址超过255必须放入DX,采用寄存器DX间接寻址。 11)F,8086/8088的MUL指令源操作不允许为立即数。 12)F,不能对指令指针IP进行任何操作。
27. 1)F,本条指令取存储单元有效地址,源操作数必须是存储单元而不能是寄存器AX。目标操作数必须是通用寄存器之一 改:LEA BX,[SI]
2)F,不能与立即数进行交换。 改:XCHG BL,[100] 3)F,300H>255,I/O地址由DX给出。 改:MOV DX,300H IN AL,DX
4)F,操作数尺寸不匹配,AL是8位寄存器,100H不是8位数据。改:TEST AX, 100H 5)x,串操作指令中的目标操作数只能是ES:【DI】。改:MOV ES:【DI】, DS:【SI】 28.1) x, 出栈指令为数字操作。 2)x, CS不能作目标操作数。
3)x, 因为310>255,端口地址应放入DX 4) x, CX不能用作偏移地址寄存器。 5)x 内存单元间不能直接运算。
3.4 填空题
1.一条指令中一般包含有____(1)____和____(2)____两部分信息。 解:(1)操作码 (2)操作数
2.计算机中操作数可以在____(1)____中、____(2)____中、____(3)____中和____(4)____中。
29
解:(1)指令 (2)寄存器 (3)存储器单元 (4) I/O端口
3、对内存操作数寻址其有效地址EA是由____(1)____ 、____(2)____和____(3)____三部分分量之和来表示。 解:(1)基址寄存器 (2)变址寄存器 (3)位移器
4.BX、BP被称作____(1)____寄存器,用它们寻址称为____(2)____;将SI、DI称作____(3)____寄存器,用其寻址称为____(4)___ 解:(1)基址 (2)基址寻址 (3)变址 (4)变址寻址
5.当采用寄存器间接寻址时,使用通用寄存器BX,DI,SI时,可以默认不写的段寄存器是____(1)____,当使用通用寄存器BP时,可以默认不写的段寄存器是____(2)____。 解:(1)DS (2)SS
6.指令MOV AX,[BX][SI]中,目标操作数在____(1)____中,源操作数在____(2)____中,此时源操作数隐含使用的段寄存器为____(3)____ 解:(1)寄存器AX (2)内存单元 (3)DS 7.指令ADD【BP】,AL执行时,操作的结果在____(1)____段中,此时计算目的操作数物理地址的表达式是____(2)____ 解:(1)堆栈 (2)SS*16+BP
8.串寻址中,使用了一种隐含的变址寄存器寻址,分别使____(1)____和____(2)____指向源串和目的串,实现字符串操作 解:(1)SI (2)DI
9.串处理指令规定源串指针寄存器必须使用____(1)____,源串默认为在____(2)____段中,也可以在其他段,但必须指明;目的串指针寄存器必须使用____(3)____,目的串只能在____(4)____段中。 解:(1)SI (2)DS (3)DI (4)ES
10.操作数在I\\O端口时,当端口地址____(1)____,必须把端口地址放在____(2)____中,类似于存贮器寻址中的寄存器间接寻址。 解:(1)≧256 (2)DX
11.对于乘法、除法指令,其目的操作数一定在____(1)____或____(2)____中,而其源操作数可以在____(3)____中。 解:(1)AX (2)DX和AX (3)寄存器或存储单元
12.当AL<80H时,执行CBW后,AH=____(1)____;而当AL≧80H时,执行CBW后,AH=____(2)____。 解:(1)OOH (2)OFFH
13.算数右移指令SAR可于实现____(1)____数除2,而逻辑右移指令SHR则可用来实现____(1)____数除2 解:(1)对带符号 (2)对无符号
14.如果TABLE为数据段中0032H单元的符号名,其中存放的内容为1234H,当执指令MOV AX, TABLE后,AX=____(1)____;而执行指令LEA AX, TABLE后,AX=____(2)____ 解:(1)1234H (2)0032H
15.设当前的SI=1000H,DS=5000H,内存字单元(51000H)=1234H,执行MOV BX,【SI】后BX=____(1)____,执行LEZ BX,[SI]后,BX=____(2)____ 解:(1)1234H (2)1000H
16.假设DS=B000H,ES=A000H,BX=080AH,DI=1200H,(0B080AH)=05AEH, (0B080CH)=4000H,当执行指令LES DI,【BX】后,DS=____(1)____,ES____(2)____,DL=____(3)____ 解:(1)B000H (2)4000H (3)05AEH
17.使用查表指令XLAT之前,要求____(1)____寄存器指向表所载的段,____(2)____寄存器指向表的首地址,____(3)____寄存器中存放待查项在表中的位置与表首址的距离 解:(1)DS (2)BX (3)AL
18.读取标志位指令LAHF和设置标志位指令SAHF均只对标志寄存器FR中的____(1)____标志操作 解:(1)低8位
19.条件转移指令时一种短转移,其转移范围在____(1)____字节内。 解:(1)-128~+127
20条件转移指令的目标地址应在本条件转移指令的下一条指令地址的____(1)____字节范围内。 解:(1)-128~+127
30
21.子程序的调用与返回分段内和段间两种情况,对于段内调用与返回仅需要修改____(1)____的值,对于段间调用与返回需要同时修改____(2)____和____(3)____的值。执行CALL指令时,这些值均自动保存在____(4)____中。 解:(1)IP (2)CS (3)IP (4)堆栈
22.近过程(NEAR)的返回指令RET把当前栈顶的一个字弹出到____(1)____;远过程(FAR)的返回指令RET将先弹出一个字到____(2)____后又弹出一个字到____(3)____;IRET是____(4)____指令,它从堆栈栈顶顺序弹出三个字分别送到____(5)____、____(6)____ 和____(7)____
解:(1)IP (2)IP (3)CS (4) 中断返回 (5)IP (6)CS (7)标志寄存器FR 23.段内和段间的转移指令寻找方_____(1)_____和_____(2)_____两种。 [解] (1)直接寻址 (2)间接寻址 24.用CMP指令对无符号比较(A-B),当A
25.四条逻辑运算指令AND,OR,XOR,NOT中,_____(1)_____指令对标志位均无影响,而其他3条指令除对标志位 SF,ZF,PF有影响外,还使_____(2)_____和_____(3)_____总是置“0”,AF不确定。 [解] (1)NOT (2)CF (3)OF
26.如果要对一个字节或一个字的数求反,可用指令_____(1)_____,要对寄存器或存储单元内容中指定位求反则可运用_____(2)_____指令。
[解] (1)NOT (2)XOR 27.根据要求写出相应的指令。
(1)将附加段200H偏移地址中的数据送到BX中_____(1)_____ (2)将DH中的高4位求反,低4位保持不变。_____(2)_____
(3)将CL的符号位(D7位)置1,保持其他位不变。_____(3)_____ [解] (1)MOV BX, ES :[200H] (2)XOR DH,0F0H (3)OR CL,80H
28.压缩型BCD码加法调整指令为_____(1)_____,非压缩型BCD码加法调整指令为_____(2)_____,压缩型BCD码减法调整指令为_____(3)_____,非压缩型BCD码减法调整指令为_____(4)_____。 [解] (1)DAA (2)AAA (3)DAS (4)AAS 29.下面一段程序段: MOV AX,0 MOV AL,09H ADD AL,04H
1) 若要获得AX=13H,则在ADD指令后面加一条指令_____(1)_____ 2) 若要获得AX=0103H,则在ADD指令后面加一条指令_____(2)_____ [解] (1)DAA (2)AAA
30.试填空完善下面一段程序,使之完成对100个字单元的缓冲区清零,设缓冲区为2000H:0800H。 MOV AX,2000H MOV ES,AX MOV DI,0800H _____(1)_____ MOV AL,00H CLD
REP STOSB
[解] (1) MOV CX,100 31.试完成下面子程序,使其实现利用DOS功能调用INT21H,将一个DL中的字节数据的低4位ASCII码的形式显示出来。
DISPL PROC NEAR
31
_____(1)_____ CMP DL,9 JBE NEXT ADD DL,7 NEXT:ADD DL,30H _____(2)_____ _____(3)_____ RET
DISPL _____(4)_____
[解] (1) AND DL,OFH (2) MOV AH,2 (3) INT 21H (4)ENDP
32.试完成下面程序段,使其完成将存储单元DA1中压缩型BCD码,拆成二个非压缩型BCD码,低位放入DA2单元,高位放入DA3单元,并分别转换为ASCII码。 STRT: MOV AL,DA1 MOV CL,4 _____(1)_____ OR AL,30H MOV DA3,AL MOV AL,DA1 _____(2)_____ OR AL,30H MOV DA2,AL
[解] (1) SHR AL,CL (2) AND AL,OFH
34.分析下列程序段,程序段执行后 AX=_____(1)_____,BX=_____(2)_____,CF_____(1)_____。 MOV AX,5C8FH MOV BX,0AB8FH XOR AX,BX XOR AX,BX
[解] (1)5C8FH (2)0AB8FH (3)0
35.分析下列程序段,程序段执行后 AX=_____(1)_____,BX=_____(2)_____,CF=_____(1)_____。 XOR AX,AX INC AX NEG AX
MOV BX, 3FFFH ADC AX, BX
[ 解] (1) 3FFFH (2) 3FFFH (3) 1
36. 分析下列程序段,在横线上填上适当的内容。 1) MOV AL, OFH MOV BL, OC3H XOR AL, BL 则有:AL =(1),BL =(2 )CF =(3) 2) Mov BL, 93H MOV AL, 16H ADD AL, BL DAA
则有:AL =_(4),CF=(5),AF=(6) 3) Mov AX, BX
32