书签 分享 收藏 举报 版权申诉 / 22
上传文档赚钱

类型单片机汇编语言程序设计.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:4143033
  • 上传时间:2022-11-14
  • 格式:PPTX
  • 页数:22
  • 大小:99.32KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《单片机汇编语言程序设计.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    单片机 汇编语言 程序设计
    资源描述:

    1、单片机汇编语言程序设计1.1 1.1 源程序的编辑与汇编源程序的编辑与汇编1.1.源程序的编辑源程序的编辑 源程序的编写要依据源程序的编写要依据80C5180C51汇编语言的基本规则,特别要用好常用汇编语言的基本规则,特别要用好常用的汇编命令(即伪指令),例如:的汇编命令(即伪指令),例如:ORG 0040HORG 0040HMOV AMOV A,#7FH#7FHMOV R1MOV R1,#44H#44HENDEND 这里的这里的ORGORG和和ENDEND是两条伪指令,其作用是告诉汇编程序此汇编源程是两条伪指令,其作用是告诉汇编程序此汇编源程序的起止位置。编辑好的源程序应以序的起止位置。编辑

    2、好的源程序应以.ASM.ASM扩展名存盘,以备汇编程序调扩展名存盘,以备汇编程序调用。用。单片机汇编语言程序设计单片机汇编语言程序设计2.2.源程序的汇编源程序的汇编 将汇编语言源程序转换为单片机能执行的机器码形式的目标程序,将汇编语言源程序转换为单片机能执行的机器码形式的目标程序,这个过程叫汇编。汇编常用的方法有两种:一是手工汇编,二是机器这个过程叫汇编。汇编常用的方法有两种:一是手工汇编,二是机器汇编。汇编。手工汇编时,把程序用助记符指令写出后,通过手工方式查指令手工汇编时,把程序用助记符指令写出后,通过手工方式查指令编码表,逐个把助记符指令翻译成机器码,然后把得到的机器码程序编码表,逐个

    3、把助记符指令翻译成机器码,然后把得到的机器码程序(以十六进制形式)输入到单片机开发机中,并进行调试。由于手工(以十六进制形式)输入到单片机开发机中,并进行调试。由于手工汇编是按绝对地址进行定位的,所以,对于偏移量的计算和程序的修汇编是按绝对地址进行定位的,所以,对于偏移量的计算和程序的修改非常不便。通常只有程序较小或开发条件有限制时才使用。改非常不便。通常只有程序较小或开发条件有限制时才使用。机器汇编是在常用的个人计算机上,使用交叉汇编程序将汇编语机器汇编是在常用的个人计算机上,使用交叉汇编程序将汇编语言源程序转换为机器码形式的目标程序。言源程序转换为机器码形式的目标程序。1.2 1.2 伪指

    4、令伪指令 伪指令在形式上是一条指令,但它并不译成机器语言,只是为汇编伪指令在形式上是一条指令,但它并不译成机器语言,只是为汇编时提供必须的控制信息命令。时提供必须的控制信息命令。1.1.汇编起始伪指令汇编起始伪指令ORGORG基本格式:基本格式:标号:标号:ORG 16ORG 16位地址位地址 功能:规定程序块或数据块存放的起始地址。在一个汇编语言程序功能:规定程序块或数据块存放的起始地址。在一个汇编语言程序中,可以多次定义中,可以多次定义ORGORG伪指令,但要求给定的地址由小到大安排,各段之伪指令,但要求给定的地址由小到大安排,各段之间地址不能重叠。间地址不能重叠。2.2.汇编结束伪指令汇

    5、编结束伪指令ENDEND基本格式:基本格式:标号:标号:ENDEND表达式表达式 功能:结束汇编。汇编程序遇到功能:结束汇编。汇编程序遇到ENDEND伪指令后即结束汇编。处于伪指令后即结束汇编。处于ENDEND之后的程序,汇编程序不予以处理。之后的程序,汇编程序不予以处理。例如:例如:ORG 2000HORG 2000HSTARTSTART:MOV AMOV A,#00H#00H END START END START ;标号;标号STARTSTART开始的程序段结束开始的程序段结束3.3.等值指令等值指令EQUEQU基本格式:基本格式:字符名称字符名称 EQU EQU 项项 这里使用的这里使

    6、用的“字符名称字符名称”不是标号,不能用不是标号,不能用“:”来隔分隔符;其来隔分隔符;其中的中的“项项”可以是一个数值,也可以是一个已经有定义的名字或可以求可以是一个数值,也可以是一个已经有定义的名字或可以求值的表达式。该指令的功能是将一个数或特定的汇编符号赋予规定的字值的表达式。该指令的功能是将一个数或特定的汇编符号赋予规定的字符名称。用符名称。用EQUEQU指令赋值的字符名称可以用做数据地址、代码地址、位地指令赋值的字符名称可以用做数据地址、代码地址、位地址或直接当做一个立即数使用。因此,给字符名称所赋的值可以是址或直接当做一个立即数使用。因此,给字符名称所赋的值可以是8 8位二位二进制

    7、数,也可以是进制数,也可以是1616位二进制数。位二进制数。4.4.定义字节指令定义字节指令DBDB 基本格式:基本格式:标号:标号:DB 8DB 8位二进制数表位二进制数表 DBDB命令是从指定的地址单元开始,定义若干个命令是从指定的地址单元开始,定义若干个8 8位内存单元的位内存单元的内容。该命令主要是在程序存储器的某一部分存入一组内容。该命令主要是在程序存储器的某一部分存入一组8 8位二进制位二进制数,或者是将一个数据表格存入程序存储器。这个伪指令在汇编以数,或者是将一个数据表格存入程序存储器。这个伪指令在汇编以后,将影响程序存储器的内容。后,将影响程序存储器的内容。5.5.定义字命令定

    8、义字命令DWDW 指令格式:指令格式:标号:标号:DW 16DW 16位二进制数表位二进制数表 说明:说明:DWDW伪指令是定义字的伪指令,即从指定的地址单元开始,定伪指令是定义字的伪指令,即从指定的地址单元开始,定义若干个义若干个1616位二进制数据,每个字占用两个单元,先存高位二进制数据,每个字占用两个单元,先存高8 8位,再存低位,再存低8 8位。用法同位。用法同DBDB伪指令。伪指令。6.6.定义空间指令定义空间指令DSDS指令格式:指令格式:标号:标号:DS DS 说明:说明:DSDS伪指令是定义存储区,即从标伪指令是定义存储区,即从标号指定的单元开始保留表达式所代表的号指定的单元开

    9、始保留表达式所代表的存储单元数。存储单元数。【例】【例】ORG 2000HORG 2000H DS 04H DS 04H MOV A,#02H MOV A,#02H RET RET 地址地址ROMROM2000H2000H2001H2001H2002H2002H2003H2003H2004H2004H74742005H2005H02022006H2006H2222保留保留单元单元7.7.位地址赋值指令位地址赋值指令BITBIT 基本格式:基本格式:标号:标号:BIT BIT 位地址位地址 功能:将位地址赋给本语句的标号。经赋值的标号可以代替指令中功能:将位地址赋给本语句的标号。经赋值的标号可以

    10、代替指令中的位,即在程序中,标号和该位地址是等价的。的位,即在程序中,标号和该位地址是等价的。例如:例如:DLY1DLY1:BIT 31HBIT 31H DLY2 DLY2:BIT 32HBIT 32H 经过上述定义后,在编程时,可以把经过上述定义后,在编程时,可以把DLY1DLY1和和DLY2DLY2当做位地址当做位地址31H31H和和32H32H。1.3 1.3 汇编语言程序设计的方法和步骤汇编语言程序设计的方法和步骤程序设计的步骤:程序设计的步骤:1 1)分析题意,明确要求。)分析题意,明确要求。2 2)确定算法)确定算法3 3)画程序流程图)画程序流程图4 4)分配内存工作单元,确定程

    11、序与数据区的存放地址。)分配内存工作单元,确定程序与数据区的存放地址。5 5)编写源程序。)编写源程序。6 6)程序优化)程序优化7 7)上机调试、修改和最后确定源程序。)上机调试、修改和最后确定源程序。程序流程图框图程序流程图框图1.4 1.4 基本程序结构基本程序结构 在程序设计中,将会遇到简单的和复杂的程序,但无论程序如何在程序设计中,将会遇到简单的和复杂的程序,但无论程序如何复杂,都可以看成是一个个基本程序结构的组合。这些基本结构包括复杂,都可以看成是一个个基本程序结构的组合。这些基本结构包括顺序结构、分支结构、循环结构和子程序结构。顺序结构、分支结构、循环结构和子程序结构。1.1.顺

    12、序结构顺序结构 顺序结构是一种最简单、最基本的顺序结构是一种最简单、最基本的程序结构。顺序程序只由算术运算和逻程序结构。顺序程序只由算术运算和逻辑运算指令构成,程序是按指令顺序逐辑运算指令构成,程序是按指令顺序逐条执行的。顺序程序结构如右图:条执行的。顺序程序结构如右图:程序段程序段1程序段程序段2 2.2.分支结构分支结构 分支结构程序的特点是程序中含有转移指令。由于转移指令有无分支结构程序的特点是程序中含有转移指令。由于转移指令有无条件转移和条件转移之分,所以分支结构程序也可分为无条件分支程条件转移和条件转移之分,所以分支结构程序也可分为无条件分支程序和条件分支程序两类。分支结构程序首先要

    13、对问题的条件进行判断序和条件分支程序两类。分支结构程序首先要对问题的条件进行判断,根据判断结果转向不同的分支。,根据判断结果转向不同的分支。典型的分支结构典型的分支结构 条件成立?条件成立?程序段程序段N NY Y 条件成立?条件成立?程序段程序段1 1程序段程序段2 2N NY Y(a)(a)(b)(b)3.3.循环结构循环结构 循环结构本质上也是一种分支结构,只是其分支出口中,有一个循环结构本质上也是一种分支结构,只是其分支出口中,有一个出口又回到入口,结果造成程序不断循环。对于需要重复一些操作的出口又回到入口,结果造成程序不断循环。对于需要重复一些操作的问题,如统计数据个数、多个字符传送

    14、等,可采用循环程序实现。问题,如统计数据个数、多个字符传送等,可采用循环程序实现。循环程序结构有循环程序结构有“先处理后判断先处理后判断”和和“先判断后处理先判断后处理”两种,如两种,如下图所示:下图所示:循环条件?循环条件?循环体循环体置循环初值置循环初值NYN 循环条件?循环条件?循环体循环体置循环初值置循环初值Y(a)先处理后判断方式)先处理后判断方式 (b)先判断后处理方式)先判断后处理方式 4.4.子程序结构子程序结构 在汇编语言程序设计时,通过循环程序可以解决连续重复执行同在汇编语言程序设计时,通过循环程序可以解决连续重复执行同一程序段的问题,而对于不连续重复执行同一程序段的问题,

    15、为避免一程序段的问题,而对于不连续重复执行同一程序段的问题,为避免重复编制程序,节省程序代码所占的存储空间,可将其编制成独立的重复编制程序,节省程序代码所占的存储空间,可将其编制成独立的程序即子程序,在需要的位置采用特定的指令调用该子程序,执行后程序即子程序,在需要的位置采用特定的指令调用该子程序,执行后再返回到调用位置继续执行后序程序指令。子程序调用是实现再返回到调用位置继续执行后序程序指令。子程序调用是实现I/OI/O操操作的重要方法。作的重要方法。【例】试编制程序,实现【例】试编制程序,实现1 12 23 39999?结果千、百位存?结果千、百位存放在放在31H31H单元,十、个位存放在

    16、单元,十、个位存放在30H30H单元。单元。解:本题是十进制数累加,必须解:本题是十进制数累加,必须对和要进行对和要进行BCDBCD码调整;同时加码调整;同时加数的增长不能用数的增长不能用INCINC指令,也必指令,也必须进行须进行BCDBCD码调整,因此只能用码调整,因此只能用ADD AADD A,0101指令,再进行指令,再进行BCDBCD码码调整。调整。开始开始初始赋值初始赋值和与加数相加和与加数相加对和对和BCDBCD码调整码调整Cy=1?千、百位加千、百位加1 1 BCDBCD码调整码调整加数加加数加1 1 BCDBCD码调整码调整结束否结束否数据保存数据保存 NNY结束结束STAR

    17、T:CLR ASTART:CLR A MOV R1,A MOV R1,A MOV R2,#99 MOV R2,#99 MOV R0,#01 MOV R0,#01LOOP1:ADD A,R0LOOP1:ADD A,R0 DA A DA A JNC LOOP2 JNC LOOP2 MOV 30H,A MOV 30H,A MOV A,R1 MOV A,R1 ADD A,#01 ADD A,#01 DA A DA A MOV R1,A MOV R1,A MOV A,30H MOV A,30HLOOP2:MOV 30H,ALOOP2:MOV 30H,A MOV A,R0 MOV A,R0 ADD A,#

    18、01 ADD A,#01 DA A DA A MOV R0,A MOV R0,A MOV A,30H MOV A,30H DJNZ R2,LOOP1 DJNZ R2,LOOP1 MOV 30H,A MOV 30H,A MOV 31H,R1 MOV 31H,R1 END END【例】在内【例】在内RAM 30HRAM 30H3FH3FH存存放符号数,试统计中间负数放符号数,试统计中间负数的个数,将统计结果存放在的个数,将统计结果存放在40H40H单元中,试编制程序。单元中,试编制程序。解:判断负数的方法只要对解:判断负数的方法只要对最高进行判断,如果是最高进行判断,如果是1 1则为则为负数,否则

    19、为零或正数。负数,否则为零或正数。开始开始初始赋值初始赋值取数送取数送A AACC.7=1?统计数加统计数加1 1 源单元地址加源单元地址加1 1 结束否结束否YNNY结束结束START:MOV 40H,#00HSTART:MOV 40H,#00H MOV R0,#30H MOV R0,#30H MOV R2,#10H MOV R2,#10HLOOP1:MOV A,R0LOOP1:MOV A,R0 JNB ACC.7,LOOP2 JNB ACC.7,LOOP2 INC 40H INC 40HLOOP2:INC R0LOOP2:INC R0 DJNZ R2,LOOP1 DJNZ R2,LOOP1 END END

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:单片机汇编语言程序设计.pptx
    链接地址:https://www.163wenku.com/p-4143033.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库