5.指令MOV [BX+SI],AX该指令中的目的操作数使用( DS )段寄存器。 6.指令MOV BX,[BP+5]中的源操作数使用( SS )段寄存器。 7.段内间接寻址只改变( IP )中的内容。 8.段间间接寻址只改变( CS,IP )中的内容。
9.在一条指令中,立即数只能作(源 )操作数。
10.8086/8088 CPU形成的内存物理地址有( 20 )位。
11.指令“MOV AX,[BX+SI]”的源操作数在内存的 ( DS )段。 12.指令“MOV BX,[BP+DI]”的源操作数在内存的( SS )段。 13.指令“MOV AX,ES:[SI]”的源操作数在内存的( ES )段。 14.入栈指令使用的是( SS )段。
15.指令“ADD [BX+SI],AL”的目的操作数是( )寻址方式。 16.指令“SUB BX,06H[SI]”的源操作数是( )寻址方式。 17.指令“JMP DWORD PTR [BX]”属于( )寻址方式。
18.堆栈是从( )地址向( )方向生长的。其操作遵循 的操作原则。 19.在进行弹栈操作时应该先将弹出的数据送( ),然后( ) 。 20.通用的数据传送指令不影响( )。
21.“INC AL” 指令不影响标志位的( CF )位。 22.若AL=11H,执行“NEG AL” 后,AL= ( )。
23.两个无符号数进行比较时,可以根据 标志位来判断大小。在编写程序时可使用指令来实现。 24.若执行“DIV BX”,其被除数的高16位必须放在( ),低16位必须放在( ) 。 25.执行 AND AL,0FH JNZ L指令,是检测AL中的 位,当它为非零则转移。 26.若移位指令的移位位数大于1时,其移位位数必须放在( CL )中。 27.如果AL=85H,CL=4,执行“SAR AL,CL”时,AL= 0F8H ,CF= 0。
1000 0101
30.设AL=67H,执行“CMP AL,76H”后,AL=( 67 ) 31.压栈操作是( )位数的操作。 二、 单项选择 1.下述指令中不影响CF的指令是( )。 A.SHL AL,1 B.INC CX
C.ADD [BX],AL D.SUB AX,BX
2.两个整数补码9CH和7AH相加运算后,会产生( )。 A.无溢出且无进位 B.无溢出但有进位 C.有溢出且有进位 D.有溢出但无进位
3.指令JMP WORD PTR [BX]属于( )寻址。
A.段内直接 B.段内间接 C.段间直接 D.段间间接 4.指令MOV AX,[BX+SI+8]的源操作数属于( )寻址。 5.指令( )不改变CF的内容。 A.DEC AL B.ADD AX,CX C.SUB [BX],CL D.SBB AL,DL
6.执行IMUL指令时,如果乘积的高位部分不是低位部分的符号扩展,则( )。 A.OF=0、CF=0 B.OF=0、CF=1 C.OF=1、CF=0 D.OF=1、CF=1 7.设AX=3762H,CL=5,执行“SHR AX,CL”后,AX=( )。 A.0376H B.01BBH C.01BB D.0376
8.若DS=1000H,BX=2000H,(12000H)=56H,(12001H)=78H,AX=1000H,执行“ADD AX,[BX]”指令后,AX=( )。
6
A.8856H B.6678H C.8800H D.6600H
9.设AX、BX寄存器的二进制数据,若执行“CMP AX,BX”指令后,( )表示高于则转L。 A.JZ B.JA C.JGE D.JG
10.执行“DIV BX”指令后,( )寄存器中存放商。 A.AL B.AH C.AX D.DX
11.执行“( )AX,BX”指令不改变AX寄存器中的内容。 A.CMP B.ADD C.XOR D.OR
12.若AX=1000H,执行“NEG AX”指令后,AX=( )。 A.1000H B.0E000H C.0F000H D.1001H 三、多项选择题
1在下列寻址方式中,用来访问内存的寻址方式有( )。
A.寄存器寻址 B.寄存器间接寻址 C.寄存器相对寻址 D.直接寻址 2.用来作为寄存器间接寻址的寄存器有( )。
A.AX B.BX C.BP D. CX
3.在下列指令中,源操作数使用DS段寄存器进行寄存器相对寻址的有( )。 A.MOV AX,[DI+4] B.MOV AX,ES:[SI+8] C.MOV AX,[BP+4] D.MOV AX,[BX+4] 4.在下列指令中,源操作数的寻址方式是错误的有( )。 A.MOV AX,[DI+BX] B.MOV AX,[SI+DI] C.MOV AX,[BP+BX] D.MOV AX,[DX]
5.在下列指令中,属于段内转移指令的有( )。
A.JMP SHORT A B.JMP word ptr [BX]
C.JMP DWORD PTR [BX] D.JMP NEAR PTR [BX+SI]
6.执行“CMP AX,8003H”指令后,当AX中的无符号数高于8003H时,下列指令中有效的转移指令有( A.JNB L B.JA L C.JG L D.JNL L 7.在下列的输入/输出指令中,正确的指令有( )。 A.IN AX,80H B.OUT DX,AX
C.IN AL,340 D.OUT DX,AL
四.判断题(判断下列指令是否正确,如果是错误的,请指出错误的原因) 1. ADD AL,BX 18. MOV 64H,AL 2. SUB [BX],[SI] 19. ADD AL,6600H 3. CMP 5,AL 20. MOV[BX],[SI] 4. SHR AL,6 21. XCHG AX,8800H 5. MOV AL,[DI+SI] 22. MOV AX,[BX+DX] 6. MOV BL,200H 23. MUL AX,200H 7. MOV AX, [BP+BX] 24. MOV AX, [BX+BP] 8. ADD AX,[CX] 25. CMP [BX], [SI] 9. MOV DS, 2010H 26. OUT DX, BX 10. PUSH AL
27. AND OFH,AL 11. MOV DX,[SP] 28. SAL [BX],CX 12. ADD [BP+DI] 29. JMP FAR [BX+SI] 13. OUT DX,CL 30. MOV CS,DS 14. ADD 03ECH 31. ADD DS, AX 15. MOV BX, [SI+DI] 32. MOV AL,CX 16. MOV DI, [AX] 33. INC [BX] 17. SHL AX, 3
34. MOV CL,0A8H
7
。 )
35. IN AL,BX 36. DEC [SI]
37. CMP AL,BX 38. MOV [DX],AL
五.简答题
1.请说明如下指令中源操作数的寻址方式: (1) MOV BX,[1234H] (2)MOV BX,1234H (3)MOV DX,BX
(4)MOV DX,[BX]
(5)MOV DX,[BX+1234H]
39. MOV AL,300H
40. MOV [BX],[DI] 41. ADD AL,[CX+SI]
42. ADD AL,BX
(6) MOV DX,[BX+DI] (7)MOV DX,[BX+DI+1234H] (8)JMP WORD PTR [BX] (9)JMP FAR PTR P
2.设 DS=2000H, BX=0100H, SI=0002H, (20100H)=12H, (20101H)=34H,(20102H)= 56H, (20103H)= 78H, (21200H)= 2AH, (21201H)= 4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器中的内容是多少? (1)MOV AX,1200H (2)MOV AX,BX (3)MOV AX,[1200H] (4)MOV AX,[BX]
3.按下列各小题的要求写出相应的一条汇编语言指令。
(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中
(2)以BX和SI寄存器作基址变址寻址方式,把该单元中的一个字传送到AX。 (3)以SI和位移量20H作寄存器相对寻址,将该单元中的内容与CX寄存器中的内 容相加,结果存入CX寄存器中。
(4)清除AX寄存器的内容,同时清除CF标志位
4.设BX=8234H,请说明下列两条指令的区别,执行下列各指令后BX中的内容是什么? SHR BX,1
SAR BX,1
5.指出下列无条件转移指令属于什么跳转?(1)JMP BX
(2)JMP WORD PTR [BX] (3)JMP DWORD PTR [BX]
6. 计算题
(1)若AX=1020H,BX=1200H,CF=1,则SBB AX,BX的执行结果为: (2)若AX=2000H,CL=90H,则DIV CL执行后,AX= (3)若BL=83H,CF=1,则ADC BL,90H执行后,BL= (4)若DX=1010H,则AND DX,DX的执行结果为
(5)指令MOV BX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为: (6)指令MOV AX,COUNT[BX],若COUNT=0400H,SS=1200H,DS=1000H,BX=5000H,那么物理地址为: (7)指令MOV DX,DELTA[BX][SI],若DELTA=1300H,SS=7200H,DS=5400H,BX=0500H,SI=4000H,那么物理地址为:
8
(5)MOV AX,[BX+1100H] (6)MOV AX,[BX+SI] (7)MOV AX,[BX+SI+1100H]
(4)JMP P
(5)JMP SHORT R
7.8086语言指令的寻址方式有哪几类? 答:
8.若DS=6000H,SS=5000H,ES=4000H,SI=0100H,BX=0300H,BP=0400H,D=1200H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少? (1)MOV AX,[64H] (7)MOV AL,[BX+1110H] (3)MOV AX,[SI] (4)MOV AX,[BX] (5)MOV AX,[BP] (6)MOV AL,[DI]
11. 假设(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 请写出下列各条指令单独执行完后, 有关寄存器及存储单元的内容, 若影响条件码请给出条件码SF、ZF、OF、CF的值。
(1) SBB AX,BX
(2)
CMP
AX,WORD PTR[SI+0FA0H] (3) MUL BYTE PTR[BX] AX,0FFE7H (5) DIV BH AX,CL
(8)MOV AX,NUM[BX] (9)MOV AX,[BX+SI] (10)MOV AX,NUM[BX][DI]
(4) XOR(6)
SAR
(7) JMP WORD PYR[BX]
13假设已知(DS)=2900H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)= 0100H,(BP)=0010H,数据段中变量名VAL
的偏移地址值为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少? (1) MOV AX,0ABH (2) MOV AX,BX (3) MOV AX,[100H] (4) MOV AX,VAL (5) MOV AX,[BX] (6) MOV AX,ES:[BX] (7) MOV AX,[BP] (8) MOV AX,[SI]
(9) MOV AX,[BX+10] (10) MOV AX,VAL[BX] (11) MOV AX,[BX][SI] (12) MOV AX,[BP][SI]
14.假定AX和BX中内容为带符号数,CX和DX中的内容为无符号数。请用比较指令和条件转移指令实现以下判断。 (1)若DX的内容高于CX的内容,转去执行EXCEED。 CMP DX,CX JA EXCEED
(2)若BX的内容大于AX的内容,转去执行EXCEED。 (3)若CX的内容等于零,转去执行ZERO。
(4)若BX的内容小于等于AX的内容,转去执行EXCEED。 (5)若DX的内容低于等于CX的内容,转去执行EXCEED。 六.程序分析题
1.现有程序段如下: MOV AX,1234H MOV BX,60H
ADD AX,BX 请回答 :(1)该程序段完成的功能是什么? (2)程序段执行完后AX= 。
2.现有程序段如下: MOV AX,0603H MOV BL,8
9
DIV BL 请回答 :(1)该程序段完成的功能是什么? (2)程序段执行完后AX= 。
3.设AX=0D023H,BX=9FD0H,试分析执行完如下程序段后程序转向何处? ADD AX,BX JNC L3 JNO L1 JNO L4 JNC L2 JMP L5
SUB AX,BX
4.现有程序段如下: MOV BL,AL MOV A,BL MOV CL,4 AND AL,0FH SHR BL,CL
MOV B,A
请回答 :(1)该程序段完成的功能是什么? (2)如果AL的初值为56H,则A=
5.现有程序段如下: MOV AX,M SHR DX,1 MOV DX,N RCR AX,1
请回答 :(1)该程序段完成的功能是什么`?
(2)若M=1234H,N=5678H,程序运行后DX= ,AX= 。
6.现有程序段如下: XOR AX,AX ROL AH,CL MOV AX,6342H XCHG CH,CL MOV CX,0404H ROR AL,CL
请回答 :(1)该程序段执行后AX= 。 (2)CF= 。
7.现有程序段如下: MOV AX,1 L: INC AX MOV BX,2 ADD BX,AX MOV CX,4 SHR DX,1 MOV DX,3
LOOPNZ L
请回答 :(1)该程序段的循环次数是多少?
(2)该程序段执行完后AX= ,BX= ,CX= ,DX= 。
8. 根据下列要求编写一个汇编语言程序:: 代码段的段名为COD_SG 数据段的段名为DAT_SG
堆栈段的段名为STK_SG
变量HIGH_DAT所包含的数据为95
将变量HIGH_DAT装入寄存器AH,BH和DL 程序运行的入口地址为START
10
,B= 。