2022年单元汇编语言程序设计( .pdf

上传人:C****o 文档编号:33681961 上传时间:2022-08-12 格式:PDF 页数:8 大小:76.50KB
返回 下载 相关 举报
2022年单元汇编语言程序设计( .pdf_第1页
第1页 / 共8页
2022年单元汇编语言程序设计( .pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2022年单元汇编语言程序设计( .pdf》由会员分享,可在线阅读,更多相关《2022年单元汇编语言程序设计( .pdf(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、单元四汇编语言程序设计一、学习目标与要求1、了解汇编语言程序结构2、掌握分支程序、循环程序、子程序、查表程序的设计方法3、了解常用伪指令及其使用方法二、本章重点内容1、单片机程序设计中常用伪指令伪指令不是真正的指令,它只向编译程序提供编译信息,而不产生机器代码。常用伪指令有:(1)标号等值伪指令EQU 格 式:标号: EQU 表达式指令的含义为本语句的标号等值于表达式,亦即将表达式值赋予标号。这里的标号和表达式是必不可少的。(2)数据存储说明伪指令数据存储说明伪指令的作用是将数据存储在程序存储器单元中。 定义字节数据伪指令DB 格 式:标号: DB 表达式或表达式串定义字数据伪指令DW 格 式

2、:标号: DW 表达式或表达式串(3)程序起始地址伪指令ORG 格 式:ORG 表达式(4)汇编结束伪指令END 格 式 1:标号: END 表达式格 式 2:标号: END 或者 END 2、程序设计(1)分支程序条件转移指令是指分支程序产生的原因,条件转移指令执行时,如果转移条件(yes)程序转向一个分支,如果不转移条件(no)程序转向是一个分支。(2)循环程序任何计算机程序都不可能是无限长的顺序程序,程序总是根据不同的条件不断循环的转移执行的。将循环程序从结构上分成循环初始化,循环体,循环修改和循环结构四个部分,是为了便于理解。实际应用时应视具体问题灵活应用。名师资料总结 - - -精品

3、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - (3)子程序采用子程序结构的程序设计最大的好处是优化了程序设计,将可局部独立处理的问题编写成子程序,可供主程序反复多次调用,它将复杂的运标或检制问题,细分成许多小的事件进行处理,这种主程序调用子程序的结构形式被称为模块式的结构形式。(4)查表程序数学变量与函数之间的关系是一种确定的关系,可以用数学表达式表示,计算机编程时,可根据变量及与函数的关系式计算出函数值。但有的变量与函数之间的关系不能用数学表达式表示,

4、如七段数码显示代码(函数)与显示字符(变量)就是这样。它们之间只能用表格形式建立函数关系,单片机程序设计中的查表程序就是解决这类问题。当然有确定数学关系的数学变量也可以用查表程序求函数值。三、本章内容的前后联系1、与前面内容的联系(1)单片机指令系统是学习本章的基础,也就是说,要想编好程序首先必须学好指令。(2)单片机的内部结构也是本章的基础,单片机的工作是建立在程序存储的基础上,但是程序的执行还必须依赖单片机的硬件资源,这就涉及到了单片机的内部结构。2、与后面内容的联系单片机的汇编语言程序设计,是单片机应用系统程序设计的基础,所以,在学习本章时,应该以应用系统程序开发为目的。认真掌握典型结构

5、化程序设计方法。四、学习方法指导1、单片机汇编语言程序设计,对初学者来说,不是很容易掌握,特别是它的编程和单片机内部资源密切相关,所以,在学习编程之前,一定要掌握单片机的内部资源及其单片机结构。2、为了真正理解程序执行过程,必须先理解指令的执行过程,所以,学习本章时首先应该建立一个概念:程序是指令的集合。3、要注意一开始学习编程就养成一个比较好的习惯:先画流程图、后写指令;程序按结构化设计。五、典型例题分析【例题4.1 】拆字程序。将一个字节的两个BCD码十进制数拆开并变成相应的ASCII码,并存入两个RAM 单元中。设两个 BCD码(一个字节)已存入在内部RAM 的 30H单元中,变换后的A

6、SCII 码分别存放在 31H 和 32H 单元,且高位BCD码的 ASCII 码的 ASCII 码存于31H 单元。数字09 的ASCII 为 30H39H ,完成拆字转换只需将一个字节的两个BCD码拆开存放在另两个单元的低4 位,并在其高4 位赋以 0011 即可。程序段清单如下:MOV R0,#32H ;将 32H单元地址送R0名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - MOV R0,#00H ;32H单元清 0 MO

7、V A,30H ;将 30H单元中的 BCD送 A XCHD A, R0;将低位 BCD码送 32H单元ORL 32H ,#30H ;完成低位BCD码转换SWAP A ;将高位 BCD码交换到低位ORL A,#30H ;完成高位 BCD码转换MOV 31H,A ;将高位 BCD的 ASCII 码存入 31H 上述程序段完成了将一个字节的BCD码转换成两个ASCII 码的功能。共需占用15 个程序存储器字节单元,用9 个机器周期执行完毕。【例 4.2 】双字节加法程序段。设被加数存放在内部矛盾RAM的 31H、32H单元,低位字节在前,加数存入于34H、35H单元(低字节在前),结果和存放于31

8、H、32H、33H单元中。其程序段清单如下;STRT :PUSH A ;将 A内容进栈保护MOV R0,#31H ;将地址码送R0和 R1MOV R1,#34H MOV 33H,#00H ;将 33H单元清 0,存放和的最高字节数MOV A, R0;两低字节数相加ADD A , R1MOV R0,A ;低字节和存于31H单元INC R0;地址数分别加1 INC R1MOV A, R0;连用低位进位进行高字节数ADDC A, R1;相加MOV R0,A ;高字节和存于32H单元INC R0;R0指针指向 33H单元MOV A,#00H ;清 A为 0 ADDC A,#00H ;求高字节和的进位M

9、OV R0,A ;将高字节进位存于33H单元POP A ;恢复 A原内容【例题4.3 】由累加器A 在动态运行中给出的结果值选择对应的转移指令,其对应关系为:(A)=0,转向分反处理程序0 (A)=1,转向分支处理程序1 (A)=n,转向分支处理程序n 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 一般转移指令均无条件转移指令,而AT89S52有两条无条件转移指令:AJMP 和 LJMP 。前者为双字节指令,后者为三字节指令,

10、因此,需视选用何种跳转指令而应对A 中值作相应变换。如选用AJMP指令,则应对A 值变换成偶数值;如选用LJMP指令,则应对A 值乘 3 的变换。每个分支处理程序均为各自独立的等程序段,分散在各自的程序存储器区段。要皮,必须有一个中转站,轩向各自的分支处理程序。这个无条件转移指令串的首地址由DPTR指示。现以AJMP 为例,其程序段如下:START : MOV DPTR,#addr16;跳转指令串首址送DPTR CLR C ;清 C为 0 RLC A ;将 A值变换成偶数 JNC TABEL ;判( C)=0?不为 0 则转 INC DPH ;( C)=1,则 DPH内容 +1 TABEL :

11、 JMP A+DPTR ;散转,ADDR16 : AJMP LOOP0 ;无条件转移指令串 AJMP LOOP1 , AJMP LOOPn LOOP0 :,;分支程序段0 ,LOOP1 :,;分支程序段1 ,由于上例选用绝对值转移指令AJMP 是双字节指令,因此,要求A中内容必须换算成偶数。换算方式可以乘2,而这里采用左移一位的办法来实现。如果n 值等于或大于128,则左移一位将产生高位进位,将进位值加到DPH中去,等于将转移指令串首址延伸256 个存储单元,所以在程序段中对C进行测判。这样,保证分支处理程序段可以在0-255 个中任选。如果选用长调用LJMP ,它是怎么样三字节指令,在进A

12、值换算时应乘3 处理,将积的高字节值加到 DPH中去。一般, DPTR+A 的最终值应不超过64KB范围。【例题 4.4 】数据块搜索设外部 RAM从 BLOCK单元开始有一个无符号数据块,其长度(即数据块个数)存于LEN单元,试求出数据块最大值数据,并存于MAX 单元中。寻找最大值的方法很多,最基本的方法是比较和交换依次进行,即先读取第一个数与第二个数相比较,并把前一个数作为基准。比较结果:若基准数在,则不作交换,再取下一个数进行比较;若基准数小,则将大数取代原基准数,即作一次交换,然后再以新的基准数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -

13、 - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - 与下一个数作比较,直到全部比较完毕。基准数始终保持为最大数值。图7.6为数据块搜索流程图。设 R1中存放基准数,R3为数据长度, R2中存放每次读出的新的数据块。其循环程序段如下;START :CLR A ;A清 0 CLR R1;清 R1为 0 MOV R3,LEN ;数据块长度送R3作控制计数LOOP :MOVX A , DPTR ;读数据块INC DPTR 指向下一个单元MOV R2,A ;将读出的灵敏据块送R2CLR C ;清 C为 0 MOV A ,R1;基准值

14、送A SUBB A,R2;基准数一读出数JNC NEXT ;(C) =0,即( A)( R2),跳转MOV R1,A NEXT :DJNZ R3LOOP ;判搜索完否MOV MAX ,R1;最大数据存入MAX 单元END ;结束六、自我检查题1、下列程序段经汇编后,从2000H开始的各有关存储单元的内容将是什么? ORG 2000H TAB: DS 5 DB 10H,10 DW 2100H ORG 2050H DW TAB DB WORK”2、下列程序段经汇编后,从1000H开始的各有关存储单元的内容将是什么? ORG 1000H TABl: EQU 1234H TAB2: EQU 3000H

15、 DB “ START ” DW TABl,TAB2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 3、若在片内RAM 30H单元中有2 位压缩的BCD码 95H ,问执行下列程序后,片内RAM 30H单元的内容是什么?31H、32H的内容又是什么? MOV R0 ,#30H MOV A ,R0 ANL A,#OFH MOV R3 ,A MOV A ,R0 SWAP A ANL A,#0FH ADD A ,R3 DA A MO

16、V R0,A MOV R3 ,A INC R0 ANL A,#0FH MOV R0,A INC R0 MOV A ,R3 ANL A, #0FOH SWAP A MOV R0,A RET 4、试编程:有两双字节压缩的BCD码数相加,设该两待加数分别按先低后高原则存放在30H、31H和 40H、 4lH 单元,和要求放回30H、3lH 单元。5、试编程:将累加器A 内容低4 位送片外RAM 7AH单元,高4 位送片外RAM 7BH单元, ?AH 、7BH单元的高 4 位均清零。6、由累加器A在动态运行中给出的结果数值选择对应的转移指令,其对应关系为:(A)=0,转向分反处理程序0 (A)=1,转

17、向分支处理程序1 (A)=n,转向分支处理程序n 七、自我检查题答案1、在程序存储器中从2000H 单元开始到2004H 单元分别存放5、10H、10、21H、00H 。在程序存储器中从2050H 单元开始到2055H 单元分别存放5、10H、“”、“”、“”、“”。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - 2、在程序存储器中从1000H 单元开始到1008H 单元分别存放“S”、“ T”、“ A”、“R”、“ T”、 1

18、2H、34H、30H、00H。3、( 30H)=14H、( 31H) =04H 、( 32H)=01H。4、START :MOV R0 ,#30H MOV R1,#31H MOV A,R0 ADD A,R1 DA A MOV R0,A INC R0 INC R1 MOV A,R0 ADDC A,R1 DA A MOV R0,A RET 5、 START : MOV B ,A MOV R0,#7AH ANL A,#0FH MOVX R0,A INC R0 MOV A,B SWAP A ANL A,#0FH MOVX R0,A RET 6 、START : MOV DPTR ,#TAB ;跳转指令

19、表首址送DPTR CLR C ;清 C为 0 RLC A ;将 A值变换成偶数 JNC TABEL ;判( C)=0?不为 0 则转 INC DPH ;( C)=1,则 DPH内容 +1 TABEL : JMP A+DPTR ;散转,ADDR16 : AJMP LOOP0 ;无条件转移指令串名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - AJMP LOOP1 , AJMP LOOPn LOOP0 : ,;分支程序段0 ,LOOP1 : ,;分支程序段1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -

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

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com