EMU618社区

 找回密码
 立即注册
搜索
查看: 648|回复: 4

[求助] 某种特殊情况下该怎样解决?

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
& W4 n9 g' V1 E- B, T' B例如 :      
8 N# E3 y  Q' o- ?" x: y$ Y% H C021:  85 16  STA$16                           85 16     两个( l& K% C0 Q5 I9 w( v

# n4 K7 N' q* h  }% w" B
: ?  x" E" S) ?9 r6 X然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
. E( `+ A( t8 y' k2 \- l7 p例如:
" z3 ~' ~7 f& z8 xC021:4C BFF0 JMP$F0BF                   4C BFF0   三个
8 O0 i4 G; c  v. Y5 [$ j
8 `- r1 \' L+ o: Q% V
' J9 v* L6 V, v: t0 z2 q7 d3 i连续的数据是:1 m6 d% i; z2 d$ r, ~

. I& [8 a+ R  K2 T& ^& t0 eC020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
3 Z9 X" S. Z/ c& X  }; J( k1 s2 h5 y4 z
) f' M% F2 t9 m' p: W2 |9 m  u
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?/ H& ?& ^5 N+ W4 F3 k* b" c3 q

# J! n7 e: z7 D* o% `3 d% ?6 S* A不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 3 T; B# D" G* _0 f7 k# f1 {; B

% F7 p3 l9 W* {; [就直接跳转, 然后在跳转地址这把前面修改的命令补全) [! [/ o) `( N( |* v5 h( c

$ W! J' `) ?7 d7 m; x/ ~跳转命令看这, 写的很清楚了
  t2 U( D% O9 B+ t% S" Nhttp://shinwa.kami.blog.163.com/ ... 047200822563622456/7 ~6 v: l( u* |: f  Z# d, p
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1865 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:% _( P5 y/ C" ^! L0 E
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF2 B: r( ?, i6 M; ]1 Q+ h% Y6 z+ G
  3. A5 15 LDA $15  ->EA       NOP) k8 b  G$ i4 ^8 C8 I3 O
  4. 85 17 STA $17
    # G1 A+ b3 v7 d
  5. A9 00 LDA #$00
    5 B+ A: T0 ?/ [1 |4 ?9 M4 ]1 `

  6. ' Q7 A6 {& a0 \+ Z0 a
  7. F0BF:
    # q7 _% v' H3 F/ E$ o
  8. 85 16 STA $16
    ; c& D- f9 v6 p  U+ C
  9. A5 15 LDA $15
    8 j) {6 d" H4 Z. p& C' U# @
  10. .
    ' G0 w# r  P6 b4 ?. y: {# L
  11. .
    ! {7 I! w9 t' P
  12. .5 P& O3 ?. K% q" Y0 o+ E2 m
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑 ; z. N& F3 G3 [* ^2 }% e* e
疾风之狼 发表于 2012-9-25 18:10

* m+ q" s! I# Y
" k/ A1 s! \* M" D( h9 M% b狼大,我按照你的方法,不知对不。5 p* j" }( O" [4 i# h, e; \  r: ~5 X

8 r( w8 o7 c, I1 j# J0 Z2 ^) A# v: B
2 x1 M1 \! I/ x" `# K/ o原数据
7 q" ~2 y3 W' s4 c, hC021:       85 16 A5 15 85 17" c9 g: x. W& b; e: X$ q

; @, z- G" n8 f+ @修改后9 G7 a! g) r" W$ e) z
C021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF3 v8 _' N3 H2 N/ v
+ ?2 z( t( m; y( q: `% ]4 K& S

2 C. ]: _& c# X! \F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025, [; {& r$ \& [6 p9 a7 P4 J- g
* [* Y8 w6 X% u% o0 Y$ e

! F, z( D4 Y, C6 k9 Q& B! e, ^2 C0 F1 }
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
: b& B0 E# \- a$ q6 N, T- |7 E6 H0 E; L- D8 N. J+ j
看了money的文章后,这次我把前面的几句指令也列举出来:6 Z3 R* H: P* o. }4 d& T5 E
C01F: A5 14 LDA $14               :A=0x12" |2 S( h9 L# T( O/ {( z  ~/ z
C021: 85 16 STA $16               :[0016]=A=0x12
+ N8 T9 a$ N3 a& Z) O5 G: F2 U: p7 q4 [- L7 z3 K$ r: G
根据文章的内容我是不是应该从C01F这个地址开始修改呢。
' ?0 Y1 Y6 w, x0 ^! f我现在重新动手测试一下,有问题再来请教你们( E8 W9 f' y% k9 U1 y8 `; n
  H; r$ O/ t# s: ?

; ^! h& B8 U6 R9 b1 l经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2025-2-19 06:28 , Processed in 1.087890 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表