[工学]4 MCS-51汇编语言程序设计

上传人:1506****555 文档编号:228320351 上传时间:2021-12-22 格式:PPTX 页数:48 大小:11.26MB
返回 下载 相关 举报
[工学]4 MCS-51汇编语言程序设计_第1页
第1页 / 共48页
[工学]4 MCS-51汇编语言程序设计_第2页
第2页 / 共48页
[工学]4 MCS-51汇编语言程序设计_第3页
第3页 / 共48页
[工学]4 MCS-51汇编语言程序设计_第4页
第4页 / 共48页
[工学]4 MCS-51汇编语言程序设计_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《[工学]4 MCS-51汇编语言程序设计》由会员分享,可在线阅读,更多相关《[工学]4 MCS-51汇编语言程序设计(48页珍藏版)》请在金锄头文库上搜索。

1、第四章 MCS-51汇编语言(hu bin y yn)程序设计课件制作(zhzu):高惠芳第一页,共四十八页。 4.1 机器语言和汇编语言 指令系统:一台计算机所能识别、执行的指令的集合就是它的指令系统。 机器语言:指令系统是一套控制计算机执行操作的二进制编码,称为机器语言。机器语言指令是计算机唯一能识别和执行的指令。 汇编语言:指令系统是利用指令助记符来描述的,称为汇编语言。 计算机的指令系统一般都是利用汇编语言描述的,是由计算机硬件设计所决定的。指令系统没有通用性。 单片机一般是空机,未含任何系统软件。因此(ync)在第一次使用前,必须对其进行编程 4.1 单片机程序设计(chn x sh

2、 j)语言概述第二页,共四十八页。高级(goj)语言:BASIC、PL/M、C语言应用(yngyng)最广泛的是C语言优点: 可以大大提高单片机应用系统研制开发的效率 易移植,有助于打破不同(b tn)单片机之间的界限缺点:生成的目标程序代码较长,导致程序运行速度较慢第三页,共四十八页。4.1.2 汇编语言(hu bin y yn)指令格式与伪指令 1常用单位与术语 位(bit):位是计算机所能表示的最小的、最基本的数据单位,位通常是指一个二进制位。 字节(Byte):一个连续的8位二进制数码称为一个字节,即1Byte=8bit。 字(Word):通常由16位二进制数码组成,即1Word=2B

3、yte。 字长:字长是指计算机一次处理二进制数码位的多少。MCS-51型单片机是8位机,所以说它的字长为8位。 MCS-51系列(xli)单片机都是以Intel公司最早的典型产品8051为核心,增加了一定的功能部件后构成的。本章以8051为主介绍MCS-51系列(xli)单片机 。第四页,共四十八页。2汇编语言指令(zhlng)格式 指令格式:指令的表示方式称为指令格式,它规定了指令的长度和内部信息的安排。完整的指令格式如下:标号: 操作码 操作数 ,操作数 ;注释其中: 项是可选项。标号:指本条指令起始地址的符号,也称为指令的符号地址。代表该条指令在程序编译时的具体地址。操作码:又称助记符,

4、它是由对应的英文缩写(suxi)构成的,是指令语句的关键。它规定了指令具体的操作功能,描述指令的操作性质,是一条指令中不可缺少的内容。操作数:它既可以是一个具体的数据,也可以是存放数据的地址。注释:注释也是指令语句的可选项,它是为增加程序的可读性而设置的,是针对某指令而添加的说明性文字,不产生可执行的目标代码。第五页,共四十八页。 伪指令(也称为汇编程序的控制命令)是程序员发给汇编程序的命令,用来设置符号值、保留和初始化存储空间、控制用户程序代码的位置。 伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控制信息,不产生可执行的目标代码,是CPU不能执行的指令。(1)定位(dngwi)伪指令O

5、RG 格式:ORG n 其中:n通常为绝对地址,可以是十六进制数、标号或 表达式。 功能:规定编译后的机器代码存放的起始位置。 在一个汇编语言源程序中允许存在多条定位伪指令,但 每一个n值都应和前面生成的机器指令存放地址不重叠。 例如程序:ORG1000H START:MOVA,#20H MOV B,#30H 3伪指令 第六页,共四十八页。(2)结束汇编伪指令END 格式(g shi):标号: END 表达式 功能:放在汇编语言源程序的末尾,表明源程序的汇编到此结束,其后的任何内容不予理睬。(3)赋值伪指令EQU 格式:字符名称x EQU 赋值项n 功能:将赋值项n的值赋予字符名称x。程序中凡

