微型计算机技术69124.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微型计算机技术69124

第四章 汇编语言程序设计基础 4.1循环程序设计 在程序设计中,常常需要一段程序反复执行若干次,这通常用循环的方法来实现,借助几种循环控制指令和前缀可以方便地实现循环。 4.1.1基本结构的循环程序 (1)初始化部分:循环前的准备工作,包括建立指针、设置变量及循环初值等。 (2)循环体:这是循环程序的工作部分,完成循环的基本操作。 (3)修改部分:修改参数,包括操作数地址、循环计数值或其他控制变量。 (4)控制部分:根据对循环条件的判断结果,控制循环的执行或结束。 例:编制一个程序,将BX寄存器中的二进制数用十六进制数的形式显示出来。 (1) BX寄存器中的二进制数可用 4位十六进制数显示,故循环次数为 4,放入CH中。 (2) BX循环左移4次,最高位数字 移到最低位置; (3)0~9的数字与ASCII码差为30H; A~F(41H ~46H)与ASCII码差为 37H;故0~9的数字+30H,而A~F 应+37H。 PROGNAM SEGMENT MOV AH,4CH MAIN PROC FAR INT 21H ASSUME CS:PROGNAM MAIN ENDP START: MOV CH ,4 PROGNAM ENDS ROTATE: MOV CL ,4 ROL BX ,CL MOV AL , BL AND AL ,0FH ADD AL ,30H CMP AL ,3AH JL PIRNTIT ADD AL ,07H PIRNTIT:MOV DL ,AL MOV AH ,4CH INT 21H DEC CH JNZ ROTATE 例:统计某字单元中二进制数位值为1的个数,统计结果存放在变量ONE中。 DATA SEGMENT NUM DW 1669H FINI: MOV AH,4CH ONE DB ? INT 21H DATA ENDS CODE ENDS CODE SEGMENT END START ASSNUM CS:CODE DS:DATA START:MOV AX ,DATA MOV DS,AX MOV AX,NUM COMP:CMP AX,0 JZ FINI SHL AX,1 JNC COMP INC ONE JMP COMP 4.1.2 多重循环程序 一个计算过程可能要依赖几个互相独立变化的参数,这就需要在一个循环过程中再包含一个循环过程,形成外层循环嵌套内层循环的结构形式,这种程序就称为多重循环程序。 多重循环程序设计的基本方法和单重循环程序设计是一致的,应分别考虑各层循环的控制条件及其程序实现,相互之间不能混淆。另外要注意在每次通过外层循环再次进入内层循环时,初始条件必须重新设置。 例:有一个首地址为A的N字数组,请编制程序使该数组中的数按照从小到大 的次序排列(整序)。 采用起泡排序算法实现整序:从第一个数开始依次对相邻两个数Ki和Ki十l进行比较,若Ki ≤ Ki十l , Ki的位置不动, Ki十l继续和Ki十2比较;若Ki > Ki十1,则两者交换位置。 Ki十1(交换前

文档评论(0)

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

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

1亿VIP精品文档

相关文档