欢迎来到天天文库
浏览记录
ID:59193865
大小:375.00 KB
页数:51页
时间:2020-09-26
《程序设计的基本方法ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章程序设计的基本方法顺序、分支、循环程序和子程序的设计是汇编语言程序设计的基本内容。在此基础上还要掌握汇编语言程序设计的基本方法和技巧,包括递归子程序设计、多模块程序设计方法等。4.1概述程序设计通常从两个方面入手,一是要认真分析问题的要求,选择好的解决方法;二是要针对选定的算法,编写高质量的程序。高质量的程序在满足设计要求、实现预定功能的基础上,还应尽可能实现以下几点:1)结构清晰、简明、易读、易调试;2)执行速度快;3)占用存储空间少。多读、多写、多上机调试各种程序!一、汇编语言程序设计的一般步骤:分析问题,合适的解题方法;根据具体问题,确定输入输出数据的格式;分
2、配存储区并给变量命名(包括分配寄存器);绘制程序流程图;根据流程图编写程序;静态检查、上机调试。二、程序流程图常用符号4.2顺序程序设计例1从键盘输入0至9中任一自然数x,求其立方值。分析:可以用乘法运算,也可以用查表实现。输入数据:1位自然数,用一字节单元存放;输出数据最大为729,用一个字单元存放。存储单元分配:字节变量X存放输入的自然数;字变量XXX存放X的立方值;立方表首址为TAB,表中共10项,每项占一个字。X与其立方值的对应关系:(TAB+2*X)=X的立方值绘制流程图。编写程序。4.3分支程序设计在分支程序中,不同的条件往往是通过标志寄存器中条件标志的不同状
3、态反映的。而程序的分支通过转移指令来实现,因此分支程序设计中一个重要问题是根据各标志的不同状态选用合适的转移指令。4.3.1转移指令转移指令共计19条,分为两类无条件转移指、条件转移指令(不影响任何标志位)一、条件转移指令(18条)基本格式为:J××标号(××代表一种转移条件)条件转移指令根据检测标志位的状态来判断条件,若条件为真,则转至标号处执行程序,否则顺序往下执行程序。操作:(IP)←(IP)+D(8位偏移量,-128~127)条件转移指令分三类:(1)简单条件转移指令(10条,见P92表4.1)根据单个标志的状态决定是否转移(2)无符号数条件转移指令(4条)用于检
4、测无符号数的比较(3)有符号数条件转移指令(4条)用于检测带符号数的比较4.3.1转移指令一、条件转移指令(18条)1.简单条件转移指令在IBMPC中,标志CF、ZF、SF、OF、PF分别为0或1,可以表示10种状态,因而设置了10条简单条件转换指令。JE/JZJNE/JNZJSJNSJOJNOJCJNCJP/JPEJNP/JPO先执行影响标志位的指令(如算术运算、比较及位测试等指令),再执行适当的条件转移指令检测相应的标志位,根据条件实现转移。例:下列程序中X、Y均为字变量,X中存放着有符号数x.MOVY,-1MOVAX,XCMPAX,0JEEXIT1ADDAX,100
5、0HJOOVERFLOWJNSEXIT1NEGAXEXIT1MOVY,AXMOVAH,4CHINT21HOVERFLOW:…MOVAH,4CHINT21H一、条件转移指令(18条)一、条件转移指令(18条)2.无符号数条件转移指令该类指令往往跟在比较指令之后,视比较对象为无符号数,设置了高于、高于或等于、低于、低于或等于4条指令。1)JA/JNBE:当CF=0且ZF=0时转移。2)JAE/JNB:当CF=0或ZF=1时转移。3)JB/JNAE:当CF=1且ZF=0时转移。4)JBE/JNA:当CF=1或ZF=1时转移。一、条件转移指令(18条)3.有符号数条件转移指令该类
6、指令往往跟在比较指令之后,视比较对象为有符号数,设置了大于、大于或等于、小于、小于或等于4条指令。1)JG/JNLE:当SF=OF且ZF=0时转移。2)JGE/JNL:当SF=OF或ZF=1时转移。3)JL/JNGE:当SF不等于OF且ZF=0时转移。4)JLE/JNG:当SF不等于OF或ZF=1时转移。一、条件转移指令(18条)例1:MOVAL,-40HCMPAL,50HJGL1;比较JAL1例2:分析下述代码的功能MOVSI,0L:MOVWORDPRT[SI],0ADDSI,2CMPSI,OF000HJBEL无条件转移指令不构成分支程序,但在分支程序中经常使用它将各分
7、支的出口汇集到一起,特别是当条件转移指令的转移范围超过-128~127个字节时,往往要借助无条件转移指令实现。例:JLL1...L1…二、无条件转移指令JGEL0JMPL1L0:…..L1:…无条件转移指令分为段内直接转移、段内间接转移、段间直接转移、段间间接转移。例:直接转移:JMPNEXT间接转移:JMPWORDPTR[BX]JMPDWORDPTR[BX]二、无条件转移指令分析问题,合适的解题方法;根据具体问题,确定输入输出数据的格式;分配存储区并给变量命名(包括分配寄存器);绘制程序流程图;根据流程图编写程序;静态检查、
此文档下载收益归作者所有