51系列汇编语言程序设计.ppt
《51系列汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《51系列汇编语言程序设计.ppt(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、中南大学信息院自动化系第第五五章章MCS51汇编语言程序设计汇编语言程序设计刘建成刘建成14.1 4.1 汇编语言程序设计概述汇编语言程序设计概述&汇编语言是面向机器硬件的语言汇编语言是面向机器硬件的语言,要求程序设计者,要求程序设计者 对对MCS-51MCS-51单片机具有很好的单片机具有很好的“软、硬结合软、硬结合”的功底。的功底。&MCS-51单片机的编程语言可以是汇编语言也可以是高级语单片机的编程语言可以是汇编语言也可以是高级语言(如言(如C语言),高级语言编程快捷,但程序长,占用存储语言),高级语言编程快捷,但程序长,占用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存空间大,
2、执行慢;汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能。无论储空间小,执行快,能充分发挥计算机的硬件功能。无论是高级语言还是汇编语言,源程序都要转换成目标程序是高级语言还是汇编语言,源程序都要转换成目标程序(机器语言)单片机才能执行。(机器语言)单片机才能执行。2连接连接/定位器定位器L51汇编语言汇编语言源程序源程序汇编器汇编器A51符号转换程序符号转换程序OHS51绝对地址绝对地址目标程序目标程序.BINC语言程序语言程序浮浮动动地地址址目目标标程程序序编译器编译器C51HEX图图3-1两种语言源程序转换成目标程序两种语言源程序转换成目标程序1伪指令伪指令(
3、1)起始指令起始指令 ORG nn功能:定义程序或数据块的起始地址。功能:定义程序或数据块的起始地址。指示此语句后面的程序指示此语句后面的程序或数据块以或数据块以nn为起始地址,连续存放在程序存储器中。为起始地址,连续存放在程序存储器中。指令地址指令地址 机器码机器码源程序源程序 ORG 2000H 2000H 78 30 MAIN:MOV R0,#30H 2002H E6 MOV A,R0 ORG 3000H 3000H 23 TAB:DB 23H,100,A 3001H 64 3002H 414.4.2 2 伪指令伪指令与与汇编汇编程序基本格式程序基本格式(2)字节定义字节定义 标号:标号
4、:DB(字节常数,或字符或表达式)(字节常数,或字符或表达式)功功能能:指指示示在在程程序序存存储储器器中中以以标标号号为为起起始始地地址址的的单单元里存放的数为字节数据(八位二进制数)。元里存放的数为字节数据(八位二进制数)。例例如如 LN:DB 32,C,25H,-1;LNLN+2 地地址单元依次存放址单元依次存放20H,43H,25H,FFH地址地址数据数据LN20LN+143LN+225LN+3FF(3)字定义字定义 标号:标号:DW(字常数或表达式)(字常数或表达式)作用:作用:指示在程序存储器中以标号为起始地址指示在程序存储器中以标号为起始地址的单元里存放的数为字数据(即的单元里存
5、放的数为字数据(即16位的二进制数),位的二进制数),例如:例如:GH:DW 1234H,5678H,08GH1234GH+25678GH+40008(5)等值指令等值指令 标号标号 EQU(数值表达式)(数值表达式)表示表示EQU两边的量等值,用于为标号或标识符赋值。两边的量等值,用于为标号或标识符赋值。例如:例如:X1 EQU 2000H X2 EQU 0FH MAIN:MOV DPTR,#X1 ;DPTR=2000H ADD A,#X2 ;A=A+0FH(4)保留字节保留字节标号:标号:DS(数值表达式)(数值表达式)作用:作用:指示在程序存储器中保留以标号为起始地指示在程序存储器中保留
6、以标号为起始地址的若干字节单元,其单元个数由数值表达式指定。址的若干字节单元,其单元个数由数值表达式指定。例如例如L1:DS32;从从L1地址开始保留地址开始保留32个存储单元。个存储单元。(6)位定义位定义 标号标号 BIT 位地址位地址 作用:作用:同同EQU指令,不过定义的是位操作地址。指令,不过定义的是位操作地址。例如例如 AIC BIT P1.1(7)汇编结束汇编结束 END作用:作用:指示源程序段结束。指示源程序段结束。END指令放在程序的最后。指令放在程序的最后。A51汇编程序还有一些其它的伪指令。汇编程序还有一些其它的伪指令。2 2、汇编汇编程序基本格式程序基本格式(1)汇编语
7、言的语句格式 :;(2)汇编程序的一般格式 ORG XXXXH 汇编语句1 汇编语句N END返回本节8第四章第四章 MCS MCS5151汇编语言程序设计汇编语言程序设计本章介绍以下内容本章介绍以下内容汇编语言程序设计概述汇编语言程序设计概述汇编语言伪指令汇编语言伪指令源程序的编辑和汇编源程序的编辑和汇编汇编语言程序基本结构形式汇编语言程序基本结构形式程序设计举例程序设计举例9汇编语言程序基本结构形式汇编语言程序基本结构形式&按结构化程序设计思想,任何复杂程序都可由顺序结构、分支结构、循环结构等构成 10顺序结构&不同的操作顺序执行,没有分支、循环、子程序调用。&多字节无符号数相加&整个系统
8、流程就是顺序结构11顺序程序设计 顺序结构程序是一种最简单、最基本的程序(也称为简单程序),它是一种无分支的直线形程序,按照程序编写的顺序依次执行。【例】两个8位无符号数相加,和仍为8位。假设两个无符号数X1,X2分别存放于内部RAM60H、61H单元中,求其和并将和送入62H单元。程序如下:ORG0000HCLRCMOVR0,#60H;设R0为数据指针MOVA,R0;取X1INCR0ADDCA,R0;X1+X2INCR0MOVR0,A;保存结果END12&由于MCS-51指令系统中只有单字节加法指令,因此对多字节相加时运算,必须从低位字节开始分字节进行。&最低字节可以使用ADD指令&其它字节
9、相加时要把低字节的进位考虑进去因此应使用ADDC指令。顺序程序设计 13 【例】两个无符号双字节数相加。设被加数存放在内部存储器30H(高位字节)、31H(低位字节)单元,加数存放在内部存储器40H(高位字节)、41H(低位字节)单元,和存入30H(高位字节)、31H(低位字节)单元。ORG0000HCLRC;将C清零MOVR0,#31H;送被加数首址MOVR1,#41H;送加数首址MOVA,R0;取被加数低字节ADDA,R1;两个低字节相加MOVR0,A;低字节和存人被加数低字节DECR0;修改指针,指向被加数高字节DECR1;修改指针,指向加数高字节MOVA,R0;取被加数高字节ADDCA
10、,R1;高字节相加MOVR0,A;存结果END顺序程序设计 14&没有专门循环指令&通过条件判断控制循环&区分先执行后判断先判断后执行循环控制15循环程序设计循环程序一般由4部分组成。(1)置循环初值。(2)循环体。(3)循环修改。(4)循环控制。图(a)结构是“先执行后判断”,适用于循环次数已知的情况。图(b)结构是“先判断后执行”,适用于循环次数未知的情况。16循环程序设计17多字节无符号数相加设被加数与加数分别在以ADR1与ADR2为初址的片内数据存储器区域中,自低字节起,由低到高依次存放;它们的字节数为L,要求加得的和放回被加数的单元。18参考程序如下MOVR0,#ADR1MOVR1,
11、#ADR2MOVR2,#LCLRCLOOP:MOVA,R0;通过R0间址,取得被加数的一;个字节ADDCA,R1;通过R1间址,取得加数的一个字;节,与被加数的相应字节相加MOVR0,A;加得的和通过R0间址放回原被;加数单元INCR0;修改指针,指向下一个相加的数INCR1DJNZR2,LOOP;循环实现多字节数相加19分支程序&程序分支是通过条件转移指令实现的,即根据条件对程序的执行进行判断,满足条件则进行程序转移,不满足条件程序就顺序执行。&在MCS-51指令系统中,通过条件到断实现单分支程序转移的指令有JZ、JNZ、CJNE和DJNZ等。&此外还有以位状态作为条件进行程序分支的指令,如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 系列 汇编语言 程序设计
限制150内