6、出现该字符名称x就等同于该赋值项n,其值在整个程序中有效。赋值项n可以是常数、地址、标号(bioho)或表达式。在使用时,必须先赋值后使用。 “字符名称”与“标号”的区别是“字符名称”后无冒号,而“标号”后面有冒号。第七页,共四十八页。(4)定义字节伪指令DB 格式:标号: DB x1, x2, xn 功能:将8位数据(或8位数据组)x1, x2, xn顺序存放在从当前程序存储器地址开始的存储单元中。xi可以是8位数据、ASCII码、表达式,也可以是括在单引号内的字符串。两个数据之间用逗号(duho)“,”分隔。 xi为数值常数时,取值范围为00HFFH。xi为ASCII码时,要使用单引号,以

7、示区别。xi为字符串常数时,其长度不应超过80个字符。 例如:DB -2,-4,-6,10,11,17把6个数转换(zhunhun)为十六进制表示(即FEH,0FCH,0FAH,0AH,0BH,11H),并连续存放在6个程序存储单元中第八页,共四十八页。例如:存放数码管显示的十六进制数的字形码,可使用(shyng) 多条DB命令定义:第九页,共四十八页。(5)定义双字节伪指令DW 格式:标号: DW x1, x2, xn 功能:将双字节数据或双字节数据组顺序存放在从标号指定(zhdng)地址单元开始的存储单元中。其中,xi为16位数值常数,占两个存储单元,先存高8位(存入低位地址单元中),后存

8、低8位(存入高位地址单元中)。例如(lr):第十页,共四十八页。注意(zh y):DB和DW定义的数表,数的个数不得超过80个。如数据的数目较多时,可使用多个定义命令一般以DB来定义数据,以DW来定义地址第十一页,共四十八页。(6)预留存储空间伪指令DS 格式:标号: DS n 功能:从标号指定地址单元开始,预留n个存储单元,汇编时不对这些(zhxi)存储单元赋值。n可以是数据,也可以是表达式。(7)定义位地址符号伪指令BIT 格式:字符名称x BIT 位地址n 功能:将位地址n的值赋予字符名称x。程序中凡出现该字符名称x就代表该位地址。位地址n可以是绝对地址,也可以是符号地址。AQ BIT

9、P1.0第十二页,共四十八页。(8)数据地址赋值伪指令DATA 格式:字符名称x DATA 表达式n 功能:把表达式n的值赋值给左边的字符名称x。n可以是数据或地址,也可以是包含(bohn)所定义的“字符名称x”在内的表达式,但不能是汇编符号。 DATA与EQU的主要区别是:EQU定义的“字符名称”必须先定义后使用,而DATA定义的“字符名称”没有这种限制。所以,DATA伪指令通常用在源程序的开头或末尾。 第十三页,共四十八页。 4.2.1 手工编程和汇编 4.2.2 机器编辑和交叉汇编机器编辑:借助与PC机或开发器进行(jnxng)程序设计.其扩展名为*.asm交叉汇编:借助PC机运行汇编程

10、序将汇编语言转换成单片机能识别的机器码过程.4.2 单片机汇编语言源程序的编辑(binj)和汇编第十四页,共四十八页。4.3 单片机汇编语言(hu bin y yn)程序设计 设计步骤 1、拟定设计任务书 2、建立(jinl)数学模型 3、确定算法 4、分配内存单元,编制程序流程图 5、编制源程序 6、上机调试及程序优化第十五页,共四十八页。单片机汇编语言程序的基本(jbn)结构形式3种形式(xngsh)顺序(shnx)结构分支结构循环结构第十六页,共四十八页。4.3.1 顺序程序 顺序程序是最简单的程序结构,在顺序程序中既无分支(fnzh)、循环,也不调用子程序,程序执行时一条一条地按顺序执

