单片机汇编语言程序设计 一天天学习

上传人:kms****20 文档编号:40538383 上传时间:2018-05-26 格式:DOC 页数:11 大小:39.50KB
返回 下载 相关 举报
单片机汇编语言程序设计 一天天学习_第1页
第1页 / 共11页
单片机汇编语言程序设计 一天天学习_第2页
第2页 / 共11页
单片机汇编语言程序设计 一天天学习_第3页
第3页 / 共11页
单片机汇编语言程序设计 一天天学习_第4页
第4页 / 共11页
单片机汇编语言程序设计 一天天学习_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《单片机汇编语言程序设计 一天天学习》由会员分享,可在线阅读,更多相关《单片机汇编语言程序设计 一天天学习(11页珍藏版)》请在金锄头文库上搜索。

1、单片机汇编语言程序设计单片机汇编语言程序设计 一天天学习一天天学习文库帮手网 免费帮下载 百度文库积分 资料本文由 jorfan123 贡献ppt 文档可能在 WAP 端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。第四章 汇编语言程序设计通过前面的学习, 通过前面的学习,我们已经了解了单片机内部的 结构,MCS-51 指令系统的寻址方式 指令系统的寻址方式, 结构,MCS-51 指令系统的寻址方式,各类指令的格式 及功能. 及功能. 下面我们就是要如何利用 MCS-51 的指令系统, 下面我们就是要如何利用 MCS-51 的指令系统,来 MCS 的指令系统 编写高效,充分利

2、用其特点的程序. 编写高效,充分利用其特点的程序.24.1 概述4.1.1 程序设计语言目前,用于程序设计的语言基本上分为三种: 目前,用于程序设计的语言基本上分为三种: 1. 机器语言 在单片机中, 表示的指令, 在单片机中,用二进制代码 表示的指令,数字和 符号简称为机器语言. 符号简称为机器语言.直接用机器语言编写的程序称为 机器语言程序. 机器语言程序. 缺点:程序不易看懂,不便于记忆,容易出错. 缺点:程序不易看懂,不便于记忆,容易出错.3程序设计语言 2. 汇编语言 用助记符表示的指令称为符号语言或汇编语言. 用助记符表示的指令称为符号语言或汇编语言. 汇编语言程序( 源程序) 需

3、要“ 汇编“ 汇编语言程序 ( 源程序 ) 需要 “ 汇编 “ ( 由专门的汇编 程序完成)才能转换成机器语言. 得到的机器语言程序称 程序完成 ) 才能转换成机器语言 . 为目标程序. 为目标程序. 特点: 特点: 是面向机器的语言,必须对硬件有一定的了解. 是面向机器的语言,必须对硬件有一定的了解. 助记符指令和机器指令一一对应. 助记符指令和机器指令一一对应. 能直接管理和控制硬件设备(功能部件). 能直接管理和控制硬件设备(功能部件)43. 高级语言 高级语言不受具体机器的限制, 高级语言不受具体机器的限制,都是参照一些数学语 言而设计的, 言而设计的,使用了许多数学公式和数学计算上的

4、习惯用 语,非常擅长于科学计算. 非常擅长于科学计算. 常用的高级语言,如 BASIC,FORTRAN,C 语言等. 常用的高级语言, BASIC,FORTRAN, 语言等. 特点: 特点: 通用性强,直观,易懂,易学,可读性好. 通用性强,直观,易懂,易学,可读性好. 计算机不能直接识别和执行.(需要进行编译) 计算机不能直接识别和执行. 需要进行编译) 发展很快. 发展很快.54.1.2 编制程序的步骤1.任务分析(硬件,软件系统分析) 1.任务分析(硬件,软件系统分析) 任务分析 2.确定算法和工作步骤; 2.确定算法和工作步骤; 确定算法和工作步骤 3.程序总体设计和流程图绘制 3.程

