周小课汇编语言程序设计.ppt_第1页
周小课汇编语言程序设计.ppt_第2页
周小课汇编语言程序设计.ppt_第3页
周小课汇编语言程序设计.ppt_第4页
周小课汇编语言程序设计.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

复习,数据传送类指令算术运算类指令逻辑操作类指令,主要内容,字符串操作指令控制转移指令处理器控制指令电地暖,包括:MOVS、LODS、STOS、CMPS、SCAS(传送)(取)(存)(比较)(搜索)共同点:源串DS:SI目的串ES:DI完成一次字符处理后,自动修改指针,用DF规定串处理方向:DF=0:SI、DI增1(字节串)、2(字串)DF=1:SI、DI减1(字节串)、2(字串),字符串操作类,指令格式:MOVS目的串,源串目的串、源串仅用于说明传送的是字节、字,因此可使用代替符而省去目的串、源串代替符:MOVSB/MOVSW(不带操作数)B:字节W:字指令功能:将源串中一个字节或字传送到目的串中,并修改指针,指向串中的下一个元素:ES:DIDS:SI(DI)(DI)1、2(SI)(SI)1、2,MOVS串传送指令,重复前缀REP(Repeat)的功能:如果(CX)=0,则完成REP操作,跳出循环;CX的值减1;执行一次串操作指令;转到第一步重复REP操作。例:将源串复制到目的串(串长为100):,MOVSI,offsetSOURCEMOVDI,offsetDESTMOVCX,100CLDREPMOVSB,MOVSI,offsetSOURCEMOVDI,offsetDESTMOVCX,100CLDCOPY:MOVAL,SIMOVDI,ALINCSIINCDIDECCXJNZCOPY,等价于,MOVS和REP,指令格式:LODS源串;代替符:LODSB/LODSWSTOS目的串;代替符:STOSB/STOSW指令功能:LODS:将源串中一个字节、字传送到AL/AX,并修改指针:(AL)DS:SI(SI)(SI)1、2STDS:将累加器AL/AX传送到目的串中,并修改指针:ES:DI(AL)(DI)(DI)1、2,串元素的取存指令LODS和STOS,指令格式:CMPS目的串,源串代替符:CMPSB/CMPSW指令功能:将源串和目的串中的字节、字进行CMP操作,并修改指针:DS:SI-ES:DI,影响标志位,不保存结果(DI)(DI)1、2(SI)(SI)1、2对标志寄存器的影响:影响OF、SF、ZF、AF、PF、CF,CMPS串比较指令,前缀REPE/REPZ的功能:当串未结尾(CX0)且串相等(ZF=1)时继续比较。如果(CX)=0,则完成REPE/REPZ操作,跳出循环;CX的值减1;执行一次串操作指令;如果零标志位Z=1,则转回第一步;如果Z=0,则完成REPE/REPZ操作,跳出循环。例:比较两个串是否相同:MOVSI,offsetSOURCEMOVDI,offsetDESTMOVCX,100REPECMPSW;重复比较JNZDIFF;如果Z=0,说明两个串中有某个字不相同;否则,两个串相同,CMPS和REPE/REPZ指令,指令格式:SCAS目的串代替符:SCASB/SCASW指令功能:比较AL/AX与目的串中元素(字节或字)的大小,并修改指针:CMPAL/AX,ES:DI,影响标志位(DI)(DI)1、2对标志寄存器的影响:影响OF、SF、ZF、AF、PF、CF,SCAS串搜索指令,REPNE/REPNZ的功能:当串未结尾(CX0)且串元素与累加器内容不相同(ZF=0)时继续搜索,直到CX=0或ZF=1才执行下一条指令。如果(CX)=0,则完成REPNE/REPNZ操作,跳出循环;CX的值减1;执行一次串操作指令;如果零标志位Z=0,则转回第一步;如果Z=1,则完成REPNE/REPNZ操作,跳出循环。例:查找串中是否含有元素0FFH:MOVDI,offsetDESTMOVCX,100;串长为100MOVAL,0FFH;搜索的元素REPNESCASB;不相等时继续搜索下一个字节JNEERR;如果找不到(AL),则进行出错处理;已找到(AL),SCAS和REPE/REPZ指令,SCAS指令举例,例:搜索某一数据块BLOCK中是否有关键字KEY?若有,把搜索次数记下来(若次数为0,表示未搜索到关键字),且记录下存放关键字的地址。(设BLOCK在附加段):MOVDI,offsetBLOCK;设定数据块的地址指针MOVCX,COUNT;数据块长度设在CX中MOVAL,KEY;将关键字送入ALCLD;设置方向标志DF=0REPNESCASB;ZF=0继续搜索,ZF=1搜索到了JZFOUNDMOVDI,0;串结束且不相等,即找不到KEY,0DIJMPDONEFOUND:DECDI;DI-1MOVPOINTR,DI;保存关键字地址到POINTR单元MOVBX,offsetBLOCKSUBDI,BXINCDI;找到KEY,DI中为搜索次数DONE:HLT;停机,转移指令:无条件转移指令、条件转移指令循环指令:LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ调用返回指令:CALL、RET中断指令:INT、INTO、IRET,控制转移类,JMP指令格式:直接转移方式:JMP目标标号指令功能:控制程序无条件地转移到目标单元指令用法:段内转移方式段间转移方式,转移指令,指令格式:Jcc目标标号cc:转移条件目标标号:8086:只能是短程转移,转移位移量:-128+127指令功能:根据当前标志寄存器或计数寄存器器CX的状态,决定是否转移对标志寄存器的影响:条件转移指令对标志寄存器不产生影响,条件转移指令,无符号数比较大小:时转移:JA/JNBE转移条件:C=0且Z=0时转移:JAE/JNB/JNC转移条件:C=0时转移:JB/JNAE/JC转移条件:C=1时转移:JBE/JNA转移条件:C=1或Z=1A:Above,大;B:Below,小;E:Equal,等;N:Not,非对无符号数:CF:“0”说明“”;“1”说明“时转移:JG/JNLE时转移:JGE/JNL时转移:JL/JNGE时转移:JLE/JNG指令中:G:Greater,大;L:Less,小;E:Equal,等;N:Not,非,条件转移指令,判断是否相等=时转移:JE/JZ(转移条件:ZF=1)时转移:JNE/JNZ(转移条件:ZF=0)判断是否溢出溢出时转移:JO(转移条件:OF=1)不溢出时转移:JNO(转移条件:OF=0)判断奇偶状态偶状态时转移:JP/JPE(转移条件:PF=1)奇状态时转移:JNP/JPO(转移条件:PF=0),条件转移指令,判断符号位符号位为1时转移:JS(转移条件:S=1)符号位为0时转移:JNS(转移条件:S=0)判断CX/ECX是否为0CX=0时转移:JCXZ转移条件:CX=0,条件转移指令,LOOP指令格式:LOOP标号指令功能:控制循环,以CX为递减计数器,CX的值减1CX=0吗?若CX=0:结束循环,执行下一条指令若CX0:跳转到标号处LOOPAGAINDECCXJNZAGAIN,等价,循环指令,循环指令举例,例:用循环实现软件延时MOVCX,0F000H;置循环初值NEXT:NOP;空操作F000H次,产生延时LOOPNEXTLOOPE/LOOPZ指令:使CX自减1,若CX0且ZF=1,则循环转移至目标标号。LOOPNE/LOOPNZ指令:使CX自减1,若CX0且ZF=0,则循环转移至目标标号。,指令功能:CALL:过程调用指令格式:CALL子程序名/目标地址RET:过程返回指令格式:RET若是段内调用,只需将断点处IP的值放在堆栈中保存;若是段间调用,则需将断点处CS和IP的值都放入堆栈中保存。,调用、返回指令,指令格式:INTn;n为8位中断类型号指令功能:引起中断类型号为n的中断:PUSHF;清除标志寄存器中的中断允许标志IF和追踪标志TF,以屏蔽中断,禁止追踪方式;把当前的CS、IP先后压入栈中(SP减4),以保留断点;以段间间接调用的方式调用中断程序,即n4IP,n4+2CSINTO为溢出中断指令,是INT的特例。,中断指令INT(Interrupt),指令格式:IRET指令功能:用在中断程序的最后,用于返回主程序:IP出栈,SP+2;CS出栈,SP再+2;标志寄存器FLAGS出栈,SP再+2,中断返回指令,标志操作指令:CLC、STC、CMC、CLD、STD、CLI、STI其他处理器控制指令:NOP、HLT,处理器控制类,指令功能:修改进位标志CF、方向标志DF或中断允许标志IF:修改进位标志CFCLC:CF=0STC:CF=1CMC:CF取反修改方向标志DFCLD:DF=0STD:DF=1修改中断允许标志IFCLI:IF=0STI:IF=1,标志位操作指令,(1)NOP(NoOperation

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论