MCS51-汇编语言程序设计解析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理及应用 汇编语言程序设计 测控技术与仪器教研室 王民慧 第4章 汇编语言程序设计 4.1汇编语言的构成 2.汇编语言 源程序 目标程序 二、 汇编语言语句格式   但还有一些指令不产生机器码,即没有对应的机器码,也就是说它不是CPU能执行的指令,只是提供汇编控制信息,以便在汇编时执行一些特殊的操作,这种指令称为伪指令。 如:1000H: DB 20H 没有对应的机器码,但这条伪指令所要完成的功能是将地址为1000H的存储单元的内容定义成20H。 常用伪指令 定位伪指令ORG 定义字节数据伪指令DB 定义字数据伪指令DW 定义空间伪指令DS 符号定义伪指令EQU或= 数据赋值伪指令DATA 位地址定义指令BIT 汇编结束伪指令END 每一个完整的汇编语言源程序的后面必须有END,否则,编译程序在对汇编语言源程序进行编译时,因找不到尾端而无法进行编译。 例如: ORG 1000H SEG1: DB 53H,78H,2 SEG2: DB DAY END   则: (1000H)=53H (1001H)=78H (1002H)=32H (1003H)=44H (1004H)=41H (1005H)=59H 并且SEG1代表1000H、SEG2代表1003H  注意:作为操作数部分的项或项表,若为数值,其取值范围应为00~FFH;若为字符串,其长度应限制在80个字符内。 DATA常用来在程序中定义数据地址。 例如: MAIN DATA 2000H MAIN0 DATA MAIN+8   汇编后: MAIN的值为2000H MAIN0的值为2008H 1、n读下面程序,指出执行各伪指令后相关单元对应内容是什么?未知内容用“XX”表示。 ORG 0F00H DS 05H DB 0,1,4,9 DW 1625H DB ‘0’,‘1’,‘4’,‘9’ END 2、指出下面一条指令的各部分的名称,并说明每部分的功能。 MAIN:ORL 56H,#56H 汇编语言程序设计实例引入 实例 假设一个班有50个人, 共有3门选修课: 计算机算法 CAD设计 单片机 请找出: 同时选了三门课的同学; 为什么要用流程图? 符合人进行逻辑思考的习惯 计算机从根本上来说,没有任何逻辑性,所以,你必须告诉它,先做什么,后做什么,遇到什么情况又该做什么,等等 流程图设计本身是一个逐步求精的过程,最终将任务划分为若干能由机器指令实现的小模块 程序设计的基本步骤 题意分析 画出流程图 分配内存及端口 编制源程序 仿真、调试程序 固化程序 二、汇编语言源程序的汇编 4.3 简单与分支程序设计 二、 分支程序设计 【例4.2】已知VAR(30H单元)中有一变量X,要求编写一程序按下述要求给Y赋值,结果存入FUNC(31H)单元。 +1, X>0 Y = 0 , X = 0 –1 , X<0 题意:根据X的不同,程序编写时有三个出口,即有三个分支!!! 4.4 循环与查表程序设计 4.5 子程序与运算程序设计 一、子程序设计 子程序是具有某种功能的独立程序段,其末尾有一条子程序返回指令RET。在编写程序时可使用子程序,子程序执行完后返回到原来的程序。这种使用子程序的程序称为主程序或调用程序,使用子程序的过程称为子程序调用。子程序执行完后返回原来程序的过程称为子程序返回。 在编写子程序时,需要注意以下几点: 设置好主程序与子程序之间的入口参数与出口参数的传递。 注意保护现场和恢复现场。 参数传递一般可采用以下方法: 传递数据。将数据通过工作寄存器R0~R7或累加器来传送。即主程序和子程序在交接处,上述寄存器和累加器存储的是同一参数。 传送地址。数据存放在数据寄存器中,参数传递时只通过R0、R1、DPTR传递数据所存放的地址。 通过堆栈传递参数。在调用之前,先把要传送的参数压入堆

文档评论(0)

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

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

1亿VIP精品文档

相关文档