一、选择题
1.寄存器间接寻址方式中,要寻找的操作数位于( B )中。
A.通用寄存器 B.内存单元 C.段寄存器 D.堆栈
2.下列指令中正确的是( C )。
A.MOV AL,BX B.MOV CS,AX C.MOV AL,CL D.MOV [BX],[SI]
3.下列指令中错误的是( C )。
A.MOV AX,1234H B.INC BX C.SRL AX,2 D.PUSH DX
4.设(SP)=1010H,执行POP AX后,SP中的内容为( B )。
A.1011H B.1012H C.1OOEH D.100FH
5.给定(AL)=80H,(CL)=02H,指令SHR AL,CL执行后的结果是(B )。
A.(AL)=40H B.(AL)=20H C.(AL)=C0H D.(AL)=E0H
6.将AX清零并使CF位清零,下面指令错误的是( A )。
A.SUB AX,BX B.XOR AX,AX C.MOV AX,0 D.AND AX,0OOOH
二、填空题
2.寻址的含义是指_寻找操作数的过程_;8086指令系统的寻址方式按照大类可分为_与操作数有关的寻址方式、与I/O端口有关的寻址方式_;其中寻址速度最快的是_立即数寻址_。
4.堆栈是一个特殊的_存储器区域_,其操作是以_2字节单元_为单位按照__先进后出_原则来处理;采用_SP_指向栈顶地址,入栈时地址变化为_SP<=(SP)-2_。
5.I/O端口的寻址有_直接端口寻址和间接端口寻址_两种方式;采用8位数时,可访问的端口地址为_0~255_;采用16位数时,可访问的端口地址为_0~65535_。
三、分析计算题
1.指出如下指令中源操作数和目的操作数的寻址方式:
(1)MOV AX,100H (2)MOV CX,AX
(3)ADD [SI],1000 (4)SUB BX,[SI+100]
(5)MOV [BX+300],AX (6)AND BP,[DI]
解:
源操作数的寻址方式 目的操作数的寻址方式
(1)MOV AX,100H 立即数 寄存器
(2)MOV CX,AX 寄存器 寄存器
(3)ADD [SI],1000 立即数 寄存器间接
(4)SUB BX,[SI+100] 变址 寄存器
(5)MOV [BX+300],AX 寄存器 变址
(6)AND BP,[DI] 寄存器间接 寄存器
2.分析如下指令的正误,对错误指令说明出错误原因并加以收正:
(1)MOV [1200],23H (2)MOV 1020H,CX
(3)MOV [1000H],[2000H] (4)MOV IP,O00H
(5)PUSH AL (6)OUT CX,AL
(7)IN AL,[80H] (8)MOV CL,3300H
解:
(1)MOV [1200],23H ;未指明数据类型 MOV BYTE PTR[1200],23H
(2)MOV 1020H,CX ;立即数不能作为目标操作数 MOV [1020H],CX
(3)MOV [1000H],[2000H] ;两操作数不能均是内存单元 MOV BYTE PTR [1000H],2000H
(4)MOV IP,000H ;IP不能在MOV指令中出现 JMP 000H
(5)PUSH AL ;操作数必须是16位 PUSH AX
(6)OUT CX,AL ;CX不能作为端口地址的间接访问寄存器 OUT DX,AL
(7)IN AL,[80H] ;直接端口地址写法错误 IN AL,80H
(8)MOV CL,3300H ;两操作数的数据类型不一致 MOV CX,3300H
4.已知(AX)=75A4H,CF=1,分别写出如下指令执行后的结果:
(1)ADD AX,08FFH (2)INC AX
(3)SUB AX,4455H (4)AND AX,OFFFH
(5)OR AX,0101H (6)SAR AX,1
(7)ROR AX,1 (8)ADC AX,5
解:
(1)ADD AX,08FFH ;(AX)= 7EA3H CF=0
(2)INC AX ;(AX)= 75A5H CF=1
(3)SUB AX,4455H ;(AX)= 314FH CF=0
(4)AND AX,0FFFH ;(AX)= 05A4H CF=0
(5)OR AX,0101H ;(AX)= 75A5H CF=0
(6)SAR AX,1 ;(AX)= 3AD2H CF=0
(7)ROR AX,1 ;(AX)= 3AD2H CF=0
(8)ADC AX,5 ;(AX)= 75AAH CF=0
6.试分析如下程序段执行完后,BX的内容:817FH
MOV BX,1030H
MOV CL,3
SHL BX,CL
DEC BX
解:
(BX)=1030H
(CL)=3
(BX)=8180H
(BX)=817FH
四、设计题
2.设AX、BX中保存有带符号数,CX、指令或程序段。
(1)若(CX)<(DX),则转移到NEXT1。
CMP CX,DX
JB NEXT1
(2)若(AX)>(BX),则转移到NEXT2。
CMP AX,BX
JG NEXT2
中保仔无符号数,请写出实现以下功能的DX
(3)若(CX)=0,则转移到NEXT3。
CMP CX,0
JE NEXT3
(4)若AX中内容为负,则转移到NEXT4。
ADD AX,0
JS NEXT4
五、写出完成下述功能的指令
(1)传送25H到AL寄存器
解:MOV AL,25H
(2)将AL的内容乘以2
解:SHL AL,1
(3)AL的内容乘以BL的内容
解:MUL BL,AL
(4)测试AL最低位是否为1
解:TEST AL,01
(5)把AL内容变成对应的ASCII
解:MOV AL,‘a’… ‘Z’
XLAT
(6)截取AL的低4位
解:AND AL,0FH
(7)交换AX、BX的内容。
解:XCHG AX,BX
因篇幅问题不能全部显示,请点此查看更多更全内容