微机原理及应用第4章(4)课件.ppt

上传人(卖家):三亚风情 文档编号:3497209 上传时间:2022-09-07 格式:PPT 页数:83 大小:5.12MB
下载 相关 举报
微机原理及应用第4章(4)课件.ppt_第1页
第1页 / 共83页
微机原理及应用第4章(4)课件.ppt_第2页
第2页 / 共83页
微机原理及应用第4章(4)课件.ppt_第3页
第3页 / 共83页
微机原理及应用第4章(4)课件.ppt_第4页
第4页 / 共83页
微机原理及应用第4章(4)课件.ppt_第5页
第5页 / 共83页
点击查看更多>>
资源描述

1、4.4.3 逻辑运算指令 逻辑运算指令AND、TEST、OR、XOR、NOT 算术移位指令SAL、SAR 逻辑移位指令SHL、SHR 不带进位的循环移位指令ROL、ROR 带进位的循环移位指令RCL、RCR 小结 逻辑运算类指令 逻辑运算类指令 逻辑与指令:AND 目操作数,源操作数 目操作数的内容源操作数的内容目操作数 逻辑或指令:OR 目操作数,源操作数 目操作数的内容源操作数的内容目操作数 逻辑异或指令:XOR 目操作数,源操作数 目操作数的内容 源操作数的内容目操作数逻辑运算指令的应用1、AND指令通常用于将操作数的某些位清0。如:AND AL,0FCH ;AL的低2位清0,其余保持不

2、变逻辑非指令NOT 格式:NOT 通用寄存器或存储器 功能:将操作数内容按位取反,结果送回原处。不影响任何标志!举例:MOV BX,8A51H NOT BX;(BX)=75AEH 移位类指令移位指令 算术左移指令SALCF0 MSB LSBCF0 MSB LSBCF MSB LSBCF MSB LSB0 0CFOPRD0CFOPRDCFOPRD用移位指令实现乘、除法SAL AX,1;实现(AX)2 MOV BX,AXSAL AX,1;实现(AX)4ADD AX,BX;实现(AX)6MOV BL,ALMOV CL,3SHR AL,CL;实现(AL)8SUB BL,AL;实现(AL)7/8 循环移

3、位指令循环移位指令 不带进位的 循环左移指令ROLCF MSB LSBCF MSBCF MSB LSBCF MSBLSBLSB循环移位指令 格式:ROL/ROR/RCL/RCR 操作数,1;移1位ROL/ROR/RCL/RCR 操作数,CL;移位(CL)次 移位之后改变操作数内容,但CL的值不变。允许的操作数类型:通用寄存器、存储器 对标志位的影响:移出位CF;仅当移1位时影响OF。移出的位不会丢失!CFOPRDCFOPRDCFOPRDCFOPRD 移位指令功能示意CMSARCMSHR0CMSAL0CMSHL0CRCRCRCLCRORCROLC 进 位 标 志;M 最 高 位(符 号 位)4.

4、4.4 串操作指令 串传送指令MOVS、MOVSB、MOVSW 串比较指令CMPS、CMPSB、CPMSW 串检索指令SCAS、SCASB、SCASW 串装入指令LODS、LODSB、LODSW 串存储指令STOS、STOSB、STOSW 串操作指令重复前缀REP、REPZ/REPE、REPNZ/REPNE串操作的基本概念什么是串?地址连续的字节或字存储单元,通常用于存放同一类数据。数据源:源串;数据结果:目标串。串操作指令 对串元素实现传送、比较、检索、装入、存储等操作,并自动修改地址指针。串操作重复前缀 加在串操作指令之前,根据不同条件判断是否重复执行串操作。可以实现对整个串的同一种操作。

