文档详情

微机系统与接口教学资料 第四章 分支程序设计 例题.ppt

发布:2017-03-09约6.02千字共24页下载文档
文本预览下载声明
LOGO 第四章 汇编程序设计 分支程序设计 * 汇编语言程序设计的基本步骤 分析问题,明确求解任务 1 确定算法,画好流程图 2 编写程序 3 程序的检验 4 编写说明文件 5 * 分支程序 计算机在完成某种运算或者某个过程的控制时,经常需要根据不同的情况(条件)进行不同的处理,这就要求在程序的执行过程中能够进行某种条件的判定,并根据判定结果决定程序的走向,这就是分支程序。 * 分支程序设计注意点 1 正确选择判定条件和相应的条件转移指令 2 在编程时必须保证每条分支都能有完整的结果 3 在检查和调试时候必须逐条分支进行 * 例题讲解 例1。写出将一位十六进制数转换成对应的ASCII码的程序(只考虑大写字母,不考虑小写字母) * 一位十六进制数转换成ASCII码的流程图 * 程序 STACK SEGMENT STACK ;定义堆栈段 DW 256 DUP(?) ;预留256个字空间 TOP LABEL WORD ;变量TOP为堆栈顶的起始位置 STACK ENDS DATA SEGMENT ;定义数据段 N DB ? ;定义单字节变量N DATA ENDS CODE SEGMENT ;定义代码段,给段地址分配寄存器 ASSUME CS: CODE, DS: DATA,SS: STACK * 程序 START: MOV AX, DATA MOV DS, AX ;数据段的段地址装入DS MOV AX,STACK MOV SS, AX ;堆栈段的段基址压入SS MOV SP,OFFSET TOP ;初始化堆栈指针,初始 ;栈顶的偏移量送SP * 程序: MOV AL, N CMP AL, 0 JB G1 CMP AL, 09 JBE D1 ;若(AL)≤09,则通过条件转移指令JBE执行 ;D1程序段完成数字0-9到ASCII码的转换 CMP AL, 15 JA G1 ;若(AL)15,则通过条件转移指令JA ;执行G1程序段以上指令确定 09(AL) ≤15 ADD AL, 07 ;完成字母0-9到ASCII码的转换 D1: ADD AL, 30H DONE: MOV AH,4CH INT 21H ;返回DOS操作系统 G1: MOV AL, 0FFH ;给出标记0FFH ,不进行转换 JMP SHORT DONE ;段内直接转移指令,指出要转向地址 ;DONE,指令寻址方式是相对寻址方式 CODE ENDS END START * 程序注意事项 注意: 1.程序中没有进行第一判断框的判定,这是因为若AL0,则其最高位必然为1,当将它看成无符号数时,它一定大于15,这种情况在第3判断框中已经被包含,所以就没有进行第一判断框的判定。 2.汇编中数值常数的第一位必须是数字,否则汇编时将被看成是标识符,所以程序中的FFH要写成0FFH. * 例题讲解 例2。若有一组选择项,当N选择不同值时应作不同处理。设该组选择项及其对应的处理为: N=1时,显示信息(DISPL); N=2时,传送信息(TRAN); N=3
显示全部
相似文档