资源描述:
《处理机控制指令.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、6.处理机控制指令1)标志处理指令CLC,STC,CMC,CLD,STD,CLI,STI2)处理机控制指令HLT,NOP,WAIT,ESC,LOCK11)标志处理指令▲设置和清除标志的指令,只影响指令指定的标志22)处理机控制指令①暂停指令HLT格式HLT执行使CPU处于暂停状态用于等待外部中断,中断处理结束后,继续执行HLT后的下一条指令例、、、、、、STI;允许外部中断HLT;等待中断MOVAX,0、、、、、、3②空操作指令NOP格式NOP指令不执行任何操作例:(也可用NOP指令进行短延时(教材中的一些例子用到)其机器码占一个字节单元,在调试程序时,修改
2、程序用。47.串处理指令串的基本概念顺序存放在内存中的一组数据,称为串。用串的首(末)地址、元素类型、串的长度表示。5串操作种类①串传送将串从内存某一区域传送到另一区域。②从串取从串中取出某一元素。③存入串将某个数据存入串中。④串比较对两个串进行比较。⑤搜索串在串中搜索(查找)某数据(关键字)6串处理指令格式重复控制前缀 串指令控制重复次数 基本操作MOVSB、MOVSW串传送REPLODSB、LODSW从串取REPZSTOSB、STOSW存入串REPNZCMPSB、CMPSW串比较SCASB、SCASW搜索串例REPMOVSBREPZCMPSBREPN
3、ZSCASW7①串指令串传送MOVS从串取LODS存入串STOS串比较CMPS搜索串SCAS8串指令的特点①指令给出串操作的种类、类型,而操作数隐含给出。如MOVSB;字节MOVSW;字②源串由DS:SI指向的单元目的串由ES:DI指向的单元③指令执行后,指针据DF标志、操作类型自动修改字节操作1;字操作2DF=0用+;DF=1用-9④对只有一个存储器操作数的串指令如LODS(从串取)STOS(存入串)SCAS(搜索串)另一个操作数在AL(字节操作)或AX(字操作)⑤CMPS(串比较)、SCAS(串搜索)影响标志,MOVS(串传送)、LODS(从串取)、ST
4、OS(存入串)不影响标志。10串传送◢◢格式MOVSB字节传送MOVSW字传送◢◢MOVSB执行操作(ES:DI)←(DS:SI)字节传送(SI)←(SI)1修改源串指针(DI)←(DI)1修改目的串指针其中:DF=0,用+DF=1,用-◢◢MOVSW执行操作(ES:DI)←(DS:SI)字传送(SI)←(SI)2修改源串指针(DI)←(DI)2修改目的串指针11从串取◢◢格式LODSB取字节LODSW取字◢◢LODSB执行操作(AL)←(DS:SI)从源串取入AL(SI)←(SI)1修改源串指针◢◢LODSW执行操作(AX)←(DS:SI)从源串取入AX(
5、SI)←(SI)2修改源串指针12存入串◢◢格式STOSB存入字节STOSW存入字◢◢STOSB执行操作(ES:DI)←(AL)将AL存入目的串(DI)←(DI)1修改目的串指针◢◢STOSW执行操作(ES:DI)←(AX)将AX存入目的串(DI)←(DI)2修改目的串指针13串比较◢◢格式CMPSB字节比较CMPSW字比较◢◢CMPSB执行操作(DS:SI)-(ES:DI)字节比较(SI)←(SI)1修改源串指针(DI)←(DI)1修改目的串指针◢◢CMPSW执行操作(DS:SI)-(ES:DI)字比较(SI)←(SI)2修改源串指针(DI)←(DI)2修
6、改目的串指针注意:1.源串-目的串2.两数相减,只影响标志,不影响操作数14搜索串◢◢格式SCASB取字节SCASW取字◢◢SCASB执行操作(AL)-(ES:DI)从目的串搜索字节(DI)←(DI)1修改目的串指针◢◢SCASW执行操作(AX)-(ES:DI)从目的串搜索字节(DI)←(DI)2修改目的串指针两数相减,只影响标志,不影响操作数。15②重复控制前缀重复前缀REP当相等重复前缀REPZ/REPE当不相等重复前缀REPNZ/REPNE16重复前缀REP执行过程:(1)当(CX)=0,结束REP,执行REP下一条指令。(2)当(CX)≠0,将CX的
7、内容减1,执行REP后的串指令,返回(1)。例LEADI,destinationLEASI,sourceMOVCX,20REPMOVSBMOVAX,0只在(CX)=0时退出循环17当相等重复前缀REPZ执行过程:(1)当(CX)=0,结束REPZ,执行REPZ下一条指令;(2)当(CX)≠0,将CX的内容减1,执行REPZ后的串指令;(3)当ZF=1,返回(1);(4)当ZF≠1,则结束REPZ,执行REPZ下一条指令。(CX)减1操作不影响标志ZF标志由串操作决定18当不相等重复前缀REPNZ执行过程:(1)当(CX)=0,结束REPNZ,执行REPNZ下
8、一条指令。(2)当(CX)≠0,将CX的内容减1,执