- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、顺序结构 三、循环程序设计 例:把二进制数码串中每一字节的两位十六进制数转换为ASCII码。高位在高地址,低位在低地址。 程序二为一循环结构程序,其中: 指令1~ 3为初始化部分: 指令4为循环工作部分: 指令5,6为循环修改部分: 指令7,8为循环控制部分: 指令9为结束处理部分: 指令10,11为程序结束部分。 指令4~8三部分称为循环体,标号LOP处称为循环头部。 例4-70. 统计寄存器AX中 ” 1 ” 的个数。 MOV CL,0 L1 : AND AX,AX JZ STOP SAL AX,1 JNC L2 INC CL L2: JMP L1 STOP :HLT 这是一个“先判断后执行” 的结构。 2、按逻辑尺的方法控制循环 含两个循环体的控制技巧: 逻辑尺控制循环。 适用于有两个循环体,并已知执行规律的情况。 逻辑尺:自左至右对应执行次数的二进制位串。二进制位 的1和0对应循环体1和循环体2。 执行原理:设置CX次数计数器 取逻辑尺 逻辑左移 判断CF位值:位值为1执行循环体1,为0执 行循环体2 P177 例4-71 3、多重循环 循环中包含另一个循环。每一循环都有各自的循环计数器和终点判断。多重循环程序的设计方法与单循环程序相同,但应注意: * 各重循环的初始条件的控制; * 内循环可以嵌套在外循环中,也可以几个内循环并列在外循环中,但各层循环之间不能交叉,内循环可以跳到外循环中,不可以从外循环直接跳进内层循环; * 不能让循环回到初始条件,以免出现死循环。 例4-72:气泡法排序。由小到大有序排列以BUF为首地址的10个数据无序列,使其成为有序列 1、排序的关键是比较和交换。 2、每次循环从数组的底部开始比较,每次循环完成一个小数的气泡升顶。 3、排序循环的结束条件是:在循环中未出现过交换。 设置交换标志 0 取数据串长度 底字地址变址值? BX;循环次数? CX 取数Ej Ej Ej+1 交换;置交换标志-1 修改变址值 比较结束 交换标志=0 CONTI 返回 AGAIN NEXT Y N N 1、关于数据段初始化 DATA SEGMENT BUFFER DW 22,-12,…,40 COUNT EQU $-BUF; COUNT 20 DATA ENDS 3、关于取数和比较 采用变址寻址,其基地址为 BUFFER的地址。 MOV AX,BUF [BX]; BX +OFFSET BUF ?AX 即Ej ?AX CMP AX,BUF [BX+2]; Ej-Ej+1 ?PSW 2、关于比较循环次数 对于10个字数据,比较9次 MOV BX,0 MOV CX,BUF [BX];设计数器 cx,内循环次数 DEC CX MOV DX,CX;设计数器 dx,外循环次数ADD BX,2 4、关于交换 XCHG AX,BUF [BX+2] MOV BUF [BX],AX 因为内存之间不能交换,所以必须通过AX作为过渡。 四 子程序结构 1. 子程序定义及结构 * 主程序与子程序 能调用子程序的程序称为主程序。子程序是一段相对独立的、能实现一定功能的、能被其它程序调用的程序段。 子程序必须用过程定义语句定义 一般采用FAR属性,同一代码段可用NEAR 调用时属性应于过程属性对应。 CALL FAR PTR PROG … ENDP * 调用与返回 主程序用CALL指令调用子程序, 子程序用RET指令返回主程序。 使用CALL须注意 ①保护断点 ②保护寄存器内容 ③主子程序之间参数传递 3种方法 a.寄存器传递:适用参数少,传递速度快 b.存储器传递:适用参数多,须建参数表 c.堆栈传递:参数较多时可用,适于子程 序嵌套和子程序递归调用 * 子程序文件: 通常需子程序说明 ①功能描述:包括子程序名称、功能以及性能指标 如执行时间 等; ②所用寄存器和存储单元; ③子程序的入口、出口参数; ④子程序中又调用的其它子程序; ⑤调用实例 可无 。 ;名称:BCD2BIN ;功能:一个字节的BCD码转换成二进制数 ;所用寄存器:CX ;入口参数:AL中存两位BCD数 ;出口参数:AL存二进制数 ;调用其它子程序:无 例4-74:子程序说明 BCD2BIN PROC NEAR(FAR) PUSH CX MOV CH,AL AND CH,0FH ;存低8位 MOV CL,4 SHR AL,CL ;/16 MOV CL,10 MUL CL ;*10 ADD AL,CH ;+低位 POP CX RET BCD2BIN ENDP P183例4-76 堆栈传递参数 段
您可能关注的文档
最近下载
- 电力电子技术阮新波习题答案.pdf VIP
- 2022年小学低段数学新课标解读心得体会(通用12篇).pdf VIP
- 2025贵州黔南州瓮安县招聘社区工作者50人考试参考试题附答案解析.docx VIP
- 统编版(2024新版)七年级上册道德与法治期末复习课件.pdf
- (完整版)动词单数第三人称练习题.pdf VIP
- 学术规范与论文写作(雨课堂)期末考试答案.docx VIP
- 《GBT27543-2011-手推升降平台搬运车》.pdf
- 办公室消防安全知识培训教育.pptx VIP
- 剪映短视频策划、拍摄、剪辑实战教程:短视频策划PPT教学课件.pptx VIP
- 河湖生态护岸工程技术导则.pdf VIP
原创力文档


文档评论(0)