
51单片机汇编中,使用MOV DPTR,#TAB,可以查表,但是能不能用DPTR这个指针来修改TAB表呢?
即能不能修改程序段的数据谢谢!有一个蛋疼的程序需要在运行的过程中不断的读取和修改TAB表。。。...
即能不能修改程序段的数据
谢谢!
有一个蛋疼的程序需要在运行的过程中不断的读取和修改TAB表。。。 展开
谢谢!
有一个蛋疼的程序需要在运行的过程中不断的读取和修改TAB表。。。 展开
展开全部
不能,51不支持在应用可编程,如果需要修改的话只能放到数据段里。至少51的片内flash是不能被程序改写的。MOV DPTR,#TAB,只是给DPTR赋值,访问数据要通过MOVC(程序存储器)或MOVX(数据存储器),其中MOVC是只读的,根本没有写指令。如果需要不断读取和修改TAB表,可以把表建在外部RAM里,程序启动是先从ROM里载入初始值。

2025-08-18 广告
深圳市金创图电子设备有限公司,联系电话:18928465613。金创图是一家集研发、生产、营销、服务为一体的高新技术企业。致力于生产:管装烧录机,编带烧录机,托盘烧录机,通用型烧录机、自动一体化烧录机等;设备产品具有高速率、高刚性、高性能、...
点击进入详情页
本回答由小谢提供
展开全部
当然可以
MOV DPTR,#TAB,是指向这个表头
MOVC A,@DPTR+R1,是读取 TAB中第 R1 个数据
所以反过来
MOVC @DPTR+R1,A 就是送进去啊,也就是修改。
MOV DPTR,#TAB,是指向这个表头
MOVC A,@DPTR+R1,是读取 TAB中第 R1 个数据
所以反过来
MOVC @DPTR+R1,A 就是送进去啊,也就是修改。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表格是放在ROM中的,
MOV DPTR,#TAB,是让DPTR指向表格首地址,然后用MOVC A,@A+DPTR,也就是查表时DPTR是作为基地址,通过改变A的数值,读取表格中的不同数据;
如果要修改表格中的数据,只需要用DB伪指令把数据存到ROM中表格对应的位置即可。
MOV DPTR,#TAB,是让DPTR指向表格首地址,然后用MOVC A,@A+DPTR,也就是查表时DPTR是作为基地址,通过改变A的数值,读取表格中的不同数据;
如果要修改表格中的数据,只需要用DB伪指令把数据存到ROM中表格对应的位置即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询