4_3汇编语言程序设计的基本方法.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4_3汇编语言程序设计的基本方法

第四章 程序设计的基本方法;4.4 汇编语言程序设计方法;设计一个程序要点: 认真分析问题的需求,选择好解决方法; 针对选定的算法,编写高质量的程序。 一个高质量的程序不仅要满足设计的要求,而且还应尽可能实现以下几点: (1)结构清晰、简明、易读、易调试。结构好 (2)执行速度快。 效率高 (3)占用存储空间少。 资源少;(1)分析问题,选择合适的解题方法。 (2)根据具体问题,确定输入输出数据的格式。 (3)分配存贮区并给变量命名(包括分配寄存器)。 (4)绘制程序的流程图,即将解题方法和步骤用程序流程图的形式表示出来。 (5)根据流程图编写程序。 (6)静态检查与动态调试。;几种框图符号;分支程序的特点:根据不同情况作出不同的处理,程序结构分成了若干支路。 分支的结构形式: (1) (2) 结构特点: 程序运行方向是向前的,条件确定,只能执行分支中的一个。 机器根据不同的情况作出判定,有选择的执行相应的分支。 这类程序称之为分支程序。;(1)分支由条件转移指令产生,不同条件通过FLAGS的标志位状态(0或1)反映出来; (2)转移指令不影响FLAGS的标志位,可连续使用转移指令,产生多个分支。 例:可以产生如下的多个分支。 CMP BYTE PTR ARRAY[BX], 0 JLE L1 ; 小于等于0,转移到L1 ┇分支1 ; 大于0 L1: JL NEXT ; 小于0,转移到NEXT ┇分支2 ; 等于0 NEXT: ┇分支3 ; 小于0;选择合适的转移指令; 为每个分支安排出口; 将分支中的公共部分尽量放到分支前或分支后的公共程序段中; 流程图、程序对应; 调试时,逐分支检查。; 特点: (1)改变程序的执行顺序,即改变指令指针CS:IP的值; (2)不改变标志位。 ;转移指令;1 无条件转移指令;③某些条件转移指令转移的范围超过它规定的范围时, 用JMP搭桥。 例:JL L1 ; 小于0时转L1 ┇ L1: …… 可改为如下指令串: JGE L0 ; 大于等于0时转L0 JMP L1 ; 小于0时无条件转L1 L0: …… ┇ L1: ……;根据所处的位置分类: 段内转移:要转移的目的地址与指令本身在同一段; 段间转移:要转移的目的地址与指令本身在不同段。 根据寻址的方式分类: 直接方式转移:转移到标号。 间接方式转移:从存储器或寄存器中得到转移目的地的段地址和偏移地址。;格式;例: JMP NEXT ——直接方式的无条件转移指令 JMP WORD PTR [BX] ——段内间接转移指令(16位段) JMP DWORD PTR [BX]——DS:[BX]指向的双字单元中存放着EA和段首址(16位段);2 条件转移指令 ;2 条件转移指令;2 简单条件转移;JZ/JE ZF=1时,转移 JNZ/JNE ZF=0时,转移 JS SF=1时,转移 JNS SF=0时,转移 JO OF=1时,转移 JNO OF=0时,转移 JC CF=1时,转移 JNC CF=0时,转移 JP/JPE PF=1时,转移 JNP/JPO PF=0时,转移; JZ L1 MOV AX , 0 …… L1:;特点: ① 根据单一标志位确定转移方向; ② 当超出转移范围时,可用JMP搭桥; ③ 不能作段间转移,不得作间接转移; ④ 不影响FLAGS的标志位,可连续使用转移指令,产生多个分支。;例:分析以下程序段,指出所完成的功能。 ;无符号数条件转移指令往往跟在比较指令之后; 根据与无符号数特征有关条件标志CF和ZF的组合决定转移方向。 JA / JNBE 短标号 当 CF=0 且 ZF=0时,转移 JAE / JNB 短标号

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档