- 1、本文档共109页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 AT89S51汇编语言程序设计 ORG 0100H MOV R0, #0BH ;设待查十六进制数为B MOV A, R0 ;读数据 ANL A, #0FH ;屏蔽高4位 MOV DPTR, #TAB ;置表格首地址 MOVC A, @A+DPTR ;查表 MOV R0, A ;回存 SJMP $ ORG 1000H TAB:DB 30H, 31H, 32H, 33H, 34H DB 35H, 36H, 37H, 38H, 39H ;0~9的ASCII码 DB 41H, 42H, 43H, 44H, 45H, 46H ;A~F的ASCII码 END 当待查十六进制数为B时,本例执行结果为42H。 2.以PC为基址的查表指令的编程 当用PC作基址寄存器时,基址PC是当前程序计数器的内容,即查表指令的下条指令的首地址。查表范围是查表指令后256个字节的地址空间。由于PC本身是一个程序计数器,与指令的存放地址有关,所以查表操作有所不同。查表的步骤分三步: (1) 变址值(要查表中的项数与表格首地址之间的间隔字节数)→A; (2) 修正量(查表指令下一条指令的首地址到表格首地址之间的间隔字节数)+A→A; (3) 执行MOVC A, @A+PC指令。 【例4-8】用查表指令MOVC A, @A+PC编程指令实现【例4-7】的功能。 ORG 0100H MOV R0, #07H ;设待查十六进制数为7 MOV A, R0 ;读数据 ANL A, #0FH ;屏蔽高4位 ADD A, #03H ;加上修正量 MOVC A, @A+PC ;查表 MOV R0, A ;回存,本指令字节数为1 SJMP $ ;本指令字节数为2 TAB:DB 30H, 31H, 32H, 33H, 34H ;0~9的ASCII码 DB 35H, 36H, 37H, 38H, 39H DB 41H, 42H, 43H, 44H, 45H, 46H ;A~F的ASCII码 END 当待查十六进制数为07H时,则本例执行结果为37H。 3.查表指令的用法和计算修正量时应注意的问题 【例4-9】设计一个子程序,功能是根据累加器A中的数 x(0~15之间) 查 x 的平方表 y 。本例中的 x 和 y 均为单字节数。 ?? 地 址 子程序 Y3Y2Y1Y0 ADD A, #01H ;加修正量 Y3Y2Y1Y0+2 MOVC A, @A+PC Y3Y2Y1Y0+3 RET Y3Y2Y1Y0+4 DB 00, 01, 04, 09, 16 ;数0~15的平方表 DB 25, 36, 49, 64, 81 DB 100, 144, 169, 196, 225 指令“ADD A, #01H”的作用是A中的内容加上“01H”,“01H”即为查表指令与平方表之间的“RET”指令所占的字节数。加上“01H”后,可保证PC指向表首地址,累加器A中原来的内容仅是从表首开始向下查找多少个单元。 在进入程序前,A的内容在0~15之间,如A中的内容为04H,它的平方值为16,可根据A的内容查出 x 的平方。 “MOVC A, @A+DPTR” 指令应用范围较广,使用该指令时不必计算修正量。优点是表格可以设在64KB程序存储器的任何地方,而不像“MOVC A, @A+PC”那样只设在PC下面的256个单元中,所以使用较方便。该指令的缺点是如果DPTR已被使用,则在查表前必须保护DPTR,且在查表结束后再恢复DPTR。例4-9可改成如下形式: SQUARE: PUSH DPH ;保存DPH PUSH DPL ;保存DPL ?? MOV DPTR, #TAB1 MOVC A, @A+DPTR POP DPL ;恢复DPL POP DPH ;恢复DPH RET TAB1: DB 00, 01, 04, 09, 16 ;数0~15的平方表 DB 25, 36, 49, 64, 81 DB 100, 144, 169, 196, 225 实际查表,有时 x 为单字节数, y 为双字节数。采用下例实现查表。 【例4-10】有一巡回检测报警装置,需对16路输入进行检测,每路有一个最大允许值,为双字节数。装置运行时需根据测量的路数 x,查表找出对应该路的
您可能关注的文档
- 单片机原理及应用(C语言版)周国运电子教案 单片机原理及应用 C语言版 9.ppt
- 单片机原理及应用(基于C语言) 教学课件 作者 吴政江张定祥 编著 第1章 单片机基础知识.ppt
- 单片机原理及应用(基于C语言) 教学课件 作者 吴政江张定祥 编著 第2章 MCS 51单片机的基本结构.ppt
- 单片机原理及应用(基于C语言) 教学课件 作者 吴政江张定祥 编著 第3章 指令系统及程序设计.ppt
- 单片机原理及应用(基于C语言) 教学课件 作者 吴政江张定祥 编著 第5章 MCS 51定时器与中断系统.ppt
- 单片机原理及应用(基于C语言) 教学课件 作者 吴政江张定祥 编著 第6章 串行接口及串行通信技术.ppt
- 单片机原理及应用(基于C语言) 教学课件 作者 吴政江张定祥 编著 第7章 AT89C51单片机系统扩展1.ppt
- 单片机原理及应用(基于C语言) 教学课件 作者 吴政江张定祥 编著 第8章 AT89C51单片机的接口技术.ppt
- 单片机原理及应用(基于C语言) 教学课件 作者 吴政江张定祥 编著 第9章 单片机应用系统的开发设计.ppt
- 单片机原理及应用(基于C语言) 教学课件 作者 吴政江张定祥 编著 封面及目录.ppt
- CNAS-CL63-2017 司法鉴定-法庭科学机构能力认可准则在声像资料鉴定领域的应用说明.docx
- 12J7-3 河北《内装修-吊顶》.docx
- 12N2 河北省12系列建筑标准设计图集 燃气(油)供热锅炉房工程.docx
- 内蒙古 12S8 排水工程 DBJ03-22-2014.docx
- 山西省 12S10 12系列建筑标准设计 管道支架、吊架.docx
- 16J601-木门窗标准图集.docx
- 12J8 河北省12系列《 楼梯》.docx
- CNAS-GL37 2015 校准和测量能力(CMC)表示指南.docx
- CNAS-RL02-2016 能力验证规则.docx
- 津02SJ601 PVC塑料门窗标准.docx
文档评论(0)