电工吧
◎ 电工吧 >> 设为首页 >> 加入收藏>> 联系方式 >> 投稿 >>留言 
网站首页 · 电工新闻 · 电工基础 · 电力技术 · 电子技术 · 电工图片 · 电工法规 · 电工图书 · 电工搜索 · 论坛交流
 
      最新电子论文
 · 数码管显示0-9及A-F实验 
 · 稍复杂一点的流水灯电路 
 · 一个简单的流水灯电路及程 
 · 红外感应灯 
 · 微波式感应控制电路 
 · 电容式接近控制电路 
 · 电力线载波通信(LMl893)集 
 · 自制小型程控交换机 
      推荐电子论文

 · 电容式接近控制电路
 · 自己攒,——液晶背投不是梦!
 · 自制超耐用高品质耳机
 · 谈谈电路中的“地”
 · 自制交流自动稳压器
 · 一款典型的立体声功率放大器的

  ■ 所在位置:首页>>电子技术>>电子制作>>正文
 

软件陷阱技术

CPU受到干扰后,往往将一些操作数当作指令码来执行,造成程序执行混乱.我在A51的做法主要有以下几种:
1.中断向量区
ORG 0000H
START: LJMP MAIN
LJMP INT0
NOP
NOP
LJMP ERR 陷阱
LJMP TOINT
NOP
NOP
LJMP ERR 陷阱
- - - - 
ORG 0040H
ERR:
----------- 
2.在表格区
在表格区的最后安排5个字节的陷阱
TABEL1:
DB ------------
DB ------------
NOP
NOP
LJMP ERR
3.在未使用的ROM空间
未使用的ROM空间一般全是 0FFH,对于51来说是"MOV R7,A"的单字节指令,程序一旦弹飞到这个区域,将会飞流直下.一般在一些固定的地址加入软件陷阱,捕获弹飞的程序.
ORG 6000H
NOP
NOP
LJMP ERR
ORG 7FFBH
NOP
NOP
LJMP ERR
4.在子程序后面
XXXX:
;;;;;;;;;;
;;;;;;;;;;
RET
NOP
NOP
LJMP ERR

以及在一些长跳转的断裂点...

注: ERR子程序,应当重新设定堆栈,等一些初始化的参数,但对于RAM区的部分数据可以判断保留.
至于是否能有所作用只有天知道了.(呵呵~ ~),不过我写的程序一般是最稳定的,也许是这玩意在起作用吧!
-----阿飞 
 
         相关文章

·
·
·
·
·
·

 
 
  关于本站 | 友情站点 | 联系方式 | 版权声明 | 电工技术服务与支持中心
Copyright© 2005-2006 Dg8.Com.CN ,All Rights Reserved
电工网 电工吧 电子吧