2017-3-16 1第4章80C51 的汇编语言程序设计程序编制的方法和技巧 源程序的编辑和汇编 基本程序结构 子程序及其调用 简单 I/O 设备的并口直接驱动示例 2017-3-16 2 单片机应用系统由硬件系统和应用程序构成汇编语言高级语言应用程序设计方法汇编语言,生成的目标程序占内存空间少、运行速度快,具有效率高、实时性强。高级语言,对系统的功能描述与实现简单,程序阅读、修改和移植方便,适合于编写复杂的程序。 2017-3-16 3 程序编制的方法和技巧 程序编制的步骤明确任务:功能要求、技术指标运行环境调研任务分析将实际问题转化为计算机处理的程序算法算法比较与优化(内存需求与运行速度) 算法设计 2017-3-16 4 流程描述流程图符号“超级循环”框架 2017-3-16 5 强化模块观念使程序占用空间减少、结构清晰循环初值和结束条件,避免“死机”现象子程序的现场保护(注意栈平衡、寄存器内容) 程序模块(主程序模块、各种子程序模块) 模块化优点:分块设计、便于阅读、调试方便 程序编制的方法和技巧采用循环和子程序对中断子程序还有注意保护 PSW 的内容 2017-3-16 6 汇编语言的语句格式非数字字符开头,后跟字母、数字、“-”、“?”等不能用已定义的保留字(指令助记符、伪指令等) 后跟英文冒号“:” Keil 的汇编器 A51 可以识别的语句形式为: 标号(即符号地址) [标号:] 指令助记符[操作数 1,] [ 操作数 2,] [ 操作数 3,] [; 注释] 指令助记符是指令功能的英文缩写。 2017-3-16 7 数据:二进制( B) 十进制( D或省略 D) 十六进制( H),注意 A ~F 开头时要加“0” ASCII 码,如‘A’,‘1245 ’?符号:符号名、标号或“$”(PC的当前值) ?表达式:由运算符和数据构成(见表 ) 操作数注释英文分号“;”开头 2017-3-16 8 优先级运算符功能表达式及其结果示例高↓↓↓↓↓↓↓低· () 括号 4*( 5+6 )即 44 NOT 、 HIGH 、 LOW 取反、取高字节、取低字节 NOT 55H 即 AAH ; HIGH 1234H 即12H +、- 正号、负号+5、- 6 *、/、 MOD 乘、除(取商)、取余数 17 / 5 即3; 17 MOD 5 即2 +、- 加、减 5 +4 即9;5-4 = 即1 SHL 、 SHR 左移、右移 2 SHL 2 即8; 8 SHR 2 即2 AND 、 OR 、 XOR 与、或、异或 45H AND 0FH 即05H <、>、=、<> 、<= 、>= 比较运算符 MOV A,X>8 ; 若 X>8 为真,则为 MOV A,01H 若 X>8 为假,则为 MOV A,00H 2017-3-16 9 源程序的编辑和汇编目标程序的产生过程如下图: 2017-3-16 10 源程序的编辑和汇编 0000H LJMP 0040H MAIN:MOV R7,#16 MOV R0,#60H MOV A,#55H LOOP:MOV ***@R0,A INC R0 DJNZ R7,LOOP SJMP $ END 依据汇编语言规则用好伪指令符号不用中文 SJMP $ 存盘
80C51的汇编语言设计解答 来自淘豆网www.taodocs.com转载请标明出处.