第五章 基本结构程序设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 教学目的 1. 了解汇编语言程序设计的一般过程 2. 掌握基本程序结构――顺序结构、分支结构、循环结构 3. 熟悉常见程序设计问题: 数据范围判断(0~9、A~Z、a~z) 字母大小写转换 字符串传送、比较等操作 求最大最小值、数据求和、统计字符个数 教学重难点 重点 基本程序结构及其汇编语言程序设计 各种常用转移指令 难点 分支程序设计 循环程序设计 例1 例5-1 若内存的数据段中,有缓冲区BUFFER,存取数据的规则是先存储一个16位带符号的被除数,再存储一个16位带符号的除数,接着存储商,最后存储余数。 DATA SEGMENT BUFFER DW 812DH ;被除数 DW 013CH ;除数 DW ? ;存商 DW ? ;存余数 DATA ENDS STACK SEGMENT PARA STACK STACK DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX LEA BX,BUFFER MOV AX,[BX] CWD ;扩展为32位 IDIV 2[BX] ;带符号数除法 MOV 4[BX],AX ;存商 MOV 6[BX],DX ;存余数 RET START ENDP CODE ENDS END START 例2 5.3 分支程序设计 实际问题中需要对不同情况作出不同的处理,程序被分为若干个支路 称这类程序为分支程序,实现这类程序的设计过程称为分支程序设计 分支程序中,不同的条件是通过标志寄存器中条件标志的不同状态来反映的 设计中的一个重要问题:根据个标志的不同状态选用合适的转移指令 包括条件转移指令和无条件转移指令 特点:改变程序的执行顺序(即改变指令指着IP的值),但不改变状态标志位的状态 一、条件转移指令 语句格式: [标号:] 操作符 短标号 功能: 如果条件满足,则转移到短标号处,即(IP)+位移量-(IP),否则顺序执行下一条指令 补充 转移指令中,位移量为当前(IP)到转移目的地址处的字节距离 若当前(IP)到某标号(即转移的目的地址)的位移量在-128~+127之间,则该标号为短标号 当位移量为正时,表示往前转;为负时,表示往回转 条件转移指令中的目的地址均为短标号 1、简单条件转移指令 检测某一标志位的条件转移指令 根据标志CF/ZF/SF/OF/PF的取值情况,可表示10种状态,对应10条简单的条件转移指令 1、简单条件转移指令 例1 2、无符号数条件转移指令 跟在比较指令之后,根据运算结果所设置的条件标志状态确定转移方向 视比较对象为无符号数 根据不同的状态,设置了高于、高于或等于、低于、低于或等于四条指令 2、无符号数条件转移指令 表5-2 无符号数条件转移指令 例2 3、带符号数条件转移指令 视比较对象为带符号数 根据状态标志ZF/SF和OF的不同组合状态,设置了大于、大于或等于、小于、小于或等于四条指令 3、带符号数条件转移指令 例3 补充 在设计程序时,要注意选择正确的转移指令 在选择条件指令时,要明确处理的数据属于哪一类 若是带符号数的运算或比较,则选用带符号数条件转移指令 若是无符号数的运算或比较,则选用无符号数条件转移指令 例:分析程序段 4、测试CX的值为0则转移指令 格式:JCXZ LABEL 测试条件:(CX)=0 说明:CX寄存器经常用来设置计数值,故这条指令可根据CX寄存器内容的修改情况来产生两个不同程序分支 二、无条件转移指令 使CPU无条件地转移到指令中指明的目的地

文档评论(0)

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

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

1亿VIP精品文档

相关文档