5、串操作指令 串操作指令 串操作指令串操作指令的特点 使用DS:SI作为默认的源串指针,段可超越;使用ES:DI作为固定的目标串指针,不允许段超越。可自动修改串指针:方向标志DF决定指针的修改方向:(DF)=0,指针加;(DF)=1,指针减。串元素的类型决定修改量:对于字节串,指针加/减1;对字串:指针加/减2。有重复前缀时,固定使用CX对重复次数进行计数,但前缀本身并不改变CX值和任何标志位!串传送指令 串传送指令串传送指令 格式:MOVS 目标串首址标号,源串首址标号 MOVSB MOVSW 功能:将源串中DS:SI所指的串元素复制到目标串中ES:DI所指的单元处;然后自动修改SI、DI。M

6、OVSB、MOVSW分别是字节串和字串的传送指令,隐含了操作数。串比较指令具体指令格式:CMPS mem,mem 若CMPS指令用REPE/REPZ作前缀,则表示:当串未结束((CX)0)且串相等((ZF)=1)时继续比较。若CMPS用REPNE/REPNZ作前缀,则表示:当串未结束((CX)0)且串不相等((ZF)=0)时继续比较。CMPSB/CMPSW分别指明是字节串或字串比较指令,不带操作数,其余约定与CMPS相同。串比较指令串比较指令 格式:CMPS 目标串首址标号,源串首址标号 CMPSB CMPSW 功能:用串源中DS:SI所指的串元素值减去目标串中ES:DI所指的串元素值,结果反

7、映在标志位上;然后自动修改SI、DI。CMPSB、CMPSW分别是字节串和字串的比较指令,隐含了操作数。串检索指令 格式:SCAS 目标串首址标号 SCASB SCASW 功能:用AL(字节串)或AX(字串)的值减去目标串中ES:DI所指的串元素值,结果反映在标志位上;然后自动修改DI。SCASB、SCASW分别是字节串和字串的检索指令,隐含了操作数。实际上是源串固定为累加器的串比较指令串装入指令 格式:LODS 源串首址标号 LODSB LODSW 功能:将源串中DS:SI所指的串元素复制到AL(字节串)或AX(字串)中;然后自动修改SI。LODSB、LODSW分别是字节串和字串的装入指令,

8、隐含了操作数。一般不使用重复前缀!实际上是目标串固定为累加器的串传送指令串存储指令 格式:STOS 目标串首址标号 STOSB STOSW 功能:将AL(字节串)或AX(字串)的值复制到目标串中ES:DI所指的单元处;然后自动修改DI。STOSB、STOSW分别是字节串和字串的存储指令,隐含了操作数。STOSB/STOSW(Store byte string or store word string)应用举例实际上是源串固定为累加器的串传送指令串装入/串存储指令举例 将大写字母组成的源串元素全部转换成小写字母,并存入目标串中:MOV CX,40;串元素的个数LEA SI,STR1;SI指向源串

9、(数据段中)LEA DI,STR2;DI指向目标串(附加段中)CLD;(DF)=0,串指针自动增量AGN:LODSB;源串元素装入累加器ADD AL,20H;大写字母小写字母STOSB;存入目标串中LOOP AGN;循环控制重复前缀REP格式:REP 串操作指令功能:在串操作指令执行之后,先修改CX(CX)1(CX),再判断串是否处理完(CX是否为0):不是0,继续执行该串操作指令;否则顺序执行下一条指令。串传送举例Memory源串目标串Memory源串目标串程序实现串传送指令及重复前缀应用例MOV CX,10H;源串、目标串中字的个数LEA SI,STR1;STR1:源串(数据段中)的首址标

10、号ADD SI,1EH;SI指向源串的末地址LEA DI,STR2;STR2:目标串(附加段中)首址标号ADD DI,1EH;DI指向目标串的末地址STD;(DF)=1,串指针自动减量REP MOVSW;完成16个字的传送部分地址重合的字串传送:重复前缀REPZ/REPE格式:REPZ/REPE 串操作指令功能:在串操作指令执行之后修改CX,判断是否满足串未完((CX)0)、且结果相等((ZF)1):如果满足,则继续执行该串操作指令;否则顺序执行下一条指令。串比较指令及重复前缀举例比较两个字符串是否相等:MOV CX,20;源串、目标串的字符个数 LEA SI,STR1;STR1:源串的首址标

