【vb精品源码栏目提醒】:网学会员为需要vb精品源码的朋友们搜集整理了第三章2_循环_子程序_DOS中断调用 - 其它资料相关资料,希望对各位网友有所帮助!
3.2 汇编语言程序设计循环程序设计重复执行某一段程序的程序结构称为循环程序。
用来处理带重复性的问题。
循环程序由五部分组成: 初始化部分——为程序操作、地址指针、循环计数、结束 条件等设置初始值。
循环工作部分——循环程序主体,完成基本操作。
循环 循环修改部分——修改循环工作部分的变量地址等,体 为重复操作作准备。
循环控制部分——修改计数器或判断循环结束条件, 决定是否终止循环。
循环结束部分——循环终止后,对循环结果的处理部分。
3.2 汇编语言程序设计循环程序设计循环程序的几种结构形式 起 始 起 始 起 始 初始化部分 初始化部分 初始化部分 循环工作部分 完 循环修改部分 循环控制 未完 完 循环修改部分 循环控制 循环工作部分 未完 未完 终 止 循环控制 循环工作部分 循环修改部分 完 终 止 终 止 基本结构形式 工作部分放在循环控制部分之后,这样 可以允许循环次数为零的循环程序或不 需要循环时不进入循环工作部分。
3.2 汇编语言程序设计循环程序设计循环程序分类按循环控制条件分类 计数循环——重复次数已知,用计数值控制循环的开始与终止。
条件控制循环——重复次数未知或不确定,需找出循环控制的条件。
按循环体内结构分类单重循环——循环体内只是顺序程序或分支程序,不再有循环程序。
多重循环——循环体内再套有循环程序。
循环程序设计要点1怎样把求解的问题变为循环结构的程序类型——怎样实现重复。
循环工作部分的设计尤为重要,因为这是多次重复的部分,注意程序的精练,以及循环体头部的确定。
2怎样使循环准确地执行完毕,注意循环控制部分的设计。
特别是对条件控制的循环,注意设置循环结束标志。
3.2 汇编语言程序设计循环程序设计计数循环的控制方法 :当循环次数已知时常用该方法。
减1循环 循环指令LOOP 短标号 MOV CX,N L: …… MOV CX,N L: …… DEC CX JNZ L LOOP L 加1循环 MOV CX,-N L: …… INC CX JNZ L 3.2 汇编语言程序设计循环程序设计循环程序举例:例1,统计AX中1 的个数 MOV AX,3578H 起 始 MOV CL,0L: OR AX,AX 清状态标志位使之反 AX3578HCL0 映AX Y JZ EXIT AX0结束 AX0 SAL AX,1 最高位进CF N JNC L 左移AX 1位 INC CL N 终 止 JMP L CF1EXIT:INT 20H Y CLCL1 3.2 汇编语言程序设计循环程序设计循环程序举例:例2、BUF中有N个有符号数,分离其中的正负数,分别送入BUF1和BUF2中。
这是一个循环次数已知的程序设计,用计数循环完成。
DATA SEGMENT BUF DB 12H 34H -56H -98H 096H 68H 56H 80H N-BUF;是地址计数器 BUF1 DB N DUP0 INC BX BUF2 DB N DUP JMP CCDATA ENDSCODE SEGMENT BB: MOV DI,AL ASSUME CS:CODE,DS:DATA INC DISTART:MOV AXDATA CC: DEC CX MOV DSAX JNZ AA LEA SI,BUF或MOV SIOFFSET BUF LEA DI,BUF1 MOV AH4CH LEA BX,BUF2 INT 21H MOV CX,N CODE ENDSAA: MOV AL,SI END START INC SI CMP AL,0 (1)若DW定义BUF怎样修改? JGE BB MOV BX,AL (2)能改为条件控制循环吗? 3.2 汇编语言程序设计子程序设计 一般是有公用性、重复性或有相对独立性的程序应设计成子程序子程序结构: 过程名 过程类型 NAME PROC NEAR FAR PUSH AX PUSH BX 保护现场 …… 程序部分 …… …… POP BX POP AX 恢复现场 RET 必须RET结束 NAME ENDP 3.2 汇编语言程序设计子程序设计调用与返回:调用 CALL 过程名 (子程序地址)功能: 1下条指令的地址压入堆栈。
对于段内调用只将IP的值压入堆栈 对于段间调用先将CS的值压入堆栈,再将IP的值压入堆栈。
2子程序的地址送入CS:IP从而转入子程序运行。
返回指令 RET 子程序的最后一条指令,用于返回CALL指令的下条指令继续执行。
无论对那一种调用方式其返回指令都相同。
功能: 1 对于段内调用只将当前SP弹进IP,从而使程序正常返回。
2对于段间调用则先弹IP,再弹CS。
3.2 汇编语言程序设计子程序设计子程序的设计与应用应注意的问题1现场的