打印

单片机是如何识别ROM区域的

[复制链接]
2178|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
allokline|  楼主 | 2007-12-25 21:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  单片机内部所有东西都是以二进制来表示的,不论你是指令还是要处理的数值;如果在ROM区域我创建了数据表格,单片机是通过什么来识别出我这不是指令而不进行响应的处理;例如,我放置的数值与指令相同的话单片机又该如何识别了!是通过伪指令来触发单片机内部的一些硬件机制来进行吗?
  请各位大侠指教!

相关帖子

沙发
平常人| | 2007-12-25 21:53 | 只看该作者

单片机硬件不去识别,你的程序必须保证不把数据当成指令

除非有MMU机制,硬件不判断程序区还是代码区。

使用特权

评论回复
板凳
ayb_ice| | 2007-12-25 21:59 | 只看该作者

通过指令来区别的

比如有查表指令,当然也可以故意把数据当成指令,有时还经常这样做呢。。。

使用特权

评论回复
地板
allokline|  楼主 | 2007-12-25 22:26 | 只看该作者

弄明白了!

谢谢各位的回答:
    我弄明白了,其实在你写好一个程序的时候你的地址转移路线已经确定,不管编译程序把数据放到什么地方,它都无法进入程序的转移路径上去!而你调用什么数据那是你自己的问题,与程序的存储路径不发生任何关系!

使用特权

评论回复
5
平常人| | 2007-12-25 22:49 | 只看该作者

当然要防止程序乱跑,还要防止数据区溢出

这里面的名堂就多了。

使用特权

评论回复
6
mapleyang| | 2007-12-25 23:08 | 只看该作者

把数据当指令比较巧妙

一些电脑病毒不就是这种思路搞出来的嘛

使用特权

评论回复
7
jack.king| | 2007-12-26 12:32 | 只看该作者

请问怎么防止防止程序乱跑,还要防止数据区溢出

处理去一些外部的干扰外.例如WDT

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

18

帖子

0

粉丝