11、号 LEA DI,STR2;STR2:目标串的首址标号 CLD;(DF)=0,串指针自动增量 REPE CMPSB;比较对应元素是否相同。是:继续比,否:执行下条指令 JNZ DIFF;因对应元素不同而退出比较SAME:;因串结束((CX)=0)而退出比较重复前缀REPNZ/REPNE格式:REPNZ/REPNE 串操作指令功能:在串操作指令执行之后修改CX,判断是否满足串未完((CX)0)、且结果不等((ZF)0):如果满足,则继续执行该串操作指令;否则顺序执行下一条指令。串检索指令及重复前缀举例在一个字符串中检索有无关键字符“$”:MOV CX,30;目标串的字符个数 LEA DI,STR

12、2;STR2:目标串的首址标号 MOV AL,$;关键字符在AL中 CLD;(DF)=0,串指针自动增量 REPNE SCASB;比较AL与串元素,不同:继续比,相同:执行下条指令 JZ NOCH;串结束退出,找到关键字符FND:;未找到关键字符 串操作指令4.4.5 控制转移指令控制转移指令 无条件转移指令JMP 条件转移指令:JC/JB/JNAE、JNC/JNB/JAE、JS、JNS、JZ/JE、JNZ/JNE、JO、JNO、JP/JPE、JNP/JPO、JA/JNBE、JAE/JNB、JB/JNAE、JBE/JNA、JG/JNLE、JGE/JNL、JL/JNGE、JLE/JNG 循环控制

13、指令 LOOP、LOOPZ/LOOPE、LOOPNZ/LOOPNE、JCXZ 过程调用指令CALL 过程返回指令RET控制程序流向:改变正常执行顺序,转向新目标 无条件转移指令JMP 无条件转移指令JMP1.格式:JMP 操作数(目标地址)2.操作数(目标地址)的给出方式:共四种,。可实现全部存储空间内的转移。3.功能:按照不同的操作数给出方式,找出目标地址,用它直接代替原指令指针。与CALL的不同之处在于:没有对应的返回指令,所以不用保存断点。执行过程与堆栈无关!条件转移指令的特点 格式:指令助记符 目标地址(短标号)功能:根据当前各标志位状态进行判断,如果满足指令所指定的条件,则转移至目标

14、地址处;否则顺序执行。寻址方式:相对寻址 转移范围:短转移,即相对位移量是一个8位的带符号数(128127)。本身并不影响任何标志位!根据单个标志进行判断转移的指令JSJZ/JEJP/JPEJCJOJNSJNZ/JNEJNP/JPOJNCJNO标志位1则转移:标志位0则转移:判断无符号数大小的指令JA/JNBE;目操作数源操作数则转移JAE/JNB/JC;目操作数 源操作数则转移JB/JNAE/JNC;目操作数 源操作数则转移JBE/JNA;目操作数 源操作数则转移通常用在CMP指令之后;由指令自动选择不同标志位,进行不同条件的判断。判断带符号数大小的指令JG/JNLE;目操作数源操作数则转移

15、JGE/JNL;目操作数 源操作数则转移JL/JNGE;目操作数 源操作数则转移JLE/JNG;目操作数 源操作数则转移通常用在CMP指令之后;由指令自动选择不同的标志位和判断条件。与无符号数不同!循环控制指令1.格式:LOOP 短标号 LOOPZ/LOOPE 短标号 LOOPNZ/LOOPNE 短标号 JCXZ 短标号2.寻址方式:相对寻址,只能实现短转移。3.功能:根据CX的值和ZF标志判断是否转移4.指令本身不影响CX和ZF!循环控制指令(续)LOOP指令:(CX)1(CX)(CX)0?是:转移否:顺序执行LOOPZ指令:(CX)1(CX)(CX)0且(ZF)1?是:转移否:顺序执行LO

