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

[复制链接]
 楼主| 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 | 显示全部楼层

弄明白了!

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

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

这里面的名堂就多了。
mapleyang 发表于 2007-12-25 23:08 | 显示全部楼层

把数据当指令比较巧妙

一些电脑病毒不就是这种思路搞出来的嘛
jack.king 发表于 2007-12-26 12:32 | 显示全部楼层

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

处理去一些外部的干扰外.例如WDT
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

18

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

10

主题

18

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部