5、序总体设计和流程图绘制 关于流程图符号: 关于流程图符号: 开始,结束 开始,结束圆角矩形 圆角矩形 工作任务矩形 工作任务 矩形 判断分支菱形 菱形 判断分支 程序流向程序流向 程序连接程序连接6开始结束4.1.2 编制程序的步骤分配内存,确定程序与数据区存放地址; 4. 分配内存,确定程序与数据区存放地址; 编写源程序; 5. 编写源程序; 调试,修改,最终确定程序. 6. 调试,修改,最终确定程序.74.1.3 方法技巧模块化设计(按功能分:显示,打印, 1. 模块化设计(按功能分:显示,打印,输 入,发送等) 发送等) 尽量采用循环及子程序结构(节省内存) 2. 尽量采用循环及子程序结

6、构(节省内存)84.1.4 汇编语言的规范 汇编语言源程序由以下两种指令构成: 汇编语言源程序由以下两种指令构成:汇编语句(指令语句) 汇编语句(指令语句) 伪指令(指示性语句) 伪指令(指示性语句)汇编语句的格式: 汇编语句的格式:标号: 标号: 操作码 操作数 ;注释数据表示形式: 数据表示形式:二进制( ),十六进制(H),十进制(D 或省略) 二进制(B),十六进制(H),十进制(D 或省略), 十六进制(H) (D 或省略 ASCII 码 以单引号标识) ASCII 码(以单引号标识)9伪指令控制汇编用的特殊指令, 控制汇编用的特殊指令,这些指令不属于指 令系统,不产生机器代码. 令

7、系统,不产生机器代码. 通过使用伪指令向汇编程序发出指示信息, 通过使用伪指令向汇编程序发出指示信息, 告诉它如何完成汇编工作. 告诉它如何完成汇编工作. 伪指令具有控制汇编程序的输入输出, 伪指令具有控制汇编程序的输入输出,定义 数据和符号,条件汇编,分配存储空间等功能. 数据和符号,条件汇编,分配存储空间等功能.10常用的伪指令 ORG (Origin) 定位目的程序的起始地址. 定位目的程序的起始地址. 格式: 格式: ORG 表达式 如:ORG 0000H 注:表达式必须为 16 位地址值. 表达式必须为 16 位地址值. 16 位地址值 END 汇编语言程序结束伪指令. 汇编语言程序

8、结束伪指令. 一定放在程序末尾! 注:一定放在程序末尾!11常用的伪指令 EQUate) EQU (EQUate) 赋值伪指令. 赋值伪指令. 格式: 格式: 例: AA K1 字符名称 EQU 数值或汇编符号EQU 30H EQU 40H A, MOV A,AA MOV A,K1 A,(30H) ; (30H)A 40H) ;(40H)A12常用的伪指令 DB( yte) DB(Define Byte) 从指定单元开始定义(存储) 从指定单元开始定义(存储)若干个字节的 数据或 ASCII码字符,常用于定义数据常数表. ASCII 码字符 数据或 ASCII 码字符,常用于定义数据常数表.

9、格式: 格式:DB 例: ORG DB DB 字节常数或 ASCII 字符 字节常数或 ASCII 字符 ASCII1000H 34H,0DEH, A , B 34H,0DEH,“A“,“B“ 0AH,0BH, 0AH,0BH,2013常用的伪指令 DW( ord) DW(Define Word) 从指定单元开始定义(存储) 从指定单元开始定义(存储)若干个字的数据 ASCII 码字符 码字符. 或 ASCII 码字符. 格式: 格式:DW 例: ORG DW DW 字常数或 ASCII 字符 字常数或 ASCII 字符 2000H 1234H, B 1234H,“B“ 0AH, 0AH,20

10、14思考: (2000H)及其以后的地址单元中的内容是多少 及其以后的地址单元中的内容是多少? 思考: (2000H)及其以后的地址单元中的内容是多少?常用的伪指令 BIT 位地址符号指令. 位地址符号指令. 把位地址赋于规定的字符名称. 把位地址赋于规定的字符名称. 格式: 格式:字符名称 例: ABC QQ BIT BIT P1.1 P3.215BIT位地址4.2 汇编语言程序编辑和汇编 编辑(源程序, .ASM 扩展名存盘 扩展名存盘); 1. 编辑(源程序,以.ASM 扩展名存盘); 汇编(手工或机器汇编); 2. 汇编(手工或机器汇编); A,#88H;机器码 机器码 74 如:MO

