第7单元 汇编语言程序设计.pptVIP

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

第7章 汇编语言程序设计 (Programming) 4. 子程序设计 顺序程序设计 2、分支程序设计 …… 3、循环程序设计 1.顺序程序设计 CPU在执行顺序程序片段时, 按照指令的先后顺序执行指令 ( Sequence programming ) 例7-2:写一个压缩 BCD码,转换为对应十进制数字ASCII码的程序。 8421 BCD码与对应十进制数字ASCII码的关系很简单,在非压缩BCD码上加30H,就得对应十进制数字的ASCII码。 ;Unpacked BCD + 30H = ASCII (as 31H 、32H) ( Sequence programming ) Example: Converting a packed BCD into corresponding decimal data ASCII. 源程序如下: ;程序名:EX7-2.ASM ;功 能:压缩BCD码转换成ASCII码 DSEG SEGMENT BCD DB? 86H ASCII DB? 2 DUP (0) ;stores ASCII DSEG ENDS ; ( Sequence programming ) CSEG SEGMENT ASSUME CS:CSEG, DS:DSEG START: MOV AX, DSEG ;(1)set data-segment MOV DS, AX ;(2)把存放在低4位的BCD码转换为对应十进制数字的ASCII码 MOV AL, BCD AND AL, 0FH ADD AL, 30H MOV ASCII, AL ( Sequence programming ) ;(3)把存放在高4位的BCD码转换为对应十进制数字的ASCII码 MOV AL, BCD MOV CL, 4 SHR AL, CL ADD AL, 30H MOV ASCII+1, AL MOV AH, 4CH ;(4)返回DOS INT 21H CSEG ENDS END START ;can reverse step (2) and (3) 7.3 分支程序设计 程序分支的两种基本结构如图7-2所示,这两种结构分别对应高级语言中的if语句和if-else语句。 在汇编语言中,一般利用条件测试指令和条件转移指令等实现简单的分支。 (Branch programming) 2, 利用转移指令实现程序分支 例7-3:设有三个单字节无符号数存放BUFFER开始的缓冲区中,写一个将它们按大到小重新排列的程序。 设数据段只有三个要排序的数据,定义如下: ;程序名:EX7-3.ASM ;功能:实现三个无符号数的由大到小的排序 DATAS SEGMENT BUFFER DB? 87,234,123 DATAS ENDS (Branch programming) 有多种方法实现三个数的排序,我们用交换法,先得到三个数中最大的数,然后再得到剩下两个数中最大数。为了方便,先把要排序的三个数取到三个存储器中。源程序代码段如下:. CODES SEGMENT ASSUME CS:CODE,DS:DATAS START: MOV AX, DATAS MOV DS, AX MOV SI, OFFSET BUFFER MOV AL, [SI] ;把三个数取到AL,BL,CL MOV BL, [SI+1] MOV CL, [SI+2] CMP AL, BL ;排序 JAE NEXT1 XCHG AL, BL NEXT1: CMP

文档评论(0)

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

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

1亿VIP精品文档

相关文档