下载此文档

第4章 3顺序分支.ppt


文档分类:IT计算机 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
第四章汇编语言程序设计
汇编语言程序设计概述
汇编语言基本语法
汇编语言程序设计
BIOS及DOS功能调用
汇编语言程序设计实例
1
分析问题——问题性质、目的、要求、已知条件等等。建立相应数学模型。
确定算法——把实际问题转化为计算机求解的步骤和方法。
绘制流程图——形象化描述程序算法。
确定数据结构——数据的组织方式,分配存储区
编写程序——将流程图用指令集合来实现。应该“简单明了、层次清晰、运算正确、短小精悍”。
上机调试——验证程序功能,反复修改达到完善。
汇编语言程序设计
程序设计基础
基本步骤
2
计算机通常不会从程序的第一条指令直接顺序执行到程序的最后一条指令结束,会根据处理事务的不同而具有不同的执行流程。程序的流程是由程序的结构决定的。基本的程序结构有:
程序基本结构
汇编语言程序设计
顺序结构
分支结构
循环结构
子程序结构
3
无分支、无循环、无转移程序
流程图表现为只有起始框、终止框、处理框,无判断框。
【例】编制一个程序,求下列公式中的Z值,并将结果存放到RESULT单元中:Z=(A+B)×10-500。设A、B的值分别存放在BUFA、BUFB单元中,运算结果不超过16位。
算法:在二进制整数中左移1位相当于乘2,右移1位相当于除2,所以可将(A+B)左移3位完成乘以8的操作,然后再与(A+B)左移1位(乘以2)的结果相加得到(A+B)×10的计算。
顺序结构程序——简单程序结构
分析:这是一个简单的顺序结构程序,可以直接使用汇编指令完成。
数据结构:存储单元RESULT用来存放结果,BUFA、BUFB存放A、B的值,可用寄存器BX存放中间运算结果。
4
程序流程图
DATA SEGMENT
BUFA DW ?
BUFB DW ?
RESULT DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV DX,BUFA ;DX=A
ADD DX,BUFB ;DX=A+B
MOV BX,DX ;BX=DX=A+B
MOV CL,3
SAL DX,CL ;DX=(A+B)×8
SAL BX,1 ;BS=(A+B)×2
ADD DX,BX ; DX=(A+B)*8+(A+B)*2=(A+B)*10
SUB DX,500 ;DX=(A+B) * 8-500
MOV RESULT,DX
MOV AH,4CH ;DOS系统功能调用
INT 21H ;返回操作系统
CODE ENDS
END START
编写程序
5
【例】用查表法求整数X的平方值(0≤x≤15的整数),将结果存入RESULT单元中。
分析:用查表法求平方值,首先需要建一个用于存放各数平方值的表,以TABLE表示表头,表中依次存放0~15的平方值,将待求数X放入AL寄存器,表的起始地址放入BX寄存器。使用XLAT查表指令可以将地址BX+AL上的一个字节,即AL数值对应的平方值读入AL中。
程序流程图
6
编写程序
DATA SEGMENT
TABLE DB 0,1,4,9,16,25,36,49,64,81,100,
121,144,169,196,225
X DB 9
RESULT DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,X
MOV BX,OFFSET TABLE ;LEA BX,TABLE
XLAT
MOV RESULT,AL
MOV AH, 4CH
INT 21H
CODE ENDS
END START
7
在实际程序设计中,很少有程序会从头到尾都是顺序执行的,绝大部分程序在执行过程中会根据一些条件的判断决定不同的处理方式或程序流向,这就是分支的概念。
程序的流向是由CS和IP中的值决定的,当程序的转移仅在同一段内进行时,只需修改偏移地址IP的值;如果程序的转移是在不同段之间进行,则段基址CS和偏移地址IP均需要修改。
一是分支前的条件判断;
二是根据判断结果进行转移。
分支结构程序
两要素
8
Y=
1 当X>0 (-128≤ X ≤127)
0 当X=0
-1 当X<0
【例】设Y为符号函数,编写其对应的分支程序。
通常一条比较指令只能产生两路分支,因此要产生N路分支就需要N-1条条件转移指令。
使用比较指令实现程序分支
9
MOV AL,AA
CMP AL,0 ;用比较指令进行判断
JGE BIGR ;如果大于等于0则转移
MOV AL,-1 ;否

第4章 3顺序分支 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人s0012230
  • 文件大小354 KB
  • 时间2018-07-02
最近更新