中易网

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

答案:3  悬赏:40  
解决时间 2021-01-13 22:33
  • 提问者网友:美人性情
  • 2021-01-13 04:57
51单片机汇编中,使用MOV DPTR,#TAB,可以查表,但是能不能用DPTR这个指针来修改TAB表呢?
最佳答案
  • 二级知识专家网友:山河有幸埋战骨
  • 2021-01-13 06:31
不能,51不支持在应用可编程,如果需要修改的话只能放到数据段里。至少51的片内flash是不能被程序改写的。MOV DPTR,#TAB,只是给DPTR赋值,访问数据要通过MOVC(程序存储器)或MOVX(数据存储器),其中MOVC是只读的,根本没有写指令。如果需要不断读取和修改TAB表,可以把表建在外部RAM里,程序启动是先从ROM里载入初始值。
全部回答
  • 1楼网友:持酒劝斜阳
  • 2021-01-13 08:40
表格是放在ROM中的,
MOV DPTR,#TAB,是让DPTR指向表格首地址,然后用MOVC A,@A+DPTR,也就是查表时DPTR是作为基地址,通过改变A的数值,读取表格中的不同数据;
如果要修改表格中的数据,只需要用DB伪指令把数据存到ROM中表格对应的位置即可。
  • 2楼网友:北方的南先生
  • 2021-01-13 07:03
当然可以
MOV DPTR,#TAB,是指向这个表头
MOVC A,@DPTR+R1,是读取 TAB中第 R1 个数据
所以反过来
MOVC @DPTR+R1,A 就是送进去啊,也就是修改。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息