5083|0

54

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

汇编语言学习之查表指令 [复制链接]

  在汇编语言程序中,如果我们要用到有多个数据组成的表,比如在语音编码算法中,需要特定的表来计算编码。这个时候我们就要用的查表指令。

  在MCS-51单片机的程序存储器中,除了存放程序外,还可以存放一些常数(称为表格数据)。单片机指令系统提供了两条访问程序存储器的指令,称为查表指令,其实就是程序存储器向累加器A传送数据指令。常用的查表质量使用方法有以下两种。常用的查表指令使用方法有以下两种:

MOVC A,@A+PC

  PC中存储下一条指令的地址,A中存放要用的数据,相对于下一条指令的距离。

这条指令是由PC作为基址寄存器,它虽然提供个6位地址,但是基址值是固定的,“A+PC”中的PC是程序计数器的当前内容(查表指令的地址加1),所以它的查表范围是查表指令后256B的地址空间。

MOVC A,@A+DPTR

   DPTR中存储的是表的起始地址(表头)。A中存放的是要用的数据,相对于表头的距离

这条指令采用DPTR作为基址寄存器,它的寻址范围是整个程序存储器的64KB空间,所以表格可以放在程序存储器的任何位置。其缺点是如果DPTR有其他的用途,在将基址值付给DPTR之前必须保护现场。执行完查表指令后再进行恢复。

那么我们在实际应用的时候,会遇到不同的芯片,不同的内核,不同的指令系统,可能它没有特定的查表指令。这时,我们常常采用第二种方式,用一个MOVE,装表头地址;一个ADD,加上变址值;再用一个MOVE,取出想要的数就行了。

 

 

点赞 关注(1)

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表