51单片机汇编中,使用MOV DPTR,#TAB,可以查表,但是能不能用DPTR这个指针来修改TAB表呢?

即能不能修改程序段的数据谢谢!有一个蛋疼的程序需要在运行的过程中不断的读取和修改TAB表。。。... 即能不能修改程序段的数据
谢谢!
有一个蛋疼的程序需要在运行的过程中不断的读取和修改TAB表。。。
展开
 我来答
shangke1988
推荐于2017-12-16 · TA获得超过525个赞
知道小有建树答主
回答量:338
采纳率:100%
帮助的人:195万
展开全部
不能,51不支持在应用可编程,如果需要修改的话只能放到数据段里。至少51的片内flash是不能被程序改写的。MOV DPTR,#TAB,只是给DPTR赋值,访问数据要通过MOVC(程序存储器)或MOVX(数据存储器),其中MOVC是只读的,根本没有写指令。如果需要不断读取和修改TAB表,可以把表建在外部RAM里,程序启动是先从ROM里载入初始值。
ad728
2011-06-20 · 超过26用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:56.5万
展开全部
当然可以
MOV DPTR,#TAB,是指向这个表头
MOVC A,@DPTR+R1,是读取 TAB中第 R1 个数据
所以反过来
MOVC @DPTR+R1,A 就是送进去啊,也就是修改。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flycat0511
2011-06-20 · TA获得超过1402个赞
知道小有建树答主
回答量:363
采纳率:100%
帮助的人:387万
展开全部
表格是放在ROM中的,
MOV DPTR,#TAB,是让DPTR指向表格首地址,然后用MOVC A,@A+DPTR,也就是查表时DPTR是作为基地址,通过改变A的数值,读取表格中的不同数据;
如果要修改表格中的数据,只需要用DB伪指令把数据存到ROM中表格对应的位置即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式