16、OPNZ指令:(CX)1(CX)(CX)0且(ZF)0?是:转移否:顺序执行JCXZ指令:(CX)0?是:转移否:顺序执行循环控制转移指令的使用 MOV CX,10 (其它初始条件)NXT:(循环执行的指令)LOOP NXT (退出循环后的处理)过程调用指令CALL(Call a procedure)过程调用指令CALL过程调用指令CALL1.格式:CALL 操作数(即目标地址)2.操作数(目标地址)的给出方式 段内直接给出,如:CALL NEAR PTR SUBP。操作数常以过程名的方式出现,采用相对寻址方式。段内间接给出,如:CALL AX。通用寄存器 的值即16位操作数,作为目标地址。段

17、间直接给出,如:CALL FAR PTR SUBP。用过程名所代表的32位全地址指针作为目标地址。段间间接给出,如:CALL DWORD PTR DI。以间接寻址方式找到一个32位操作数,作为目标地址。过程调用指令CALL 过程返回指令RET(Return from procedure)过程返回指令RET过程返回指令RET 格式:RET RET 立即数 必须与CALL指令成对使用!根据对应的CALL指令转移类型,自动确定段内/段间返回。功能:从栈顶弹出1个字(段内返回)或2个字(段间返回),作为返回地址(即断点)给IP或CS:IP。SP相应加2或加4。指令后跟立即数,用以在恢复断点后,在现行S

18、P值上再加此数,以释放相应数目的堆栈空间。必须是偶数,为什么?段内返回 ;(IP)(SP)+1,(SP)(SP)(SP)+2段内带立即数返回 RET EXP;(IP)(SP)+1,(SP)(SP)(SP)+2 (SP)(SP)+DISP16位移量段间返回 RET;(IP)(SP)+1,(SP)(SP)(SP)+2(CS)(SP)+1,(SP);(SP)(SP)+2控制转移指令小结控制转移指令可实现远转移、近转移、短转移。CALL、RET、JMP指令可实现全部存储空间内的转移,而条件转移指令、循环控制指令只能实现短转移。当目标地址在段内直接给出时,控制转移指令采用相对寻址方式。所有控制转移指令均

19、不影响标志位。对无符号数和带符号数的大小的比较,需根据不同标志位进行判断,故应采用不同的条件转移指令。806处理机控制指令处理机控制指令1、标志处理指令、标志处理指令 CLC,STC,CMC,CLD,STD,CLI,STI 2、处理机控制指令处理机控制指令HLT,NOP,WAIT,ESC,LOCK811、标志处理指令标志处理指令设置和清除标志的指令,只影响指令指定的标志设置和清除标志的指令,只影响指令指定的标志822、处理机控制指令处理机控制指令 暂停指令暂停指令HLT 格式格式 HLT 执行执行 使使CPU处于暂停状态处于暂停状态用于等待外部中断,中断处理结束后,用于等待外部中断,中断处理结

20、束后,继续执行继续执行HLT后的下一条指令后的下一条指令例例 、STI ;允许外部中断允许外部中断 HLT ;等待中断等待中断 MOV AX,0、(HLT指令在第指令在第6章中断技术用到章中断技术用到)83 空操作指令空操作指令NOP 格式格式 NOP 指令不执行任何操作指令不执行任何操作例:例:(也可用(也可用NOP指令进行短延时指令进行短延时(教材中的一些例子用到)教材中的一些例子用到)其机器码占一个字节单元,其机器码占一个字节单元,在调试程序时,修改程序用。在调试程序时,修改程序用。MOV BX,100 00B8 0107 3ACMP AL,BXB8FE11MOV BX,100 00B8 0190 90CMP AL,BX903A07NOPNOPNOPMOV CX,20HB9 20 00

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(微机原理及应用第4章(4)课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|