电子第7章汇编语言.ppt

电子第7章汇编语言.ppt

ID:52332241

大小:296.51 KB

页数:33页

时间:2020-04-04

电子第7章汇编语言.ppt_第1页
电子第7章汇编语言.ppt_第2页
电子第7章汇编语言.ppt_第3页
电子第7章汇编语言.ppt_第4页
电子第7章汇编语言.ppt_第5页
资源描述:

《电子第7章汇编语言.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章汇编语言程序设计教学目的:熟悉80C51系列单片机的汇编语言,能够熟练编写汇编语言源程序。教学重点:常用汇编语言程序设计方法。教学难点:分支程序、散转程序与子程序的设计7.1概述7.1.1汇编语言源程序的格式1.汇编语句格式[标号:]操作码[操作数][;注释]这4部份只有操作码段是必须具有的,其余部分为可选项,但对于包含操作数的指令,则操作数段也是必须具有的。例如:SU:MOVA,#0CDH;CDHA7.1.2汇编语言伪指令(1)ORG汇编起始指令规定目标程序的起始地址,格式如下:标号操作码操作数

2、ORG表达式(exp)(2)EQU赋值指令把操作数段中的地址或数据赋值给标号,格式如下:标号操作码操作数字符名称EQU数或汇编符号例1AAEQUR1;R1与AA等值则MOVA,AA指令与MOVA,R1指令结果相同。(3)DB定义字节指令定义程序存储器中存放的8位常数表,格式如下:(标号)操作码操作数DB字节常数或ASCII字符例2ORG1000HDB76H,73,‘C’,‘B’;在表示ASCII字符时要用‘’括号DBOACH则(1000H)=76H(1001H)=49H(1002H)=43H(1003H)

3、=42H(1004H)=0ACH(4)DW定义字指令定义程序存储器中存放的16位常数表格式DW<16位数据表>。例3ORG2200HDW1246H,7BH,10则(2200H)=12H(2201H)=46H(2202H)=00(2203H)=7BH(2204H)=00(2205H)=0AH(5)BIT定义位地址指令格式<字符名称>BIT<位地址>例4ABCBITP1.0Q4BITP2.2则汇编后,位地址P1.0,P1.2分别赋给变量ABC和Q4。(6)END汇编结束指令7.DATA定义标号数值伪指令它的功

4、能是给标号段中的数据地址标号赋以数值,也称为数据地址赋值指令。它的格式如下:字符名称DATA表达式例6M5DATA1A00H汇编后M5的值为1A00H。8.DS定义存储空间指令它的功能是从指定地址开始,定义一个存储区,保留由表达式指定的若干字节空间作为备用空间,这个存储区预留的存储单元数由DS表达式的值决定。它的格式如下:DS表达式表达式通常是一个常数。例7ORG500HDS10HDB4BH,5AH7.2顺序与循环程序设计7.2.1顺序程序设计例1将R5中的两个BCD码拆开并变成ASCII码,存入61H、

5、62H单元。解:在此采用把BCD数除以10H的方法,除后相当于把此数右移了4位,刚好把两个BCD码分别移到A、B的低4位。由于ASCII码的0~9为30H~39H。然后再各自与30H相或即变为ASCII码。源程序如下:ORG0000HLJMPMAIN……ORG30H;主程序起始地址MAIN:MOVA,R5MOVB,#10H;用10H作除数DIVABORLB,#30H;低4位BCD码变为ASCII码MOV62H,BORLA,#30H;高4位BCD码变为ASCII码MOV61H,ASJMP$;循环等待END7

6、.2.2循环程序设计1.循环初态(或称初始条件)循环初态是设置循环过程中工作单元的初始值。2.循环体重复执行的程序段部分。3.循环控制部分。用于控制循环的执行和结束。例2已知:80C51单片机使用的晶振为12MHz,要求设计一个软件延时程序,延时时间为20ms。解:延时程序的延时时间主要与两个因素有关,一个是所用晶振,一个是延时程序中的循环次数。一旦晶振确定之后,则主要是如何设计与计算需给定的延时循环次数。在本题中已知晶振为12MHz,则可知一个机器周期为1s,可预计采用单重循环是有可能实现1ms的延时

7、的。现根据题意编写源程序如下:周期数1MOVR0,#14H;毫秒数R01DL2:MOVR1,#MT;1ms延时的预定值MTR11DL1:NOP1NOP2DJNZR1,DL1;lms延时循环2DJNZR0,DL2;毫秒数减1,不等于0,继续循环,等于0结束例3从22H单元开始有一个无符号数据块,其长度在20H单元。求出数据块中最大值,并存入21H单元ORG200HCLRA;清A作为初始最大值MOVR2,20H;数据个数初值MOVR1,#22H;数据块首地址初值LP:CLRC;清进位SUBBA,@R1;最

8、大值减队列中数JNCNEXT;小于最大值继续SJMPNEXT1SUBBA,@R1;最大值减队列中数JNCNEXT;小于最大值继续SJMPNEXT1MOVA,@R1;大于最大值,则用此值代换NEXT:ADDA,@R1;小于最大值,则恢复NEXT1:INCR1;修改地址指针DJNZR2,LP;依次重复比较,直至R2=0MOV21H,A;最大值存入21H单元7.3分支程序设计7.3.1分支程序设计综述分支程序应用要点是正确使用转移指

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。