汇编语言第5章课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言第5章课件

汇编语言程序设计;第五章 分支结构程序设计; 在许多问题的求解中,往往需要根据某种条件的判断做出操作选择。这种程序结构称为“分支结构”或“选择结构”。汇编语言中实现分支结构的主要机制是CPU的标志寄存器、指令标号和转移指令。当某个操作影响了标志寄存器后,可以通过条件转移指令和一个指令标号,使CPU跳过一些指令的执行,实现程序的分支。;5.2 转移指令 ;5.2.1 无条件转移指令 JMP (Jump) 指令汇编格式:JMP targ 操作:①段内转移:IP ←目标的偏移地址 ②段间转移:IP ← 目标的偏移地址 CS ←目标所处代码段的基址 受影响的状态标志位:无 (1)段内转移(NEAR) 段内直接短转移(短程转移) 段内直接近转移(近程转移) 格式:JMP SHORT 〈标号〉 格式:JMP NEAR PTR 〈标号〉 操作:IP←IP+D8 操作:IP←IP+D16 JMP LABEL_N ;LABEL_N 在当前代码段 JMP SHORT LABEL_N ;在 – 128 ~ 127 之间;2)段内间接转移 段内寄存器间接转移 JMP AX ;AX 的内容是目标地址的偏移量 段内存储器间接转移 JMP [SI] ;IP ←(SI,SI+1) JMP BETA_W ;IP ←(BETA_W , BETA_W + 1) JMP [DI][BX] ;IP ←(DI + BX,DI + BX + 1) (2)段间转移(FAR) 段间直接转移 JMP LABEL_FAR ;LABEL_FAR 是在其它代码段的机器指令 ;标号,并以用 PUBLIC 说明,本段中已用 ;EXTRN 说明,未经说明的不能引用。 PUBLIC :公用标号。本段定义的标号,在本段和其它段均可使用 EXTRN:外部标号。其它段定义的标号,在本段中引用;2)段间存储器间接转移 JMP DWORD PTR [SI] ;IP (SI,SI + 1),CS ←(SI + 2 ,SI + 3) JMP VAR_DW ;VAR_DW 是属性为双字节类型的标号 ;IP ←(VAR_DW , VAR_DW + 1 ) ;CS ←(VAR_DW + 2 , VAR_DW + 3 ) JMP DWORD PTR [BX][DI] ;第一个字送 IP ;第二个字送CS。 5.2.2 条件转移指令 条件转移指令是根据对不同的状态标志的测试为条件,当条件成立时,则发生转移,条件不成立时,则顺序执行程序。 条件转移指令只发生在当前代码段,即从下条指令算起的 – 128 ~ +127 字节的地址范围以内。 条件转移指令不影响标志位。;(1)单标志判断;(2)两数之间关系判别;开始;程序清单如下: 1:;* * * * * EXAM 5.2 * * * * * 2:SSEG SEGMENT STACK 3:STK DB 50 DUP(0) 4:SSEG ENDS 5:DSEG SEGMENT 6:ARGX DB - 5 7:RLT DB ? 8:DSEG ENDS 9:CSEG SEGMENT 10: ASSUME CS:CSEG,DS:DSEG 11: ASSUME SS:SSEG 12:BEGIN: MOV AX,DSEG ;设置数据段地址 13: MOV DS,AX 14: MOV AX,SSEG ;设置堆栈段地址 15: MOV SS,AX 16: MOV SP,SIZE STK ;设置堆栈指针 17: MOV AL,ARGX ;取数据 X 18: AND AL,AL ;置标志;19: JS ABSL ;X 0(SF = 1)转 32 行 20: JZ MOVE ;X = 0(ZF = 1)转 33 行 21: CMP AL,8 ;X ≤ 8 ? 22: JLE ONE ;是,转 到 30 行 23: CMP AL,15 ;X ≥ 15 ? 24: JGE MOVE ;是,转 33 行存结果 25: SAL AL,1 ;左移,即 X × 2 26: SAL

文档评论(0)

baa89089 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档