欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    第5章控制转移和程序结构.ppt

    • 资源ID:613876       资源大小:621.50KB        全文页数:72页
    • 资源格式: PPT        下载积分:9金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第5章控制转移和程序结构.ppt

    微型计算机原理及应用微型计算机原理及应用l5.1 5.1 目标地址寻址方式目标地址寻址方式l5.2 5.2 分支程序结构分支程序结构l5.3 5.3 循环程序结构循环程序结构l5.4 5.4 子程序结构子程序结构25.1 目标地址的寻址方式l 程序代码在代码段;程序代码在代码段;CSCS:指明代码段在主存中的开始位置、即段基地址;:指明代码段在主存中的开始位置、即段基地址;EIPEIP:给出将要执行指令的偏移地址;:给出将要执行指令的偏移地址;l 程序顺序执行,微处理器自动增量程序顺序执行,微处理器自动增量EIPEIP;程序控制转;程序控制转移,移,EIPEIP随之改变;随之改变;l 程序转移到另外的代码段,程序转移到另外的代码段,EIPEIP和和CSCS都将改变;都将改变;l 控制转移类指令:改变控制转移类指令:改变EIPEIP(有时(有时CSCS),即改变程序),即改变程序执行顺序(实现程序控制转移)的指令;执行顺序(实现程序控制转移)的指令;l 目标地址寻址方式目标地址寻址方式:指明目的地、即目标地址的方法;:指明目的地、即目标地址的方法;目标地址目标地址目的地址目的地址转移地址转移地址35.1.1 转移范围l1.1.段内转移段内转移 在当前代码段范围内的程序转移;在当前代码段范围内的程序转移;不需更改不需更改CSCS,只改只改EIPEIP(偏移地址);(偏移地址);近转移近转移(NearNear):):1616位段是位段是1616位近转移位近转移NEAR16NEAR16,3232位段是位段是3232位近转移位近转移NEAR32NEAR32;短转移短转移(ShortShort):转移范围在):转移范围在127127-128-128字节;字节;l2.2.段间转移段间转移 需要更改需要更改CSCS(段地址)和(段地址)和EIPEIP(偏移地址);(偏移地址);远转移远转移(FarFar):):1616位段是位段是3232位远转移位远转移FAR16FAR16,3232位段是位段是4848位远转移位远转移FAR32FAR32;45.1.2 目标地址寻址方式l 1.1.相对寻址方式相对寻址方式 提供目标地址相对于当前指令指针提供目标地址相对于当前指令指针EIPEIP的位移量;的位移量;目标地址(转移后的目标地址(转移后的EIPEIP)当前当前EIPEIP位移量;位移量;相对寻址都是段内转移,最常用、最灵活;相对寻址都是段内转移,最常用、最灵活;l 2.2.直接寻址方式直接寻址方式 直接提供目标地址;直接提供目标地址;目标地址(转移后的目标地址(转移后的CSCS和和EIPEIP)指令操作数;)指令操作数;l 3.3.间接寻址方式间接寻址方式 由寄存器或存储单元提供跳转地址;由寄存器或存储单元提供跳转地址;目标地址来自寄存器或存储单元、间接获得;目标地址来自寄存器或存储单元、间接获得;寄存器间接寻址:用寄存器保存目标地址;寄存器间接寻址:用寄存器保存目标地址;存储器间接寻址:用存储单元保存目标地址;存储器间接寻址:用存储单元保存目标地址;55.1.3 无条件转移指令JMPl JMP labelJMP label;程序转向程序转向labellabel标号指定的地址标号指定的地址;有段内相对寻址,段间直接寻址有段内相对寻址,段间直接寻址;JMP reg16/reg32JMP reg16/reg32;程序转向寄存器指定的地址程序转向寄存器指定的地址;为寄存器间接寻址为寄存器间接寻址;JMP mem16/mem32JMP mem16/mem32;程序转向存储单元指定的地址程序转向存储单元指定的地址;为存储器间接寻址为存储器间接寻址;6JMP指令的4种类型1.1.段内转移、相对寻址段内转移、相对寻址 标号指明目标地址,指令代码包含位移量;标号指明目标地址,指令代码包含位移量;2.2.段内转移、间接寻址段内转移、间接寻址 通用寄存器或主存单元包含目标指令的偏移地址;通用寄存器或主存单元包含目标指令的偏移地址;3.3.段间转移、直接寻址段间转移、直接寻址 标号包含目标指令的段地址和偏移地址;标号包含目标指令的段地址和偏移地址;4.4.段间转移、间接寻址段间转移、间接寻址 1616位段用双字存储单元包含目标地址;位段用双字存储单元包含目标地址;3232位段用位段用3 3字存储单元包含目标地址;字存储单元包含目标地址;MASM会根据存储模式等信息自动识别会根据存储模式等信息自动识别7例题5-1无条件转移程序-1;数据段数据段00000000 0000 0000nvarnvardw?dw?;代码段代码段00100010 EB 01 EB 01jmpjmp labl1 labl1;8 8位位移量位位移量00120012 90 90nopnop00130013 B8 FF02 B8 FF02labl1:labl1:mov ax,type labl1mov ax,type labl100160016 E9 0001 E9 0001jmpjmp near ptr labl2 near ptr labl2;1616位位移量位位移量00190019 90 90nopnop001A001A B8 0020 R B8 0020 Rlabl2:labl2:mov ax,offset labl3 mov ax,offset labl3;001D001D FF E0 FF E0jmpjmp ax ax001F001F 90 90nopnop00200020 B8 002B R B8 002B Rlabl3:labl3:mov ax,offset labl4mov ax,offset labl400230023 A3 0000 R A3 0000 Rmov nvar,axmov nvar,ax00260026 FF 26 0000 R FF 26 0000 Rjmpjmp nvar nvar002A002A 90 90nopnop 相对短转移相对短转移 相对近转移相对近转移 寄存器间接近转移寄存器间接近转移 存储器间接近转移存储器间接近转移85.2 分支程序结构5.2.1 条件转移指令Jcc J Jcccc label labell 根据指定的条件确定程序是否发生转移;根据指定的条件确定程序是否发生转移;条件满足,发生转移;否则,顺序执行下一条指令;条件满足,发生转移;否则,顺序执行下一条指令;l LABELLABEL表示目标地址,采用段内相对寻址方式;表示目标地址,采用段内相对寻址方式;1616位位CPUCPU:字节位移量(:字节位移量(-128-128+127+127短转移);短转移);3232位位CPU:CPU:多字节位移量(达到多字节位移量(达到3232位的全偏移量);位的全偏移量);l 条件转移指令不影响标志,但要利用标志;条件转移指令不影响标志,但要利用标志;l cccc表示利用标志判断的条件,表示利用标志判断的条件,1616种、两类;种、两类;单个标志状态作为条件;单个标志状态作为条件;两数大小关系作为条件;两数大小关系作为条件;9转移条件cc:单个标志状态JZ/JEJZ/JEZF=1ZF=1Jump if Zero/EqualJump if Zero/EqualJNZ/JNEJNZ/JNEZF=0ZF=0Jump if Not Zero/Not EqualJump if Not Zero/Not EqualJSJSSF=1SF=1Jump if SignJump if SignJNSJNSSF=0SF=0Jump if Not SignJump if Not SignJP/JPEJP/JPEPF=1PF=1Jump if Parity/Parity EvenJump if Parity/Parity EvenJNP/JPOJNP/JPOPF=0PF=0Jump if Not Parity/Parity OddJump if Not Parity/Parity OddJOJOOF=1OF=1Jump if OverflowJump if OverflowJNOJNOOF=0OF=0Jump if Not OverflowJump if Not OverflowJCJCCF=1CF=1Jump if CarryJump if CarryJNCJNCCF=0CF=0Jump if Not CarryJump if Not Carry10转移条件cc:两数大小关系JB/JNAEJB/JNAECF=1CF=1Jump if Below/Not Above or EqualJump if Below/Not Above or EqualJNB/JAEJNB/JAECF=0CF=0Jump if Not Below/Above or EqualJump if Not Below/Above or EqualJBE/JNAJBE/JNACF=1CF=1或或ZF=1ZF=1Jump if Below/Not AboveJump if Below/Not AboveJNBE/JAJNBE/JACF=0CF=0且且ZF=0ZF=0Jump if Not Below or Equal/AboveJump if Not Below or Equal/AboveJL/JNGEJL/JNGESFOFSFOFJump if Less/Not Greater or EqualJump if Less/Not Greater or EqualJNL/JGEJNL/JGESF=OFSF=OFJump if Not Less/Greater or EqualJump if Not Less/Greater or EqualJLE/JNGJLE/JNGZFOFZFOF或或ZF=1ZF=1 Jump if Less or Equal/Not GreaterJump if Less or Equal/Not GreaterJNLE/JGJNLE/JGSF=OFSF=OF且且ZF=0ZF=0Jump if Not Less or Equal/GreaterJump if Not Less or Equal/Greater11例题5-2实现指令CBW功能的程序-1l80868086指令指令CBWCBW(等于(等于IA-32IA-32指令指令MOVSX AX,ALMOVSX AX,AL)如果如果ALAL最高位为最高位为0 0,则设置,则设置AHAH0 0;如果如果ALAL最高位为最高位为1 1,则设置,则设置AHAHFFHFFH;l如何判断如何判断ALAL最高位是最高位是“0”0”,还是,还是“1”1”;逻辑与逻辑与“80H”80H”结果为结果为0 0,ALAL最高位最高位0 0;否则是;否则是1 1 运算结果是否为运算结果是否为0 0,零位标志,零位标志ZFZF反映;反映;JZJZ或或JNZJNZ指令判断并转移;指令判断并转移;12例题5-2实现指令CBW功能的程序-2 mov al,bvar mov al,bvar;取出要判断的数据取出要判断的数据 test al,80h test al,80h;测试最高位测试最高位 jz jz next1 next1 ;最高位为最高位为0 0(ZFZF1 1)转移到标号)转移到标号NEXT1NEXT1;mov ah,0ffh mov ah,0ffh;最高位为最高位为1 1,顺序执行:设置,顺序执行:设置AHAHFFHFFH;jmp jmp done done ;无条件跳过另一个分支无条件跳过另一个分支next1:mov ah,0next1:mov ah,0;最高位为最高位为0 0转移到此执行:设置转移到此执行:设置AHAH0 0 done:done:不等于零转移不等于零转移等于零转移等于零转移13例题5-2实现指令CBW功能的程序-3mov al,bvarmov al,bvar;取出要判断的数据取出要判断的数据cmp al,0cmp al,0;与与0 0比

    注意事项

    本文(第5章控制转移和程序结构.ppt)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开