8086/8088 CPU所提供的这类指令允许程序控制CPU的各种功能。分为标志操作类和其他处理器控制指令。
1.标志操作指令
这组指令是用来设置或清除标志位的,它们只影响本指令的标志,而不影响其他标志位。这些指令是:
CLC 进位位置0指令
CMC 进位位求反指令
STC 进位位置1指令
CLD 方向标志置0指令
STD 方向标志置1指令
CLI 中断标志置0指令
STI 中断标志置1指令
2.其他处理器指令
NOP空操作指令,该指令不执行任何操作,其机器码占用一个字节单元。
HLT 暂停指令,该指令使CPU暂停工作,等待复位信号或外部中断到来。
WAIT 等待指令,该指令使CPU处于空转状态,也可用来等待外部中断发生。
ESC 换码指令,与协处理器配合工作。
LOCK 封锁指令,与协处理器配合工作。
习题
3-1 什么是立即操作数?什么是寄存器操作数?什么是存储器操作数?试各举一例说明。
3-2 分别指出下列指令中源操作数和目的操作数的寻址方式。
(1)MOV DI,9000H (2)MOV BX,4[SI]
(3)MOV[SI],A X (4)ADD AX,90
(5)MOV AX,COUNT[BX][DI] (6)MOV BX,DS:[1000H]
(7)MOV CL,A L (8)MOV DX,DS:[BP]
3-3 指出下列指令的错误。
(1)MOV AL,1000 (2)MOV BX,AL
(3)MOV[SI],800H (4)ADD[DI],[SI]
(5)MOV AX,COUNT[BX][BP] (6)SHL AX,2
(7)MOV CS,AX (8)SHR DL,CH
(9)MOV 86H,AL (10)MUL 9
(11)MOV DS,SS (12)INC[DI](www.xing528.com)
3-4 8086/8088的指令集可分为哪六个子集?
3-5 用若干种方法实现下列要求,给出指令或指令序列。
(1)判断寄存器AX的低4位是否全部为0;
(2)清进位标志位;
(3)将累加器AL的内容乘以2;
(4)使BL寄存器低4位清零,高4位保持不变;
(5)使BL寄存器低4位置1,高4位保持不变;
(6)使AL寄存器低4位保持不变,高4位取反。
3-6 设DS=1000H,ES=2000H,SS=1500H,SI=0080H,BX=0900H,BP=0110H,试指出下列指令的源操作数是什么寻址方式,它的物理地址是多少?
(1)MOV AX,098H (2)MOV AX,[1000H]
(3)MOV AL,[S I] (4)MOV AX,[BP]
(5)MOV AX,DS:[BP+10] (6)MOV AX,[BX][SI]
(7)ADD BX,SS:[SI] (8)ADD CX,BX
3-7 写出执行以下二进制运算的指令序列,其中X、Y、Z、W、R均为存放16位带符号数变量。
(1)Z=(Z-X)+W (2)Z=W-(X+10)-(R+8)
(3)Z=(W×X)/(Y+4)
3-8 假定AX和BX中是有符号数,CX和DX中是无符号数,请为下列各项确定CMP和条件转移指令:
(1)CX值超过DX转移至标号NEXT处;
(2)AX值超过BX转移至标号NEXT处;
(3)DX值为0转移至标号NEXT处;
(4)CX值小于等于DX转移至标号NEXT处。
3-9 自BUFFER单元开始连续存放这两个双字类型数据,编程序求它们的和,并将结果存放在这两个数据之后。
3-10 编写一程序段,实现比较两个10B的字符串OLDS和NEWS,若两字符串不等,则转向NSAME标号,否则顺序执行程序。
3-11 写出4条使AX清零的指令。
3-12 写一程序片段,求AL和BL之差的绝对值。
3-13 写出把首址为BUF的字型数组的第二个字送到AX寄存器的指令,要求使用三种不同的寻址方式实现。
3-14 已知(AL)=8EH,标志寄存器中的标志位OF、SF、ZF、AF、PF、CF均为0,指出执行指令ADD AL,72H后,各标志位的值。
3-15 分别用乘法指令和移位、加法指令实现Y=12X的运算。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。