C51的汇编语言程序设计

C51的汇编语言程序设计

ID:39306298

大小:2.17 MB

页数:54页

时间:2019-06-30

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

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

1、第4章80C51的汇编语言程序设计程序编制的方法和技巧4.1源程序的编辑和汇编4.2基本程序结构4.3子程序及其调用4.4简单I/O设备的并口直接驱动示例4.52021/9/181单片机应用系统由硬件系统和应用程序构成汇编语言高级语言应用程序设计方法汇编语言,生成的目标程序占内存空间少、运行速度快,具有效率高、实时性强。高级语言,对系统的功能描述与实现简单,程序阅读、修改和移植方便,适合于编写复杂的程序。2021/9/1824.1程序编制的方法和技巧4.1.1程序编制的步骤明确任务:功能要求、技术指标运行环境调研任务分析将实

2、际问题转化为计算机处理的程序算法算法比较与优化(内存需求与运行速度)算法设计2021/9/183流程描述流程图符号“超级循环”框架2021/9/184强化模块观念使程序占用空间减少、结构清晰循环初值和结束条件,避免“死机”现象子程序的现场保护(注意栈平衡、寄存器内容)程序模块(主程序模块、各种子程序模块)模块化优点:分块设计、便于阅读、调试方便4.1.2程序编制的方法和技巧采用循环和子程序对中断子程序还有注意保护PSW的内容2021/9/1854.1.3汇编语言的语句格式非数字字符开头,后跟字母、数字、“-”、“?”等不能用

3、已定义的保留字(指令助记符、伪指令等)后跟英文冒号“:”Keil的汇编器A51可以识别的语句形式为:标号(即符号地址)[标号:]指令助记符[操作数1,][操作数2,][操作数3,][;注释]指令助记符是指令功能的英文缩写。2021/9/186数据:二进制(B)十进制(D或省略D)十六进制(H),注意A~F开头时要加“0”ASCII码,如‘A’,‘1245’符号:符号名、标号或“$”(PC的当前值)表达式:由运算符和数据构成(见表4.1)操作数注释英文分号“;”开头2021/9/187优先级运算符功能表达式及其结果示例高↓↓↓

4、↓↓↓↓低·()括号4*(5+6)即44NOT、HIGH、LOW取反、取高字节、取低字节NOT55H即AAH;HIGH1234H即12H+、-正号、负号+5、-6*、/、MOD乘、除(取商)、取余数17/5即3;17MOD5即2+、-加、减5+4即9;5-4=即1SHL、SHR左移、右移2SHL2即8;8SHR2即2AND、OR、XOR与、或、异或45HAND0FH即05H<、>、=、<>、<=、>=比较运算符MOVA,X>8;若X>8为真,则为MOVA,01H若X>8为假,则为MOVA,00H表4.12021/9/1884

5、.2源程序的编辑和汇编目标程序的产生过程如下图:2021/9/1894.2.1源程序的编辑和汇编源程序的编辑ORG0000HLJMPMAINORG0040HMAIN:MOVR7,#16MOVR0,#60HMOVA,#55HLOOP:MOV@R0,AINCR0DJNZR7,LOOPSJMP$END依据汇编语言规则用好伪指令符号不用中文SJMP$用于调试以.ASM存盘2021/9/1810源程序的汇编汇编源程序转为目标程序的过程叫汇编汇编通常在Windows下的集成开发环境完成用A51.EXE汇编生成.OBJ、.LIB及.LST

6、目标程序的连接.OBJ、.LIB经BL51.EXE生成无扩展名的绝对地址目标文件绝对地址目标文件可以用于仿真器调试调试无误的目标文件用OH51.EXE转换为.HEX文件.HEX文件经编程器写入单片机存储器2021/9/18114.2.2伪指令伪指令,也叫汇编命令。仅对汇编过程进行指示伪指令无对应的单片机可执行代码起始地址设定伪指令ORGORG表达式表达式通常为十六进制地址,例:ORG8000HSTART:MOVA,#30H……ORG可多次使用,但地址值的顺序要由小到大结束汇编伪指令ENDEND该伪指令位于源程序的最后一行。2

7、021/9/1812定义字节数据表伪指令DB定义字数据表伪指令DW1000H[标号:]DB字节数据表如:ORG1000HDB-2,-4,-6,8,10,18FEHFCHFAH08H0AH12H1001H[标号:]DW字数据表ORG1400HDATA1:DW324AH,3CH……1400H32H4AH00H3CH1401H1402H1403H大端模式2021/9/1813定义常值为符号名伪指令EQU符号名EQU常值表达式LENEQU10SUMEQU21HBLOCKEQU22HCLRAMOVR7,#LENMOVR0,#BLOCK

8、LOOP:ADDA,@R0INCR0DJNZR7,LOOPMOVSUM,A符号名为:地址常数段名字符串寄存器名位名比较:标号只能是地址2021/9/1814定义位地址为符号名伪指令BIT符号名BIT位地址表达式如:STBITP1.0;将P1.0的位地址赋给符号名STCFBIT0D7H;将位

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

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

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