网站大量收购独家精品文档,联系QQ:2885784924

程序设计及基本方法.ppt

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

4.4.3 单重循环程序设计 二、最大循环次数未知的循环程序设计 例5 已知若干个非0整数存放在以A为首址的字存储区中,末尾以0作为结束标志。现要求将其中的负数删除,而把留下的正数仍连续地重新存储在以A为首址的字存储区中,并把结束标志改为-1,试编写其程序。 4.4.3 单重循环程序设计 二、最大循环次数未知的循环程序设计 练习 试编制一个程序,产生n个斐波纳契数数列。该数列的第1、2个数分别为0、1,从第3个数开始,每一个数等于前两个数之和。 提示 存储空间分配: NUM DW 20H FIBONA DW 50H DUP(0) 寄存器:AX、BX中存放数列中连续两个元素,CX为计数器,DI为存储数列元素的指针。 4.4.4 多重循环程序设计 多重循环即循环体内再套有循环。设计多重循环程序时,可以从外层循环到内层循环一层层进行。在设计外层循环时将内层循环看成一个处理粗框,然后再将粗框细化,分成置初值、工作、修改和控制四个部分。 例1 已知m×n矩阵A的元素aij按行序存放在以BUFA为首址的字节存储区中,试编写程序,示每行元素的和Si。其中aij 为8位二进制数。 4.4.4 多重循环程序设计 例2 在以BUF为首址的字节存储区中存放有n个无符号数x1, x2, … ,xn,现需将它们按从小到大的顺序排列在BUF存储区中,试编写程序。 4.4.4 多重循环程序设计 第四章 程序设计的基本方法 顺序、分支、循环程序和子程序的设计是汇编语言程序设计的基本内容。 在此基础上还要掌握汇编语言程序设计的基本方法和技巧 ,包括递归子程序设计、多模块程序设计方法等。 4.1 概述 程序设计通常从两个方面入手,一是要认真分析问题的要求,选择好的解决方法;二是要针对选定的算法,编写高质量的程序。 高质量的程序在满足设计要求、实现预定功能的基础上,还应尽可能实现以下几点: 1)结构清晰、简明、易读、易调试; 2)执行速度快; 3)占用存储空间少。 多读、多写、多上机调试各种程序! 一、汇编语言程序设计的一般步骤: 分析问题,合适的解题方法; 根据具体问题,确定输入输出数据的格式; 分配存储区并给变量命名(包括分配寄存器); 绘制程序流程图; 根据流程图编写程序; 静态检查、上机调试。 二、程序流程图常用符号 4.2 顺序程序设计 例1 从键盘输入0至9中任一自然数x, 求其立方值。 分析:可以用乘法运算,也可以用查表实现。 输入数据:1位自然数,用一字节单元存放;输出数据最大为729,用一个字单元存放。 存储单元分配:字节变量X存放输入的自然数;字变量XXX存放X的立方值;立方表首址为TAB,表中共10项,每项占一个字。X与其立方值的对应关系: (TAB+2*X)= X的立方值 绘制流程图。 编写程序。 4.3 分支程序设计 在分支程序中,不同的条件往往是通过标志寄存器中条件标志的不同状态反映的。而程序的分支通过转移指令来实现,因此分支程序设计中一个重要问题是根据各标志的不同状态选用合适的转移指令 。 4.3.1 转移指令 转移指令共计19条,分为两类无条件转移指、条件转移指令 (不影响任何标志位 ) 一、条件转移指令 (18条) 基本格式为: J×× 标号 (××代表一种转移条件 ) 条件转移指令根据检测标志位的状态来判断条件,若条件为真,则转至标号处执行程序,否则顺序往下执行程序 。 操作:(IP)←(IP)+D (8位偏移量,-128~127) 条件转移指令 分三类: (1)简单条件转移指令(10条,见P92 表4.1) 根据单个标志的状态决定是否转移 (2)无符号数条件转移指令(4条) 用于检测无符号数的比较 (3)有符号数条件转移指令(4条) 用于检测带符号数的比较 4.3.1 转移指令 一、条件转移指令 (18条) 1. 简单条件转移指令 在IBM PC中,标志CF、ZF、SF、OF、PF分别为0或1,可以表示10种状态,因而设置了10条简单条件转换指令。 JNP/JPO JP/JPE JNC JC JNO JO JNS JS JNE/JNZ JE/JZ 先执行影响标志位的指令(如算术运算、比较及位测试等指令),再执行适当的条件转移指令检测相应的标志位,根据条件实现转移。 例:下列程序中X、Y均为字变量,X中存放着有符号数x. MOV Y, -1 MOV AX,X CMP AX,0 JE EXIT1 ADD AX,1000H JO OVERFLOW JNS EXIT1 NEG AX EXIT

文档评论(0)

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

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

1亿VIP精品文档

相关文档