汇编语言程序设计教程2版6章.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言程序设计教程2版6章

第6章 汇编语言程序设计 程序设计思想 顺序程序设计 分支程序设计 循环程序设计 子程序或过程的设计 本章内容简介 在讲述了8086/8088指令系统及汇编语言程序格式的基础上,本章讲述8086/8088汇编语言程序设计的方法。 主要包括:程序设计思想、顺序程序设计、分支程序设计和循环程序设计。针对每一种程序结构,都给出了大量的编程实例。在分析程序结构的过程中,可以进一步体会8086/8088指令以及伪指令的使用。 在本章的最后一节讲述了子程序(过程)的设计及调用方法,并通过实例给出子程序(过程)的定义和调用方法及主程序与过程之间传递参数的方法,具体有利用寄存器传递参数、利用内存缓冲区传递参数和利用堆栈区传递参数。 6.1 程序设计思想 程序要有良好的结构,简明,易读,易调试。 执行速度快。 占用存储空间少。 编制汇编语言程序的步骤 程序设计方法 结构化程序设计:任何程序都可以由顺序、分支、循环三种基本结构组成。其特点是每个结构具有一个入口和一个出口。 模块化程序设计:把大程序分解成许多较小的功能相对独立的子程序(称为模块)来编写,分别调试各模块。然后再组合连接成一个完整的程序。 6.2 顺序程序设计 顺序程序的特点是程序的顺序执行,即按照程序中汇编语言指令的自然次序,由程序开头逐条执行直至程序结束为止。 在大多数程序中是不可缺少的基本组成部分。 顺序程序设计,又叫直接程序设计。它是相对于分支程序和循环程序设计而言的。 因此,可以说顺序程序是既不包含分支,又不包含循环的程序,顺序程序是从第一条指令开始,按其自然顺序,一条指令一条指令地执行,在运行期间,CPU既不跳过某些指令,也不重复执行某些指令。一直执行到最后一条指令为止,此程序的任务也就完成了。 例6-2 把存单元A和B中的两个单字节压缩BCD码相加,结果存到C单元中。 data segment a db 32h b db 15h c db 2 dup(?) data ends code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov al,a add al,b 例6-3 首先将FIRST与SECOND字变量相加,结果存至THIRD1存储字中,然后将FIRST与SECOND两个字变量相乘,结果存至THIRD2开始的两个存储字中。 掌握要点: (1)数据段的变量类型要定义正确;(2)加法和乘法指令;(3)相乘结果的存储方法。 本程序存在什么问题吗? 例6-4 将存储单元BUF中2个压缩BCD数拆成2个非压缩BCD码,低位BCD数存入BUF1中,高位BCD数存于BUF2中,并将对应的ASCII码存入BUF3及BUF4中。 掌握要点: (1)数据段的定义方法;(2)压缩BCD数拆成2个非压缩BCD码的方法;(3)非压缩BCD码的转换为ASCII码的方法。 例6-5 编程求以下运算:Y=X1-(X2+X3)。 掌握要点: (1)数据段的定义方法;(2) 熟悉加减法指令;(3) 寄存器的用法。 还有其它方法吗? Mov al,x2 Add al,x3 Mov cl,x1 Sub cl,al Mov y,cl 6.3 分支程序设计 在解决实际问题时,经常会遇到需要针对不同情况作出不同处理的情况,解决这种问题需要采用分支程序结构。分支程序在执行时,可以对给定的条件进行判断,以决定程序执行的流向。通常由条件转移指令实现这一功能。熟悉条件转移指令是成功地编写分支程序的基础。 分支程序可以有两种结构形式。这两种形式分别相当于高级语言中的IF-THEN-ELSE语句和CASE语句,即两分支结构和多分支结构,它们适用于要根据不同条件做不同处理的情况。两种结构的运行方向都是向前的,在某一种确定条件下,只能执行多个分支中的一个分支。 分支程序结构 分支程序在执行时,可以对给定的条件进行判断以决定程序执行的流向,通常由条件转移指令实现这一功能。 分支程序的地址识别 在8086/8088汇编语言中,指令执行的顺序由代码段寄存器CS和指令指针IP的内容确定。 CS和IP结合起来给出了下条指令在存储器中的位置。CPU根据IP和CS的值,从存储器中取出一条指令,送到CPU中去执行,然后根据程序转移以后的地址逐条读出指令重新装入指令队列。 编写分支程序一般利用比较指令或其它对标志寄存器FLAG状态有影响的指令,根据运算结果置标志寄存器FLAG有关标志位的状态,再利用条件转移指令检查标志位的状态,鉴别某种条件是否成立或者某种情况是否出现,以决定分支的走向。 复习转移指令(第三章P88,幻灯片

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档