




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计第四章第四章 汇编语言程序设计汇编语言程序设计汇编语言源程序编辑与汇编汇编语言源程序编辑与汇编汇编语言程序设计方法汇编语言程序设计方法 4.24.1华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计程序设计过程程序设计过程程序技巧程序技巧汇编语言规范汇编语言规范汇编语言程序编辑和汇编汇编语言程序编辑和汇编常用的流程图符号常用的流程图符号4.1 4.1 汇编语言源程序编辑与汇编汇编语言源程序编辑与汇编华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语
2、言程序设计任务分析(硬件、软件系统分析)任务分析(硬件、软件系统分析)确定算法和工作步骤确定算法和工作步骤程序设计过程程序设计过程程序总体设计和流程图绘制程序总体设计和流程图绘制分配内存及端口分配内存及端口,确定程序与数据区存放地址确定程序与数据区存放地址编制源程序编制源程序仿真、调试程序仿真、调试程序固化程序固化程序华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计程序功能模块化程序功能模块化(按功能分:显示、(按功能分:显示、打印、输入、发送等)打印、输入、发送等)尽量采用循环结构和子程序尽量采用循环结构和子程序(节省(节省内存)内存)12多采用累加器来
3、传递参数多采用累加器来传递参数注意现场保护,即压入堆栈注意现场保护,即压入堆栈34编程技巧编程技巧华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计汇编语言的规范汇编语言的规范1.1. 汇编语言源程序由以下两种指令构成汇编语言源程序由以下两种指令构成汇编语句(指令语句)汇编语句(指令语句)伪指令(指示性语句)伪指令(指示性语句)2.2. 汇编语句的格式:汇编语句的格式: 标号:标号: 操作码操作码操作数操作数;注释;注释3. 3. 数据表示形式:数据表示形式: 二进制(二进制(B B)、十六进制)、十六进制(H)(H)、十进制、十进制(D(D或省略或省略)
4、)、ASCIIASCII码(以单引号标识)码(以单引号标识) 华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计汇编语言程序编辑和汇编汇编语言程序编辑和汇编1. 1. 编辑编辑(源程序,以(源程序,以.ASM.ASM扩展名存盘);扩展名存盘);2. 2. 汇编汇编(手工或机器汇编);(手工或机器汇编); 如:如: MOV A,#88H;机器码;机器码74H,88H 又如:又如:地址地址 目标码目标码 源程序源程序 ORG 1000H 1000H 747F MOV A,#7FH 1002H 7944 MOV R1,#44H END华南农业大学工程学院华南农业大
5、学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计常用的流程图符号常用的流程图符号华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计顺序程序设计顺序程序设计分支程序设计分支程序设计循环程序设计循环程序设计查表程序设计查表程序设计子程序设计子程序设计4.2 4.2 汇编语言程序设计方法汇编语言程序设计方法华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计顺序程序设计顺序程序设计例:求多项式例:求多项式解:设解:设a存放在存放在R2中,中,b存放在存放在R3中,结果存放在中,结果存放在R6和和R7中。中。2yab程序如下
6、:程序如下: MOV A, R2 MOV B, A MUL AB CLR C SUBB A, R3 ;带进位减;带进位减 MOV R7, A ;保存低保存低8位位 MOV A, B SUBB A,#00H ;高八位减进位;高八位减进位 MOV R6, A END华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计分支程序设计分支程序设计 AJMP、LJMP、SJMP 、JMP JZ、JNZ、CJNE、DJNZ 根据不同的条件转向不同的处理程序根据不同的条件转向不同的处理程序控制转移指令控制转移指令 位转移指令位转移指令 JC、JNC、JB、JNB、JBC华南农
7、业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计例:累加器例:累加器A内有一个内有一个16进制进制ASCII字符,要求转换字符,要求转换成一个成一个16进制数存放于进制数存放于A。ASCII字符转换成字符转换成16进制数规则进制数规则:数字数字09 :只需减:只需减30H字母字母AF :减:减30H,再减,再减7START0C(A)-30H A(A) 50ms,因为没有考虑到除因为没有考虑到除DJNZ指令之外的其它指令的执行时间。指令之外的其它指令的执行时间。华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计DEL: MOV
8、R7,#200 ;1 sDEL1:MOV R6,#123 ;1 s NOP ;1 sDEL2:DJNZ R6,DEL2 ;2s,计(,计(2123)s DJNZ R7,DEL1 ;2s, RET 共计共计 (21232 2)200+1 s,即,即50.001ms华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计 MOV R0,#data MOV DPTR,#bufferLOOP0:MOV A,R0 CJNE A,#24H,LOOP1 ;判断是否为;判断是否为 $ 字符字符 SJMP LOOP2 ;是;是 $ 字符,转结束字符,转结束LOOP1:MOVX DP
9、TR,A ;非;非 $ 字符,执行传送字符,执行传送 INC R0 INC DPTR SJMP LOOP0 ;传送下一数据;传送下一数据 LOOP2: 二、先判断后执行二、先判断后执行例:将内部例:将内部RAM中起始地址为中起始地址为data的数据串传送到外部的数据串传送到外部RAM中起始地址为中起始地址为buffer的存储区域内,直到发现的存储区域内,直到发现$ 字符停止传字符停止传送。由于循环次数事先不知道,但循环条件可以测试到。所送。由于循环次数事先不知道,但循环条件可以测试到。所以,采用先判断后执行的结构比较适宜。程序段如下:以,采用先判断后执行的结构比较适宜。程序段如下:华南农业大学
10、工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计 例:例:200名学生参加考试,成绩放在名学生参加考试,成绩放在8031的外部的外部RAM的一的一个连续存储单元,个连续存储单元,95100分颁发分颁发A级证书,级证书,9094分颁发分颁发B级证书,级证书,编一程序,统计获编一程序,统计获A、B级证书的人数级证书的人数。将结果。将结果存入内部存入内部RAM的两个单元。的两个单元。 ORG 0030H EG DATA 1000H GA DATA 20H GB DATA 21H MOV GA,#00 MOV GB,#00 MOV DPTR,#EG MOV R2,#200LO
11、OP: MOVX A,DPTR CJNE A, #95, LOOP1 LOOP1: JNC NEXT1 CJNE A,#90,LOOP2LOOP2: JC NEXT INC GB SJMP NEXTNEXT1: INC GANEXT: INC DPTR DJNZ R2,LOOP SJMP $ END华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计查表程序设计查表程序设计 表格是事先存放在表格是事先存放在ROM中的,一般为一串有序的中的,一般为一串有序的常数,例如平方表、字型码表等。常数,例如平方表、字型码表等。 表格可通过伪指令表格可通过伪指令DB来确定。
12、来确定。 通过查表指令通过查表指令MOVC A,A+DPTR和和MOVC A,A+PC来实现。来实现。 用用DB、DW建立表格建立表格首地址送首地址送DPTR关键字送关键字送A查表:查表:MOVC A,A+DPTR华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计用查表法计算平方用查表法计算平方( (一一) ) ORG0000H MOVDPTR,#TABLE ;表首地址送表首地址送DPTR MOV A,#05 ;被查数字被查数字05A MOVCA,A+DPTR;查表求平方查表求平方 SJMP$ TABLE:DB 0,1,4,9,16,25,36,49,64,
13、81 END 华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计用查表法计算平方用查表法计算平方( (一一) ) 华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计 ORG0000H0000H MOVA, #05 ;05 A0002H ADDA, #02 ;修正累加器修正累加器A0004H MOVC A, A+PC;查表求平方;查表求平方0005H SJMP$ 0007H:DB0,1,4,9,16,25,36,49,64,81 END华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计使用
14、传送指令将关键字送入使用传送指令将关键字送入ACCADD A, #DATA指令对指令对A进行修改进行修改: : PC+DATA= =表格首地址表格首地址12MOVC A,A+PC 完成查表完成查表. .3使用使用 MOVC A,A+PC须注意须注意: :DATA=表格首地址表格首地址-指令地址指令地址-1华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计例例 : MOV A, XADDA,#01HMOVCA,A+PCRETDB00,01,04,09,10H,19H,24H,31H,30HDATA=表格首地址表格首地址-指令地址指令地址-1即:即:MOVC与与
15、DB之间的字节数之间的字节数华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计例例 设一巡回报警系统设一巡回报警系统, ,对对1616路输入进行控制路输入进行控制, ,现根据测量路数现根据测量路数, ,找出每路的最大允许值(若大于允许值就报警)。找出每路的最大允许值(若大于允许值就报警)。(查找双字节表格)(查找双字节表格)TB3:MOV A, R2 ADD A, R2MOV R3, A ADD A, #6 MOVCA, A+PC XCH A, R3 ADD A, #3 MOVC A, A+PC MOV R4, A RETTAB3: DW1520,3721,
16、4256 ;表格最大长度表格最大长度256 DW 华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计子程序设计子程序设计注意事项:注意事项:1. 1. 给子程序赋一个名字。实际为入口地址代号。给子程序赋一个名字。实际为入口地址代号。2. 2. 子程序调用子程序调用: ACALL、 LCALL 子程序返回子程序返回: : RETv 要能正确传递参数:要能正确传递参数: 入口条件:入口条件:子程序中要处理的数据如何给予。子程序中要处理的数据如何给予。 出口条件:出口条件:子程序处理结果如何存放。子程序处理结果如何存放。 (寄存器、存储器、堆栈方式)(寄存器、存储
17、器、堆栈方式)3. 3. 保护与恢复现场:保护与恢复现场: 保护现场:保护现场:压栈指令压栈指令PUSH 恢复现场:恢复现场:弹出指令弹出指令POP4. 4. 子程序可以嵌套子程序可以嵌套华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计主程序与子程序的关系主程序与子程序的关系华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计子程序的嵌套子程序的嵌套华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计子程序的调用与返回子程序的调用与返回华南农业大学工程学院华南农业大学工程学院第四章第四章
18、汇编语言程序设计汇编语言程序设计例例 :利用查表法求平方和:利用查表法求平方和 ,设,设a、b、c分别存于内部分别存于内部RAM的的DA、DB、DC三个单元中。三个单元中。 MOV A,DA;取取a ACALLSQR;调用查表子程序调用查表子程序 MOV R1,A;a的平方暂存的平方暂存R1中中 MOVA,DB;取取b ACALLSQR;调用查表子程序调用查表子程序 ADDA,R1 ;求出平方和暂存于求出平方和暂存于A中中 MOVDC,A;结果存于结果存于DC 中中 SJMP$SQR:MOVDPTR,#TAB;子程序子程序 MOVCA,A+DPTR RETTAB: DB0,1,4,9,16,2
19、5,36,49,64,81 END 22cab利用利用累加累加器或器或寄存寄存器传器传递参递参数数华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计参数传递方法参数传递方法 用累加器或工作寄存器来传递参数用累加器或工作寄存器来传递参数: : A、R0R7优点:优点:最简单,运算速度快。最简单,运算速度快。缺点:缺点:累加器和工作寄存器数量有限,不能传递累加器和工作寄存器数量有限,不能传递 太多参数。太多参数。 用指针寄存器来传递参数用指针寄存器来传递参数: :参数存放在内存参数存放在内存 用堆栈来传递参数用堆栈来传递参数 程序段参数传递(适于传递大量常数参数
20、)程序段参数传递(适于传递大量常数参数)华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计程序段参数传递程序段参数传递采用程序段参数传递的方法,编写字符串发送的子程序:采用程序段参数传递的方法,编写字符串发送的子程序: SOUT:POPDPH POP DPL SOT1: CLR A MOVCA,A+DPTR INCDPTR JZ SEND JNB TI , $ CLR TI MOV SBUF, A SJMP SOT1 SEND:JMP A+DPTR 串口发送中断标志位华南农业大学工程学院华南农业大学工程学院第四章第四章 汇编语言程序设计汇编语言程序设计以发送以发送MCS-51 CONTROLLER 为例,为例,说明该子程序的调用方法:说明该子程序的调用方法:ACALLSOUT DBMCS-51 CONTROLLER DB0AH,0DH,0换行键换行键回车键回车键以上子程序特点:以上子程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程项目居间服务合同
- 股份制文书关于企业股权结构调整方案
- 新农业科技成果转化实施方案
- 影视制作行业数字化制作与发行平台开发方案
- 珠宝首饰行业数字化管理与展示技术方案
- 土地复垦工程项目合同
- 金华浙江金华义乌市公证处招聘工作人员笔试历年参考题库附带答案详解
- 金华2025年浙江金华武义县教育系统招聘教师37人笔试历年参考题库附带答案详解
- 眉山2025年四川眉山职业技术学院编制内招聘辅导员5人笔试历年参考题库附带答案详解
- 淮北安徽淮北濉溪县城市管理局招聘城市管理协管员30人笔试历年参考题库附带答案详解
- 梅毒病人产后护理查房
- 小班-语言社会-幸福的“叮咚”-课件(基础版)公开课教案教学设计课件案例试卷
- 专业培训金蝶k3wise供应链系统培训
- 办公耗材采购 投标方案(技术方案)
- 《干部履历表》填写样式
- 汽车电气设备检测与维修中职全套教学课件
- 卡支付敏感信息管理实施细则
- Hadoop技术之大数据概念介绍课件
- 江苏省四星级高中评估标准及评价细则
- 超级面试官:快速提升识人技能的面试实战手册
- MFC Windows应用程序设计习题解答及上机实验
评论
0/150
提交评论