51单片机能否在查表里放跳转

51单片机能否在查表里放跳转,第1张

如果表格里内容就是各个子程序的入口,则可实现直接跳转了!

int FuncTable[]=

{ addr1,

addr2,

}

汇编同理。

不能,51不支持在应用可编程,如果需要修改的话只能放到数据段里。至少51的片内flash是不能被程序改写的。MOV DPTR,#TAB,只是给DPTR赋值,访问数据要通过MOVC(程序存储器)或MOVX(数据存储器),其中MOVC是只读的,根本没有写指令。如果需要不断读取和修改TAB表,可以把表建在外部RAM里,程序启动是先从ROM里载入初始值。

movc

a,@a+pc是用十六位程序计数器pc加累加器中地址内容得到的结果传送给a。

movc

a,@a+dptr是用数据指针作为基址寄存器。两者都可以用来间接寻址。

1MOVC,

2MOVX

,具体指令详见参考书:C代表CODE也就是程序(代码CODE)存储区的“查表”,X代表external就是扩展的意思,是与外部扩展RAM或者(IO外设)进行“查表”。

以上就是关于51单片机能否在查表里放跳转全部的内容,包括:51单片机能否在查表里放跳转、51单片机汇编中,使用MOV DPTR,#TAB,可以查表,但是能不能用DPTR这个指针来修改TAB表呢、单片机查表指令MOVC A @A+DPTR等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9767215.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存