11、行指令。第十七页,共四十八页。例4.3.1 将片内RAM 30H单元(dnyun)中的两位压缩BCD码转换成二进制数送到片内RAM 40H单元中.(P63)ORG 1000HSTART:MOV A, 30H ; 取两位BCD压缩(y su)码a1a0送AANL A, #0F0H ; 取高4位BCD码a1SWAP A ; 高4位与低4位换位MOV B, #0AH ; 将二进制数10送入BMUL AB ; 将10a1送入A中MOV R0, A ; 结果送入R0中保存MOV A, 30H ; 再取两位BCD压缩码a1a0送AANL A, #0FH ; 取低4位BCD码a0ADD A, R0 ; 求和

12、10a1+ a0MOV 40H, A ; 结果送入40H保存SJMP $ ; 程序执行完,“原地踏步”END第十八页,共四十八页。例4.3.2 将内部RAM中20H单元的压缩BCD码拆开,转换成相应(xingyng)的ASC码,存入21H、22H,高位存22H.(P64) ORG 1000HSTART:MOVA,20H ; 取压缩BCD码 ANLA,#0FH ; 取低位BCD码 ADD A,#30H ; 转换为低位ASCII码 MOV21H,A ; 保存低位ASCII码 MOV A,20H ; 重新取压缩BCD码 ANLA,#0F0H ; 分离高位(o wi)BCD码 SWAPA ; 得到高位

13、BCD码 ADD A,#30H ; 转换为高位ASCII码 MOV22H, A ; 保存高位ASCII码 SJMP$ END第十九页,共四十八页。补充(bchng)举例:三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、54H和55H单元中;要求把相加之和存放在50H、51H和52H单元中进位存放在位寻址区的20H单元最低位中(即20H.0)。分析: 除最低字节可以使用ADD指令之外,其它字节相加时要把低字节的进位考虑(kol)进去,因此使用ADDC指令.第二十页,共四十八页。MOV 00H,C#20H第二十一页,共四十八页。4.3.2 分支(

14、fnzh)程序设计分支程序(chngx)有三种形式(见P64,图4.3.2)一、单分支二、双分支三、多分支第二十二页,共四十八页。分支程序设计要点:1、先建立可供条件转移(zhuny)指令测试的条件2、选用合适的条件转移指令3、在转移的目的地址处设定标号第二十三页,共四十八页。分支程序是通过转移(zhuny)指令实现的一、单分支(fnzh)程序 使用条件(tiojin)转移指令实现,即根据条件(tiojin)对程序的执行进行判断,满足条件(tiojin)则进行程序转移,否则程序顺利执行。可实现单分支程序转移的指令有:JZ、JNZ、CJNE、DJNZ等还有以位状态作为条件进行程序分支的指令:JC

15、、JNC、JB、JNB和JBC等(1)单分支结构举例第二十四页,共四十八页。 例4.3.3 求符号函数的值。已知片内RAM的40H单元内有一自变量X,编制程序按如下条件(tiojin)求函数Y的值,并将其存入片内RAM的41H单元中。见P651 X00 X=0-1 X0AH。根据这个关系可以编出转换程序如下,程序以R1作为入口和出口。 ASCHIN: MOV A,R1 ;取操作数 CLR C ;清进位标志位C SUBB A,#30H ;ASCII码减去30H,实现0-9的转换 MOV R1,A ;暂存结果 SUBB A,#0AH ;结果是否9? JC LOOP ;若9则转换正确 XCH A,R

16、1 SUBB A,#07H ;若9则减37H MOV R1,A LOOP: RET第四十五页,共四十八页。4.3.5 查表程序设计(chn x sh j) 第四十六页,共四十八页。作业(zuy):8910第四十七页,共四十八页。内容(nirng)总结第四章 MCS-51汇编语 言程序设计 。机器语言:指令系统是一套控制计算机执行操作的二进制编码 ,称为机器语言。汇编语 言:指令系统是利用指令助记符来描述(mio sh)的,称为汇编语 言。字长:字长是指计算机一次处理二进制数码位的多少。一般以DB来定义数据,以DW来定义地址。程序中凡出现该 字符名称x就代表该位地址。机器编辑 :借助与PC机或开发器进行程序设计 .其扩展名为*.asm。重复执行一个程序段,使用条件转移指令通过条件判。10第四十八页,共四十八页。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

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