11、V A,#88H;机器码 74 88 又如: 又如: 地址 目标码 源程序 ORG 1000H 1000H 74 7F MOV A,#7FH 1002H 79 44 MOV R1,#44H END164.3 程序设计基础与举例 4.3.1 顺序结构程序 org 1000h start:mov dptr,#2000h mov a,20h movc a,a+dptr mov 21h,a sjmp $ org 2000h table:db 0,1,4,9,16,25 end17例 1:变量存 变量存 在内部 RAM RAM 的 在内部 RAM 的 20H 单元中 单元中, 20H 单元中, 其取值范

12、围: 其取值范围: 05,编成, 5 编成, 查表法求其 平方值开始 表格首地址送 DPTR 变量送 A(20H) A 查平方表(A+DPTR) A 结果送 21H 单元:A 结束1821H例 2:将 20H 单元的压缩 20H (Packed )BCD 码拆成两个 BCD 码拆成两个 ACSII 码存入 21H 22H 单元 码存入 21 单元. ACSII 码存入 21H,22H 单元. BCD ASCII 0 30H 1 31H 2 32H 9 39H内部 RAM 内部 RAM22H 21H 20H3 3 66 9 919方法 1开始(20H)A 10HBA/B,A 中为高 位 BCD

13、码, 中为高 4 位 中为高 码 B 中为低 位BCD 码 中为低 4 位 中为低 码B+30HB B(21H) A+30HA A(22H)结束20周期数 1 2 4 2 2 1 1 13源程序 ORG MOV MOV DIV ORL MOV ORL MOV END 2000H A,20H A, B, B,#10H AB B, B,#30H 21H, 21H,B A,#30H A, 22H, 22H,A;除以 10H 除以 10H 10 BCD 码转换位 ASCII 码 码转换位 ASCII ;高4 位 BCD 码转换位 ASCII 码 ;低 4 位 BCD 码转换位 ASCII 码 BCD

14、码转换位 ASCII 码 码转换位 ASCII21开始方法 2:0 (21H) (20H)A A 与(21H)的低 4 位交换 (21H)+30H(21H) A 的高低半字节交换 A+30HA A(22H)结束22周期数1 1 1 1 2 1 1 1 9源程序ORG 2000H MOV R0,#21H , MOV R0,#0 , MOV A,20H , XCHD A,R0 , ORL 21H,#30H , SWAP A ORL A,#30H , MOV 22H,A , END;清 21H 单元 1H 单元 ;低 4 位 BCD 码送 21H 单元, BCD 码送21H 单元, 码送 21H 单

15、元 BCD 码转换位 ASCII 码 码转换位 ASCII ;低 4 位 BCD 码转换位 ASCII 码 ;高 4 位 BCD 码转换位 ASCII 码 BCD码转换位 ASCII 码 码转换位 ASCII234.3.2分支程序分支程序可根据要求无条件 或 条件地改变程序执行流 分支程序可根据要求 无条件或 条件地 改变程序执行流 无条件 编写分支程序主要在于正确使用转移指令 转移指令. 向 . 编写分支程序主要在于正确使用 转移指令 . 分支程序 单分支结构,双分支结构,多分支结构(散转) 有:单分支结构,双分支结构,多分支结构(散转) 条件成立? N Y N 条件成立?程序段 A 程序段

16、 AY程序段 A下条指令 单分支结构 双分支结构244.3.2分支程序分支程序可根据要求无条件或条件地改变程序执行流 编写分支程序主要在于正确使用转移指令. 向 . 编写分支程序主要在于正确使用转移指令 . 分支程序 单分支结构,双分支结构,多分支结构(散转) 有:单分支结构,双分支结构,多分支结构(散转) 0 1 程序段 0 程序段 1 K=?n 程序段 n多分支结构25例 1:设变量 x 以补码形式存放在片内 RAM 30H 单 设变量 x 以补码形式存放在片内 RAM 30H 单 元中,变量 y 与 x 的关系是: 元中,变量 y 的关系是:x, y = 20 H , x + 5, x0 x=0 x0 0 0,转移 MOV A,#05H ;x0,不转移 ADD A,30H MOV 30H,A SJMP ED NEXT:MOV 30H,#20H ED:SJMP $28根据 R7 的内容,转至对应的分支程序. R7 的内 R7 的内容 例 2 :根据 R7 的内容,转至对应的分支程序.设

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号