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

类型MCS-51单片机汇编语言程序设计课件.ppt

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

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

    特殊限制:

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

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

    1、单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束第第4章章 汇编语言程序设计汇编语言程序设计教学目标教学目标4.1 4.1 单片机汇编语言与指令格式单片机汇编语言与指令格式4.2 4.2 源程序的设计步骤和汇编源程序的设计步骤和汇编 4.3 4.3 汇编语言程序设计汇编语言程序设计本章小结本章小结思考题与习题思考题与习题单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束教学目标教学目标 通过本章教学,要求达到以下目标:通过本章教学,要求达到以下目标: 1. 熟悉熟悉汇编语言的汇编语言的语句结构语句结构; 2. 了

    2、解了解手工汇编,计算偏移量及转移地址的手工汇编,计算偏移量及转移地址的 方法;方法; 3. 了解了解程序设计的步骤,会画程序流程图;程序设计的步骤,会画程序流程图; 4. 掌握掌握顺序程序、分支程序、循环程序、子程顺序程序、分支程序、循环程序、子程 序等基本程序的编制方法。序等基本程序的编制方法。 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束4.1 MCS51单片机汇编语言与指令格式单片机汇编语言与指令格式 4.1.1 程序设计语言程序设计语言程序设计语言程序设计语言机器语言机器语言汇编语言汇编语言高级语言高级语言单片机原理及其接口技术单片机原理及

    3、其接口技术主目录主目录上一页上一页下一页下一页结结 束束机器语言机器语言 由于构成计算机的电子器件特性所决定由于构成计算机的电子器件特性所决定, 计算机只能计算机只能识别二进制代码。识别二进制代码。 这种这种以二进制代码来描述指令以二进制代码来描述指令功能的语言功能的语言, 称之为称之为机器语言机器语言, 用机器语言组用机器语言组成的程序成的程序, 称为称为目标程序目标程序。 计算机就是按照机器计算机就是按照机器语言的指令来完成各种功能操作的语言的指令来完成各种功能操作的, 它具有它具有程序简捷、占程序简捷、占用存储空间小、执行速度快、控制功能强用存储空间小、执行速度快、控制功能强等特点。等特

    4、点。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束汇编语言汇编语言 用来替代机器语言的进行程序设计的用来替代机器语言的进行程序设计的一种语言,一种语言,由助记符、保留字和伪指令等由助记符、保留字和伪指令等组成组成。很容易让人们所识别、记忆和读写。很容易让人们所识别、记忆和读写。 汇编语言编写出的程序是汇编语言编写出的程序是汇编语言源程序汇编语言源程序,可由可由“汇编程序汇编程序”翻译成翻译成机器语言程序机器语言程序(即目(即目标代码)。标代码)。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束地址地址机器语言

    5、机器语言汇编语言汇编语言形式形式二进制形式二进制形式十六进制形式十六进制形式2000H0111 0100 0000 0101B7405HMOV A , #05H2002H0010 0100 0000 1010B240AHADD A , #0AH2004H1000 0000 1111 1110B80FEHMOV 20H , A单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束汇编程序汇编程序容易让人们所识别、记忆和读写,容易让人们所识别、记忆和读写,但不能为机器直接识别执行但不能为机器直接识别执行001010010101010101010101机器语言程序

    6、机器语言程序(即目标代码,(即目标代码,机器可以识别机器可以识别执行执行010101010101)010101010101单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束高级语言高级语言 是是面向过程和问题面向过程和问题并能独并能独立于机器的通用程序立于机器的通用程序设设计语言,是一种计语言,是一种接近人们自然语言和常用数学表达式接近人们自然语言和常用数学表达式的计算机语言的计算机语言。 高级语言编写的程序是不能被机器直接执行的,高级语言编写的程序是不能被机器直接执行的,但可以被常驻在内存或磁盘上的但可以被常驻在内存或磁盘上的解释程序或编译程序解释程序

    7、或编译程序等等编译成目标代码后编译成目标代码后才能被机器所执行。才能被机器所执行。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束独立于机器,可移植性强结构化设计,独立于机器,可移植性强结构化设计,程序清晰,但是占用存储空间大程序清晰,但是占用存储空间大编译程序编译程序001010010101010101010101机器语言程序机器语言程序(即目标代码,(即目标代码,机器可以识别机器可以识别执行执行010101010101)010101010101单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束4.1.2 格汇

    8、编语言格式格汇编语言格式MCS51单片机汇编语言指令的标准格式如下单片机汇编语言指令的标准格式如下: 标号标号: 操作码操作码 目的操作数目的操作数 , 源操作数源操作数 ; 注释注释 例如例如: LOOP: ADD A, 10H ; (A)(A)+10H (1) 方括号方括号 表示该项是可选项表示该项是可选项, 可有可无。可有可无。 (2) 标号标号是用户设定的符号是用户设定的符号, 它实际代表该指令所在它实际代表该指令所在的的地址地址。标号。标号必须以字母开头必须以字母开头, 其后跟其后跟18个字母或个字母或数字数字, 并以并以“:”结尾。结尾。 单片机原理及其接口技术单片机原理及其接口技

    9、术主目录主目录上一页上一页下一页下一页结结 束束 (3) 操作码操作码是用英文缩写的指令功能助记符。它确是用英文缩写的指令功能助记符。它确定了本条指令完成什么样的操作功能。定了本条指令完成什么样的操作功能。 如如: ADD表表示加法操作。示加法操作。 任何一条指令都必须有该助记符项任何一条指令都必须有该助记符项, 不得省略。不得省略。 (4) 目的操作数目的操作数提供操作的对象提供操作的对象, 并表示操作结果存并表示操作结果存放单元的地址放单元的地址, 它与操作码之间它与操作码之间必须以一个或几个必须以一个或几个空格分隔空格分隔。 如上例中如上例中A表示操作对象是累加器表示操作对象是累加器A的

    10、的内容内容, 并指出操作结果又回送并指出操作结果又回送A存放。存放。 标号标号: 操作码操作码 目的操作数目的操作数 , 源操作数源操作数 ; 注释注释 例如例如: LOOP: ADD A, 10H ; (A)(A)+10H单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束(5) 源操作数源操作数指出的是一个源地址(或立即数)指出的是一个源地址(或立即数), 表示操作的对象或操作数来自何处。表示操作的对象或操作数来自何处。 它与目它与目的操作数之间要用的操作数之间要用“,”号隔开。号隔开。 (6) 注释部分注释部分是在编写程序时是在编写程序时, 为了增加

    11、程序的为了增加程序的可可读性读性, 由用户拟写对该条指令或该段程序功能由用户拟写对该条指令或该段程序功能的说明。的说明。 它以分号它以分号“;”开头开头, 可以用中文、可以用中文、 英文或某些符号来表示英文或某些符号来表示, 显然它不存入计算机显然它不存入计算机, 只出现在源程序中。只出现在源程序中。 标号标号: 操作码操作码 目的操作数目的操作数 , 源操作数源操作数 ; 注释注释 例如例如: LOOP: ADD A, 10H ; (A)(A)+10H单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束操作数的操作数的5种合法形式种合法形式1、数字形式:

    12、二进制、十进制、十六进制、数字形式:二进制、十进制、十六进制01001100B,20D,0A0H2、工作寄存器和特殊功能寄存器、工作寄存器和特殊功能寄存器 R0R7,ACC,SFR3、标号地址、标号地址MOV A , M;设设M已定义过已定义过4、带加减算符的表达式、带加减算符的表达式MOV A , M+15、采用、采用$符符JNB TF0 , $标号标号: 操作码操作码 目的操作数目的操作数 , 源操作数源操作数 ; 注释注释 例如例如: LOOP: ADD A, 10H ; (A)(A)+10H单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束u指令

    13、性语句使指令性语句使CPU执行一个具体的操作。执行一个具体的操作。u伪指令伪指令不要求计算机做任何操作不要求计算机做任何操作,也没有对应的机器码也没有对应的机器码,不产生目标程序,不影响程序的执行不产生目标程序,不影响程序的执行,仅仅是,仅仅是能够帮助进行能够帮助进行汇编汇编的一些指令。的一些指令。4.1.3 汇编语言构成汇编语言构成指令性语句:指令性语句:111条指令的助记符语句。条指令的助记符语句。指示性语句:伪指令语句。指示性语句:伪指令语句。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束15 常用伪指令常用伪指令 单片机汇编语言程序设计中,除

    14、了使用指单片机汇编语言程序设计中,除了使用指令系统规定的指令外,还要用到一些伪指令。令系统规定的指令外,还要用到一些伪指令。伪指令又称指示性指令伪指令又称指示性指令,具有和指令,具有和指令类似的形类似的形式,但汇编时伪指令并不产生可执行的目标代式,但汇编时伪指令并不产生可执行的目标代码码,只是对汇编过程进行某种控制或提供某些,只是对汇编过程进行某种控制或提供某些汇编信息。汇编信息。下面对常用的伪指令作一简单介绍。下面对常用的伪指令作一简单介绍。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 用来指定用来指定程序或数据的起始位置程序或数据的起始位置;

    15、给出一些给出一些连续存放数据的地址连续存放数据的地址; 为中间运算结果为中间运算结果保留一部分存储空间保留一部分存储空间; 为源程序中的为源程序中的符号和标号赋值符号和标号赋值; 表示表示源程序结束源程序结束等等。等等。 不同版本的汇编语言,伪指令的符号和含义可能有所不同,但基本用法不同版本的汇编语言,伪指令的符号和含义可能有所不同,但基本用法是相似的。是相似的。伪指令可以伪指令可以单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束伪指令列表伪指令列表1、 ORG设置目标程序起始地址伪指令设置目标程序起始地址伪指令2、 END结束汇编伪指令结束汇编伪指令

    16、3、 DB定义字节伪指令定义字节伪指令4、 DW定义字伪指令定义字伪指令 5、 DS预留存储空间伪指令预留存储空间伪指令6、 EQU等值伪指令等值伪指令7、 DATA数据地址赋值数据地址赋值8、 BIT位地址定义伪指令位地址定义伪指令单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束18一、一、 汇编起始指令汇编起始指令 ORG 指令格式为指令格式为: ORG nn 该伪指令的该伪指令的功能是规定其后面的目标程序或功能是规定其后面的目标程序或数据块的起始地址。数据块的起始地址。它放在一段源程序它放在一段源程序(主程序、子程主程序、子程序序)或数据块的前面

    17、,说明紧跟在其后的程序段或数据块或数据块的前面,说明紧跟在其后的程序段或数据块的起始地址就是的起始地址就是ORG后面给出的地址。例如:后面给出的地址。例如: ORG 2000HSTART:MOV A,#7FH 。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束例如:例如: ORG 2000HSTART:MOV A,#7FH格式:格式:标号:标号: ORG 地址地址(十六进制表示十六进制表示)74H7FH2000H1FFFH2001H机器码:机器码:74 7FH单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束20

    18、 例例: ORG 2000H MOV SP, 60H MOV R0, 2FH MOV R2, 0FFH ORG伪指令说明其后面程序的目标代码在存储器中存伪指令说明其后面程序的目标代码在存储器中存放的放的起始地址是起始地址是2000H, 即即 存储器地址存储器地址 程序代码程序代码 2000H 75 81 60 2003H 78 2F 2005H 7A FF 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束21二、二、 汇编结束指令汇编结束指令END 指令格式指令格式: 标号标号: END 地址或标号地址或标号 格式中格式中标号以及标号以及END后面的地

    19、址或标号可有可无后面的地址或标号可有可无。功能功能: 提供汇编结束标志。提供汇编结束标志。汇编程序遇到汇编程序遇到END后就停止汇后就停止汇编编, 对对 END以后的语句不予处理以后的语句不予处理, 故故END应放在程序的结应放在程序的结束处。束处。 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束22三、等值指令三、等值指令EQU ( Equal )指令格式指令格式: 字符名称字符名称 EQU 数字或汇编符号数字或汇编符号功能功能: 使指令中的使指令中的字符名称字符名称等价于等价于给定的给定的数字或汇编符号数字或汇编符号。 特别注意:特别注意: 必须

    20、先赋值后使用必须先赋值后使用, 同一个同一个标号只能赋值一次。标号只能赋值一次。 例例: PA EQU 8001H 即给字符即给字符PA赋值为赋值为8001H。 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束书:书:131页。编程好习惯之一:上下对齐!页。编程好习惯之一:上下对齐! ORG 0500HAA EQU R1BB EQU 10HDELAY EQU 07E6H MOV R0, BB ;R0(10H) MOV A, AA ;A R1 LCALL DELAY ;调调07E6H子程序子程序单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一

    21、页上一页下一页下一页结结 束束 该伪指令的功能与该伪指令的功能与EQU类似,可以类似,可以将将DATA右边表达右边表达式的式的 值赋给左边的字符名称值赋给左边的字符名称。表达式表达式可以是常数、地址可以是常数、地址标号或表达式,但标号或表达式,但不可以不可以是一个汇编符号(如是一个汇编符号(如R1等)。等)。 DATA和和EQU的主要区别是:的主要区别是:EQU中的字符名称是中的字符名称是先定义后使用,而先定义后使用,而DATA中的字符名称没有这种限制。中的字符名称没有这种限制。 定义定义8位数据用位数据用DATA,定义,定义16位数据用位数据用XDATA。格式:格式:字符名称字符名称 DAT

    22、A 表达式表达式格式格式: 字符名称字符名称 EQU 数字或汇编符号数字或汇编符号四、数据赋值指令四、数据赋值指令DATA单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束25五、五、 定义字节指令定义字节指令DB指令格式指令格式: 标号标号: DB 8位二进制数表位二进制数表功能功能: 把把 8 位二进制数表位二进制数表依次存入从标号开始的连续的存依次存入从标号开始的连续的存储单元中。储单元中。 标号区段可有可无标号区段可有可无, DB指令之后的指令之后的 8 位二进制数表是位二进制数表是一个字节常数一个字节常数或或用逗号隔开的字节串用逗号隔开的字节串

    23、, 也可以是用也可以是用引号括引号括起来的起来的ASCII码字符串码字符串 (一个一个 ASCII字符相当于一个字节字符相当于一个字节)。 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 ORG 2000HTAB1: DB 30H,8AH, 73 DB 01011010B, 5, A30H8AH49H5AH35H41H2000H2001H2002H2003H2004H2005H 由于由于ORG 2000H,所以,所以TAB1的地址为的地址为2000H,因此,以上,因此,以上伪指令经汇编后,将对伪指令经汇编后,将对2000H开始的连续存储单元赋值:开始

    24、的连续存储单元赋值:;十进制数;十进制数73以十六进制数存放以十六进制数存放; 01011010B=5AH;35H是数字是数字5的的ASCII码码;41H是字母是字母A的的ASCII码码单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束27六、六、 定义字指令定义字指令DW指令格式指令格式: 标号标号: DW 16 位数据表位数据表功能:功能:与与DB相似相似, 区别区别仅在于从指定地址开始存放的是指仅在于从指定地址开始存放的是指令中的令中的 16 位数据位数据。每个。每个 16 位数据要占两个存储单元位数据要占两个存储单元, 高高8 位先存位先存, 低

    25、低 8 位后存位后存, 这和这和MCS -51指令中的指令中的16位数据位数据存放顺序是一致的。存放顺序是一致的。 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 ORG 1500HTAB2: DW 1234H,80H,10 12H34H00H80H00H0AH1500H汇编以后:汇编以后:1501H1502H1503H1504H1505H单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束29 七七. 定义空间伪指令定义空间伪指令DS 格式:格式: 标号:标号: DS 表达式表达式 功能:功能:从指定的地址开始

    26、,保留若干个存储单元作从指定的地址开始,保留若干个存储单元作为备用的空间。为备用的空间。 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 ORG 1000HSPC:DS 20H DB 30H,8FH汇编后从汇编后从1000H开始,预留开始,预留32(20H)个字节的内存单元,然后个字节的内存单元,然后从从1020H开始,按照下一条开始,按照下一条DB指指令赋值,即令赋值,即(1020H)=30H,(1021H)=8FH。空空32个个单元单元30H8FH1000H1020H0FFFH1021H101FH单片机原理及其接口技术单片机原理及其接口技术主目录

    27、主目录上一页上一页下一页下一页结结 束束31八、八、BIT位地址赋值伪指令位地址赋值伪指令格式:格式: 字符名称字符名称 BIT 位地址位地址功能:功能: 把右边的位地址赋给左边的把右边的位地址赋给左边的“字符字符名名”。例如: ORG 0300H A1 BIT 00H A2 BIT P1.0 MOV C,A1 MOV A2,C单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束4.2 源程序的设计步骤和汇编源程序的设计步骤和汇编设计步骤设计步骤1、拟定设计任务书、拟定设计任务书2、建立数学模型、建立数学模型3、确立算法、确立算法4、绘制程序流程图、绘制程

    28、序流程图5、编制汇编语言源程序、编制汇编语言源程序6、上机调试、上机调试单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束33 单片机汇编语言程序设计的基本步骤如下:单片机汇编语言程序设计的基本步骤如下: (1) (1) 题意分析题意分析 (2) (2) 画出程序流程图画出程序流程图 熟悉并了解汇编语言指令的基本格式和主要熟悉并了解汇编语言指令的基本格式和主要特点,特点,明确被控对象对软件的要求,设计出算法明确被控对象对软件的要求,设计出算法。 程序流程图也称为程序框图程序流程图也称为程序框图,是根据控制流程,是根据控制流程设计的,它可以设计的,它可以使

    29、程序清晰,结构合理,便于调试。使程序清晰,结构合理,便于调试。 单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束34 (3) (3) 分配内存工作区及有关端口地址分配内存工作区及有关端口地址 (4) (4) 编制汇编源程序。编制汇编源程序。 (5) (5) 编译、仿真、调试程序。编译、仿真、调试程序。 (6) (6) 固化程序。固化程序。 分配内存工作区,要根据程序区、数据区、分配内存工作区,要根据程序区、数据区、暂存区、堆栈区等预计所占空间大小,对暂存区、堆栈区等预计所占空间大小,对片内外片内外存储区进行合理分配存储区进行合理分配并并确定每个区域的首

    30、地址确定每个区域的首地址,便于编程使用。便于编程使用。单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束4.2 源程序的设计步骤和汇编源程序的设计步骤和汇编 汇编(汇编程序)汇编(汇编程序) 源程序源程序 目标码目标码 (汇编语言)(汇编语言) (机器语言)(机器语言) 反汇编(汇编程序)反汇编(汇编程序)汇编和反汇编示意图汇编和反汇编示意图单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束4.2 源程序的设计步骤和汇编源程序的设计步骤和汇编汇编汇编1、人工汇编、人工汇编2、机器汇编、机器汇编P136 P136 表

    31、表4.24.2P137 P137 表表4.34.3第一次汇编:翻译机器码第一次汇编:翻译机器码第二次汇编:计算偏移量第二次汇编:计算偏移量人工汇编人工汇编单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束P136 例例4.1 LENORG 0100HORG 0100HSUMSUM DATA 1FH DATA 1FHBLOCK DATA 20HBLOCK DATA 20HSTART: MOV R0,#BLOCKSTART: MOV R0,#BLOCK MOV A,R0 MOV A,R0 CJNE A,#00H, CJNE A,#00H,LOOPLOOPHE

    32、REHERE: SJMP $: SJMP $LOOPLOOP: CLR A: CLR ANEXTNEXT: INC R0: INC R0 ADD A,R0 ADD A,R0 DJNZ BLOCK, DJNZ BLOCK,NEXTNEXT MOV SUM, A MOV SUM, A SJMP SJMP HEREHERE END ENDRAMRAM20H20H1FH1FHSUMSUMBLOCKBLOCKLEN个单元内容求和编程好习惯之一:上下对齐,清晰易读!编程好习惯之一:上下对齐,清晰易读!单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束第一次汇编:翻译

    33、机器码第一次汇编:翻译机器码地址地址指令码指令码标号标号指令助记符指令助记符1000H1000H78 2078 20STARTSTARTMOV R0,#BLOCKMOV R0,#BLOCK1002H1002HE6E6MOV A,R0MOV A,R01003H1003HB4 00 B4 00 LOOPLOOPCJNE A,#00H,CJNE A,#00H,LOOPLOOP1006H1006H80 80 $ $HEREHERESJMP SJMP $ $1008H1008HE4E4LOOPLOOPCLR ACLR A1009H1009H0808NEXTNEXTINC R0INC R0100AH100

    34、AH2626ADD A,R0ADD A,R0100BH100BHD5 20 D5 20 NEXTNEXTDJNZ BLOCK,DJNZ BLOCK,NEXTNEXT100EH100EHF5 1FF5 1FMOV SUM, AMOV SUM, A1010H1010H80 80 HEREHERESJMPSJMP HERE HERESUMSUM DATA 1FH DATA 1FHBLOCK DATA 20HBLOCK DATA 20H单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束第二次汇编:第二次汇编:计算偏移量计算偏移量地址地址指令码指令码指令码指令码标

    35、号标号指令助记符指令助记符1000H78 20STARTMOV R0,#BLOCK1002HE6MOV A,R01003HB4 00 LOOPB4 00 02CJNE A,#00H,LOOP1006H80 $80 FEHERESJMP $1008HE4LOOPCLR A1009H08NEXTINC R0100AH26ADD A,R0100BHD5 20 NEXTD5 20 FBDJNZ BLOCK,NEXT100EHF5 1FMOV SUM, A1010H80 HERE80 F4SJMP HERE地址偏移量目标地址转移指令起始地址转移指令字节数地址偏移量目标地址转移指令起始地址转移指令字节数L

    36、OOPLOOP1008100810031003030302H02H$ $10061006100610062 202H 02H ,补码为,补码为 FEHFEHNEXTNEXT10091009100B100B030305H05H,补码为,补码为FBHFBH单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束4.2 源程序的设计步骤和汇编源程序的设计步骤和汇编汇编汇编1、人工汇编、人工汇编2、机器汇编、机器汇编第一次汇编:翻译机器码第一次汇编:翻译机器码第二次汇编:计算偏移量第二次汇编:计算偏移量机器汇编机器汇编汇编汇编软件软件汇编源程序汇编源程序 目标代码目标

    37、代码(机器语言)(机器语言)单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束4.3.1 简单程序设计简单程序设计4.3.2 分支程序设计分支程序设计4.3.3 散转程序设计散转程序设计4.3.4 循环程序设计循环程序设计4.3.5 查表程序设计查表程序设计4.3.6 子程序设计和参数传递子程序设计和参数传递4.3 汇编语言程序设计汇编语言程序设计单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束例例 1 两个无符号双字节数相加。两个无符号双字节数相加。 设被加数存放于内部设被加数存放于内部RAM的的40H(高位字

    38、节)(高位字节), 41H(低(低位字节)位字节), 加数存放于加数存放于50H(高位字节)(高位字节), 51H(低位字节)(低位字节), 和数存入和数存入 40H和和41H单元中。单元中。 4.3.1 简单程序设计简单程序设计没有分支、顺序执行的程序没有分支、顺序执行的程序40H41H50H51H40H41H+CY单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 ORG 0000H LJMP MAIN ORG 0100H MAIN: CLR C ; 将将Cy清零清零 MOV R0, 41H ; 将将被加数被加数地址送数据指针地址送数据指针R0 MO

    39、V R1, 51H ; 将将加数加数地址送数据指针地址送数据指针R1 AD1: MOV A, R0 ; 被加数低字节的内容送入被加数低字节的内容送入A ADD A, R1 ; 两个低字节相加两个低字节相加 MOV R0, A ; 低字节的和存入被加数低字节中低字节的和存入被加数低字节中 DEC R0 ; 指向被加数高位字节指向被加数高位字节 DEC R1 ; 指向加数高位字节指向加数高位字节 MOV A, R0 ; 被加数高位字节送入被加数高位字节送入A ADDC A, R1 ; 两个高位字节带两个高位字节带Cy相加相加 MOV R0, A ; 高位字节的和送被加数高位字节高位字节的和送被加数

    40、高位字节SJMP $ ENDR0R1单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束例例 2 将两个半字节数合并成一个一字节数。将两个半字节数合并成一个一字节数。 设内部设内部RAM 40H, 41H单元中分别存放着单元中分别存放着 8 位二进制数位二进制数, 要求取出两个单元中的低半字节要求取出两个单元中的低半字节, 并成一个字节后并成一个字节后, 存入存入 50H单元中(从单元中(从40H单元取的数放在单元取的数放在高高4位,从位,从41H单元取的单元取的数放在数放在低低4位)。位)。? ? ? ?X X X X? ? ? ?Y Y Y Y40H4

    41、1HX X X XY Y Y Y50H单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 ORG 0000H LJMP START ORG 0100HSTART: MOV R1, 40H ; 设置设置R1为数据指针为数据指针 MOV A, R1 ; 取出第一个单元中的内容取出第一个单元中的内容 ANL A, 0FH ; 取第一个数的低半字节取第一个数的低半字节 SWAP A ; 移至高半字节移至高半字节 INC R1 ; 修改数据指针修改数据指针 XCH A, R1 ; 取第二个单元中的内容取第二个单元中的内容 ANL A, 0FH ; 取第二个数的低半

    42、字节取第二个数的低半字节 ORL A, R1 ; 拼字拼字 MOV 50H, A ; 存放结果存放结果 SJMP $ END ? ? ? ?X X X X? ? ? ?Y Y Y Y40H41HX X X XY Y Y Y50H单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 ORG0000H LJMP START ORG 0500HSTART: MOV R0,#22H MOV R0,#00H;22H清零MOV A,20H;20H中的BCD码送AXCHD A,R0;低位BCD送22HORL 22H,#30H;完成低位BCD的转换SWAP A;高位BCD

    43、码送低4位ORL A,#30H;完成高位BCD的转换MOV 21H,A;存入21HSJMP $ENDP138 例例4.2 由由BCD码码求求ASCII码码 BCD_HBCD_LASCII_HASCII_L030H030H131H131H939H939HBCDBCD码码ASCIIASCII码码20H20H21H21H22H22H单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束P139 例例4.3:已知已知16位补码位补码(负数负数),求原码的绝对值。,求原码的绝对值。 ORG ORG 0000H0000H LJMP LJMPMIANMIAN ORG OR

    44、G 0300H0300H NUMNUMDATA 20HDATA 20HMAIN: MOV MAIN: MOV R0,#NUMR0,#NUM MOV MOV A,R0A,R0 ; ;低低8 8位位A A CPL CPL A A ADD ADD A,#01HA,#01H MOV MOV R0,AR0,A INC INC R0R0 MOV MOV A,R0A,R0 ; ;高高8 8位位A A CPL CPL A A ADDC ADDC A,#00HA,#00H ANL ANL A,#7FH;A,#7FH;去掉符号位去掉符号位 MOV MOV R0,AR0,A SJMP SJMP $ $ ; ;结束结

    45、束 ENDEND为什么不用为什么不用INC A(P100)D_LD_HNUMNUMNUMNUM1 1单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束分支结构框图分支结构框图 (a) 单分支流程单分支流程 (b) 多分支流程多分支流程 4.3.2 分支程序设计分支程序设计单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束000 xxx-+011yP140 例例4.5例例 设设x存放在内部存放在内部RAM的的30H单元中,结果单元中,结果y存存入入31H单元单元.流程图流程图存结果存结果结束结束YA+1YAX开始开始

    46、N(A)=0?N(A)0?A- -1单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 ORG 2000HSTART: MOV A, 30H ;AX JZ LP2 ;X=0转移转移 JNB ACC.7, LP1 ;X0转移转移 MOV A, #0FFH ;X0则则Y=1LP2: MOV 31H, A ;31HY END流程图流程图存结果存结果结束结束YA+1YAX开始开始N(A)=0?N(A)0?A- -1单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 比较两个无符号数的大小。比较两个无符号数的大小。 设设外部

    47、外部RAM的存储单元的存储单元ST1和和ST2中存放两个不带符号中存放两个不带符号的二进制数的二进制数, 找出其中的找出其中的大大数数存入外部存入外部 RAM 中的中的 ST3单元中。单元中。 例例P142 例例4.7ST1ST1D_1D_2MAX(D_1,D_2)ST2ST2ST3ST3AR2单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 程序如下:程序如下: ORG 0000H LJMP START ORG 1000H ST1 EQU 0000H ST2 EQU 0001H ST3 EQU 0002H START: CLR C ; 清零清零Cy

    48、MOV DPTR, ST1 ; 第一个数的指针第一个数的指针 MOVX A, DPTR ; 取第一个数取第一个数 MOV R2, A ; 保存保存 MOV DPTR, ST2 ; 第二个数的指针第二个数的指针 MOVX A, DPTR ; 取第二个数取第二个数 0000H0000HD_1D_2MAX(D_1,D_2)0001H0001H0002H0002HAR2单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 CLR C SUBB A, R2 ; 两数比较,相减后两数比较,相减后A中的值已变化中的值已变化JNC BIG1 ; 若若AR2, 则转存则转存

    49、AXCH A, R2 ;若若AR2,交换后,交换后A中为大数中为大数SJMP BIG0BIG1: MOVX A, DPTR ; 第二个数大第二个数大,重新取出第二个数重新取出第二个数BIG0: MOV DPTR, ST3 MOVX DPTR, A ; 存大数存大数 SJMP $ END是否可以采用其他是否可以采用其他指令生成指令生成Cy位呢?位呢?单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束u比较是进行一次减法运算,但比较是进行一次减法运算,但其差值不保存其差值不保存,两个数的原值不受,两个数的原值不受影响,而影响,而标志位标志位CY要受到影响要受

    50、到影响。u当当 data1R2 , 则转存则转存A XCH A, R2 ; Cy=1,A=95 跳跳 CJNE A , #90 , LOOP2;与与90比较,形成比较,形成Cy LOOP2:JC NEXT;90 跳跳 INC GRADB ;B级人数加级人数加1 SJMP NEXTNEXT1:INC GRADA ;A级人数加级人数加1NEXT: INC DPTR ;修改学生成绩指针;修改学生成绩指针 DJNZ R2,LOOP ;是否统计完,未完跳是否统计完,未完跳 SJMP $ END单片机原理及其接口技术单片机原理及其接口技术主目录主目录上一页上一页下一页下一页结结 束束 散转程序是分支程序的

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

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


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


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

    163文库