C51汇编语言程序设计

C51汇编语言程序设计

ID:39306255

大小:329.60 KB

页数:16页

时间:2019-06-30

C51汇编语言程序设计_第1页
C51汇编语言程序设计_第2页
C51汇编语言程序设计_第3页
C51汇编语言程序设计_第4页
C51汇编语言程序设计_第5页
资源描述:

《C51汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章80C51汇编语言 程序设计4.1概述4.1.1汇编语言程序设计的步骤①分析问题②确定算法③画出程序流程图④分配内存单元⑤编写汇编语言源程序⑥汇编语言程序的调试4.1概述4.1.2 汇编语言编程的注意事项①编写程序时应尽量使程序简短及缩短运行时间;②应尽量采用循环结构和子程序;③尽量少用无条件转移指令;④在设计程序时,还要考虑程序与数据的存放地址;⑤对于通用子程序,要考虑保护现场;⑥对于中断处理,除了保护处理程序中用到的寄存器外,还要保护程序状态字;⑦充分利用累加器。4.2基本结构程序设计程序设计的基本结构有:顺序结构、分支结构和循环结构。4.2.1顺序结

2、构程序例4-2将30H单元的2个BCD码拆开并分别存入到31H和32H单元中。解:方法一:先把30H中低4位BCD码交换出来,存入31H中,再把高4位BCD码交换到低4位存入32H中。4.2基本结构程序设计方法一:ORG0000HLJMPMAINORG0030HMAIN:MOVR0,#32HMOV@R0,#00HMOVA,30HXCHDA,@R0SWAPAMOV31H,ASJMP$END见4-2a方法二:ORG0000HLJMPSTARTORG0030HSTART:MOVA,30HANLA,#0FHMOV31H,AMOVA,30HANLA,#0F0HSWAPAM

3、OV32H,ASJMP$END见4-2b4.2基本结构程序设计4.2.2分支结构例4-4 两个单字节无符号数比较大小。设两个单字节无符号数分别存在内部RAM30H和31H单元中,找出其中的大数存入32H单元中。解:两个单字节无符号数比较大小的方法通常是做减法,然后根据是否产生借位判断大小。还有一点要注意:累加器A在减法运算前装的是被减数,减法运算后装的是差。思路框图如图4-3所示。4.2基本结构程序设计ORG0000HLJMPSTARTORG0030HSTART:MOVR0,#30HMOVA,@R0INCR0CLRCSUBBA,@R0JCBIG2ADDA,@R0

4、SJMPNEXTBIG2:MOVA,@R0NEXT:INCR0MOV@R0,ASJMP$END4.2基本结构程序设计例:4-5编程实现函数,已知(30H)=x,(31H)=y。1x>00x=0-1x<0解:算法:先判x=0,再判另外的两种情况。程序框图:程序:ORG0050HMOVA,30HJNZLOP1;x≠0转移MOV31H,#00HSJMPNEXTLOP1:JBACC.7,LOP2;x<0转移MOV31H,#01HSJMPNEXTLOP2:MOV31H,#0FFHNEXT:SJMP$ENDy=4.2基本结构程序设计例:4-6例:某单片机应用系统中有8个按键

5、,扫描后得到的键号,存放在R2中,8个按键的处理程序的入口分别为KEY0、KEY1、………..KEY7,请编写程序。解:根据已知条件得到以下框图:难点:无专用的多分支指令。解决方法:用散转指令和转移指令配合使用。4.2基本结构程序设计程序1:用AJMP和JMP程序KEY:MOVDPTR,#TAB;转移表的首址MOVA,R2RLAJMP@A+DPTRTAB:AJMPKEY0AJMPKEY1AJMPKEY2AJMPKEY3AJMPKEY4AJMPKEY5AJMPKEY6AJMPKEY7KEY0:……RETKEY1:……RET……KEY7:……RET4.2基本结构程序

6、设计程序2:用LJMP和JMP程序KEY:MOVDPTR,#TAB;转移表的首址MOVA,R2RLAADDA,R2JMP@A+DPTRTAB:LJMPKEY0LJMPKEY1LJMPKEY2LJMPKEY3LJMPKEY4LJMPKEY5LJMPKEY6LJMPKEY7KEY0:……RETKEY1:……RET……KEY7:……RET4.2基本结构程序设计4.2.3循环结构程序例:对内部RAM30H~3FH清零,请编程。解:ORG0000HLJMPSTARTORG0050HSTART:MOVR0,#30H;R0指向30HMOVR7,#16;设定循环次数LOP:MO

7、V@R0,#00HINCR0DJNZR7,LOPSJMP$END4.2基本结构程序设计例:4-10设计一个延时50ms的程序DEL:MOVR7,#200DEL1:MOVR6,#123NOPDEL2:DJNZR6,DEL2DJNZR7,DEL1RET4.2基本结构程序设计4.3子程序设计例:4-9已知(30H)=x,(31H)=y,(32H)=f,实现函数f小于255DL:MOVDPTR,#TABMOVCA,@A+DPTRRETTAB:DB00H,01H,04H,09H,10HDB19H,24H,31H,40H,51HDB64H,79H,90H,0A9HENDOR

8、G0000HAJMPST

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

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

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