caojian8518
驱动牛犊
驱动牛犊
  • 注册日期2003-12-12
  • 最后登录2006-01-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:783回复:0

软件陷阱技术

楼主#
更多 发布于:2003-12-23 09:52
软件陷阱技术!
 

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区的部分数据可以判断保留.
至于是否能有所作用只有天知道了.(呵呵~ ~),不过我写的程序一般是最稳定的,也许是这玩意在起作用吧!


<font  color = red>C语言怎样写
                                            
 :) :)
游客

返回顶部