微机原理与接口技术课次16.ppt

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

5.6 汇编语言程序设计的基本方法 通常,编制一个汇编语言源程序应按如下步骤进行: ⑴ 明确任务,确定算法。 ⑵ 绘制流程图(包括确定内存单元和分配寄存器)。 ⑶ 根据流程图编写汇编语言程序。 ⑷ 上机调试程序。 程序的基本结构有四种:顺序结构、分支结构、循环结构和子程序结构。 5.6.1 顺序程序设计 顺序结构也称线性结构,其特点是其中的语句或结构被连续执行。 顺序程序是最简单的,也是最基本的一种程序结构。这种结构的程序从开始到结尾一直是顺序执行的,中途没有任何分支。从这种结构的流程图来看,除了有一个起始框,一个终止框外,就是若干执行框,没有判断框。指令指针IP值线形增加,IP=IP+1 [例1]求两个数的平均值。这两个数分别存放在X单元和Y单元中,而平均值放在Z单元中。源程序编制如下: DATA SEGMENT X DB 8CH Y DB 64H ;赋予初值 Z DB ? ;分配存储空间 DATA ENDS STACK SEGMENT DW 20H DUP(0) ;给堆栈段分配一个 TOP LABLE WORD ;据区共32个字,每个 STACK ENDS ;字的内容均为0 CODE SEGMENT MAIN PROC FAR ;定义子程序名为MAIN,类型FAR ASSUME CS:CODE ;把段寄存器和 ASSUME DS:DATA ;段名对应起来 ASSUME SS:STACK START: PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA ;给数据段赋初值 MOV DS, AX MOV AX, STACK MOV SS, AX MOV SP, OFFSET TOP MOV AL, X ADD AL, Y ;两数低字节相加结果送AL MOV AH, 0 ADC AH, 0 ;两数高字节带进位相加 SHR AX, 1 MOV Z, AL RET MAIN ENDP CODE ENDS END START 5.6.2 分支程序设计 分支程序结构也称条件结构,通常是在两种或两个以上的不同的操作中选择其中的一个,如下图所示: 分支是通过条件转移指令来实现的。分支结构有一个共同点:运行方向总是向前的。IP受标志位的影响而跳变,影响标志的指令CMP、TEST、JXX [例2] 现有一符号函数: 1 当X0时 Y= 0 当X=0时 -1 当X0时 假定X为-25,且存放在VARX单元中,函数值Y存放在VARY单元,试编写程序根据X的值确定函数Y的值。 根据题意画出流程图如下: 实现符号函数程序的流程图 编写程序如下: DSEG SEGMENT VARX DB -25 VARY DB ? DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX, DSEG MOV DS, AX MOV AL, VARX CMP AL, 0 JGE NEXT MOV AL, -1 JMP HALT NEXT: JE HALT MOV AL, 1 HALT: MOV VARY, AL MOV AH, 4CH INT 21H CODE ENDS END START * 第5章 汇编语言程序设计 S1 S2 S3 开始 结束 条件 S1 S2 条件 S S1 S2 Sn 条件 N N Y Y … 开始 AL←X AL≥0? Y←-1 结束 AL=0 Y←1 Y←0 Y Y N N * 第5章 汇编语言程序设计

文档评论(0)

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

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

1亿VIP精品文档

相关文档