【2017年整理】4汇编语言程序设计.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【2017年整理】4汇编语言程序设计

第四章 汇编语言程序设计 4.1 程序设计过程 任务分析(硬件、软件系统分析) 确定算法和工作步骤, 程序总体设计和流程图绘制 分配内存及端口,确定程序与数据区存放地址 编制源程序 仿真、调试程序 固化程序 编程技巧 程序功能模块化(按功能分:显示、打印、输入、发送等) 尽量采用循环结构和子程序(节省内存) 多采用累加器来传递参数 注意现场保护,即压入堆栈 汇编语言的规范 4.2 顺序程序设计 例:求多项式 a2-b 解:设a存放在R2中,b存放在R3中,结果存放在R6和R7中。 4.3 分支程序设计 根据不同的条件转向不同的处理程序 控制转移指令 AJMP、LJMP、SJMP 、JMP JZ、JNZ、CJNE、DJNZ 位转移指令 JC、JNC、JB、JNB、JBC 举例:累加器A内有一个16进制ASCII字符,要求转换成一个16进制数存放于A。 ASCII字符转换成16进制数规则: 数字0~9 :只需减30H 字母A~F :减30H,再减7 散转程序—多分支程序 散转程序是指通过修改某个参数后,程序可以有三个以上的流向,多用于键盘程序。 常用的指令是JMP @A+DPTR 4.4 循环程序 循环程序的结构 置循环初值 循环体 修改控制变量,循环是否结束 结果处理 DEL: MOV R7,#200 ;1 μs DEL1:MOV R6,#123 ;1 μs NOP ;1 μs DEL2:DJNZ R6,DEL2 ;2μs,计(2×123)μs DJNZ R7,DEL1 ;2μs RET ;2μs 共计 [1+(1+1+2×123+ 2)×200+2] μs,即50.003ms MOV R0,#data MOV DPTR,#buffer LOOP0:MOV A,@R0 CJNE A,#24H,LOOP1 ;判断是否为‘ $ ’字符 SJMP LOOP2 ;是‘ $ ’字符,转结束 LOOP1:MOVX @DPTR,A ;不是‘ $ ’字符,执行传送 INC R0 INC DPTR SJMP LOOP0 ;传送下一数据 LOOP2:… … 例:200名学生参加考试,成绩放在89C51外部RAM XDATA开始的单元中,95~100分颁发A级证书,90~94分颁发B级证书,编一程序,统计获A、B级证书的人数。将结果存入内部RAM的两个单元。 ORG 0030H EG XDATA 1000H GA DATA 20H GB DATA 21H MOV GA,#00 MOV GB,#00 MOV DPTR,#EG MOV R2,#200 LOOP:MOVX A,@DPTR CJNE A,#95, LOOP1 4.5 查表程序 表格是事先存放在ROM中的,一般为一串有序的常数,例如平方表、字型码表等。 表格可通过伪指令DB来生成。 通过查表指令MOVC A,@A+DPTR MOVC A,@A+PC 来实现。 使用 MOVC A,@A+PC须注意: 1.??? 使用传送指令将关键字送入ACC 2.? ADD A, #DATA指令对A进行修改: PC+DATA=表格首地址 3.??? MOVC A,@A+PC 完成查表. 例 : MOV A, X ADD A,#01H MOVC A,@A+PC RET DB 00,01,04,09,10H,19H,24H,31H,30H… 例 设一巡回报警系统,对16路输入进行控制,现根据测量路数,找出每路的最大允许值。(若大于允许值就报警)。 (查找双字节表格) TB3: MOV A,R2 ;双字节表格,路数*2 ADD A,R2 MOV R3,A ADD A, #6 ;加偏移量6 MOVC A,@A+PC XCH

文档评论(0)

liangyuehong + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档