第9讲第3章指令系统讲述.ppt
文本预览下载声明
* * * * * * 第三章 指令系统 ( 5 ) * 3.11 处理机控制类指令 这些指令在特定的情况下,必须使用 对标志位进行设置的指令 CLC STC CMC CLD STD CLI STI 对CPU状态进行控制的指令 NOP CS: SS: DS: ES: LOCK HLT ESC WAIT * 第三章 指令系统 ( 5 ) * 进位标志操作指令 用于任意设置进位标志 CLC ;复位进位标志:CF←0 STC ;置位进位标志:CF←1 CMC ;求反进位标志:CF←~CF * 第三章 指令系统 ( 5 ) * 方向标志操作指令 串操作指令中,需要使用 CLD ;复位方向标志:DF←0 STD ;置位方向标志:DF←1 * 第三章 指令系统 ( 5 ) * 中断标志操作指令 在编写中断服务程序时,需要控制可屏蔽中断的允许和禁止 CLI ;复位中断标志:DF←0 STI ;置位中断标志:DF←1 * 第三章 指令系统 ( 5 ) * 空操作指令 NOP 不执行任何操作,但占用一个字节存储单元,空耗一个指令执行周期 NOP常用于程序调试 在需要预留指令空间时用NOP填充 代码空间多余时也可以用NOP填充 还可以用NOP实现软件延时 事实上,NOP和XCHG AX,AX的指令代码一样,都是 90H NOP * 第三章 指令系统 ( 5 ) * 段超越前缀指令 在允许段超越的存储器操作数之前,使用段超越前缀指令,将采用指定的段寄存器寻址操作数 CS: ;使用代码段的数据 SS: ;使用堆栈段的数据 DS: ;使用数据段的数据 ES: ;使用附加段的数据 * 第三章 指令系统 ( 5 ) * 封锁前缀指令 LOCK ;封锁总线 这是一个指令前缀,可放在任何指令前 这个前缀使得在这个指令执行时间内,8086 处理器的封锁输出引脚有效,即把总线封锁,使别的控制器不能控制总线;直到该指令执行完后,总线封锁解除 * 第三章 指令系统 ( 5 ) * 暂停指令 HLT ;进入暂停状态 暂停指令使CPU进入暂停状态,这时CPU不进行任何操作。当CPU发生复位或来自外部的中断时,CPU脱离暂停状态 HLT指令可用于程序中等待中断。当程序中必须等待中断时,可用HLT,而不必用软件死循环。然后,中断使CPU脱离暂停状态,返回执行HLT的下一条指令 交权指令 ESC 6位立即数,reg/mem ;把浮点指令交给浮点处理器执行 浮点协处理器8087指令是与8086的整数指令组合在一起的,当8086发现是一条浮点指令时,就利用ESC指令将浮点指令交给8087执行 实际编写程序时,一般采用易于理解的浮点指令助记符格式 ESC 6,[SI] ;实数除法指令:FDIV dword ptr [SI] ESC 20H,AL ;整数加法指令:FADD ST(0),ST 第 3 章 * 第三章 指令系统 ( 5 ) * 等待指令 WAIT ;进入等待状态 8086利用WAIT指令和测试引脚实现与8087同步运行 浮点指令经由8086处理发往8087,并与8086本身的整数指令在同一个指令序列;而8087执行浮点指令较慢,所以8086必须与8087保持同步 * 教学要求 掌握基本指令:JMP/Jcc、JCXZ/LOOP、CALL/RET、INT n 熟悉特色指令:IRET、NOP 了解不常使用的指令:LOOPZ/LOOPNZ、INTO、LOCK/HLT/ESC/WAIT * 第三章 指令系统 ( 5 )
显示全部