2014计算机三级《PC技术》考试要点:80x86指令系统(3)
(3)循环指令
循环控制指令用来控制一个程序段的重复执行。
①LOOP
格式: LOOP 标号
功能:目标地址在+1~128字节以内,重复次数置CX中且CX≠0时循环。它等效于下述2条指令的组合:
DEC CX
JNE NEXT
②LOOPZ(或LOOPE)标号
此指令有两种助记符。此指令使(CX)←(CX)-1,当CX≠0并且在标志位ZF=1的条件下,循环至目标操作数。
③LOOPZ(或LOOPE)标号
指令使(CX)←(CX)-1,且判断只有当CX≠0,且标志位ZF=0的条件下,循环至目标操数。
④JCXZ 标号
若CX=0,则此指令控制转移到目标操作数。
(4)中断指令
中断指令允许程序在需要时去启动中断服务程序。
①●INT n 启动由类型码n所规定的中断服务程序。
②●INTO 溢出中断。
③●IRET 中断返回。
6.处理器控制指令
(1)操作标志
单独对标志进行操作的指令有:
①●CLC 清进位,CF=0
②●CMC 进位取反
③●STC 置CF=1
④●CLD 置DF=0
⑤●STD 置DF=1
⑥●CLI 置IF=0
⑦●STI 置IF=1
(2)处理器暂停
HLT 处理器暂停,直到出现中断复位信号。
(3)处理器等待
WAIT 等待状态,定期检查TEST信号。
(4)处理器脱离
SEC 换码指令,向外处理器提供数据。
(5)总线封锁
LOCK 总线锁定命令。
(6)空操作指令
NOP 除指令地址指针加1外,不执行任何操作。
(二)80286扩展的指令
80286指令系统完全兼容8086/8088指令系统。由于80286有实地址和虚地址保护两种工作方式,因而与8086指令系统比较,其绝大部分指令是相同的(仅做了少量增加)。例如,在数据传送指令组中,增加了PUSHA和POPA,用于过程调用、中断服务中恢复现场;在串操作指令中增加了INS和OUTS指令,以实现成批数据的输入和输出;在控制转移指令中,增加ENTER、LEAVE、BOUND等三条有关过程处理的指令。
80286还增加了专门用虚地址保护方式的15条新指令。它们是:
●IGDT 装入全局描述符表寄存器。
●SGDT 存放全局描述符表寄存器。
●LIDT 装入中断描述符表寄存器。
●SIDT 存放中断描述符表寄存器。
●LLDT 从寄存器/存储器中装入局部描述符寄存器。
●SLDT 把同部描述了表寄存器放入寄存器/存储器。
●LTR 从寄存器/存储器中装入任务寄存器。
●STR 把任务寄存器存放到寄存器/存储器。
●LMSW 从寄存器/存储器装入机器状态字。
●SMSW 把机器状态字存放到寄存器/存储器。
●LSL 从寄存器/存储器装入段限。
●LAR 从寄存器/存储器装入访问权。
●ARPL 从寄存器/存储器中调整已请求的特权书。
●VERR 从寄存器/存储器读进行验证。
●VERW 从寄存器/存储器写进行验证。
(三)80386扩展的指令80386新增的指令组有 :1.高级语言支持指令组
BOUND 数组边界检查
ENTER 为进入程序建立的参数块
LEAVE 离开程序
SETCC 按条件置字节
2.保护指令组
CLTS 任务切换标志置0
SGDT 存放全局描述符表
SIDT 存放中断描述符表
STR 存放任务寄存器
SLDT 存放局部描述符表
LGDT 装入全局描述符表
LIDT 装入中断描述符表
LTR 装入任务寄存器
LLDT 装入局部描述符表
ARPL 调整请求特权级
LAR 装入存取权
LSL 装入段界限
VERR/VERW 查证段能否读写
LMSW 装入机器状态字
SMSW 存放机器状态字
3.位处理指令组
BT 位测试
BTS 位测试并置“1”
BTR 位测试并复位
BTC 位测试并求补
BSF 向前位扫描
BSR 向后位扫描