EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据5 ?# m& {9 K0 g) Y) L; |) }0 K
例如 :      
# e/ H' R0 Z2 ^# C+ N+ [ C021:  85 16  STA$16                           85 16     两个) _+ O1 E) b+ }& h, K2 Y$ T

; h) N# h, y  Q+ R
9 H- t4 L0 [* `/ x然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:+ G& B8 ^- J* H5 I3 J6 R5 s6 K
例如:
( _4 Q$ E7 n! }0 ~1 ^) ?3 pC021:4C BFF0 JMP$F0BF                   4C BFF0   三个7 v1 t: M& q$ d* b
. v6 Y4 y+ F" p& g9 m# K! m; ]
; Y7 M: `& q9 W
连续的数据是:
" O# u2 z& Q% n& k9 \  w/ B" A* n& s% Z' I& c
C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
( l, Z* `! p' S
7 s$ C- ?: i- h; k# l- _* [4 [5 l/ V: ^0 S  R$ s
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?- F. P1 q/ S! o; `/ S6 O

9 E6 ?) v( [# e不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 3 `4 g* _0 E. d6 D5 Y0 p1 D1 U

. K) Z2 u3 m3 L+ q/ x8 f5 T  z就直接跳转, 然后在跳转地址这把前面修改的命令补全
! K! l( a: E$ G) Q. ~* i5 o& m' g* k1 o  y# I
跳转命令看这, 写的很清楚了
) j$ t& x- O; Q- E2 |http://shinwa.kami.blog.163.com/ ... 047200822563622456/* E& B7 J+ R! Y: g: ]( Z, ~
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1717 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:9 e" ~) e" r7 J/ ?& e  r
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF! }4 P, c0 ~' k; y. U* k3 H( o! J
  3. A5 15 LDA $15  ->EA       NOP
    3 t0 Y! I$ a6 v" M. U' V
  4. 85 17 STA $17, R( Q( n9 }' v& k9 I0 H0 `" I% y
  5. A9 00 LDA #$00; ^' v& h% H9 \3 v' ?9 u+ `9 ?

  6. : q* ?2 @* U  i& g, O
  7. F0BF:) Y1 [  R2 D7 o
  8. 85 16 STA $16& C* b0 R/ \9 x  H3 N4 G
  9. A5 15 LDA $15
    ( w* j( }& v# V2 M9 j! [* }
  10. .+ t! ~2 B8 D: a; }' |
  11. .0 n6 X7 |4 E' B# o. k
  12. .
    # u' V/ a- p2 h' j, O0 Z) M
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑 4 v! r% \9 E; k! T* u
疾风之狼 发表于 2012-9-25 18:10

; N" ]* O* H* G9 t  `
0 G7 f7 f, [2 m9 h) Y1 K) c狼大,我按照你的方法,不知对不。% x, |/ ]: d- |+ I
3 r: `. v3 B/ e

  z( X' A* v  y2 i  N! Y) a原数据/ z0 _5 {- A, h) T9 `+ i% ?$ f
C021:       85 16 A5 15 85 17
. Y; ^9 e7 M, d2 {+ d/ y6 c
4 k& b( t$ G$ ^, P修改后
  c6 `: u) c% v) Q  b* L! Z- VC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
( F% F. }( w# L; ^
0 O4 O0 L2 a. B! a! Q
  }1 t9 ~# n' V& Q! @F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025; y8 ?0 k1 X4 c9 A0 L& H. I
: ?- z, W8 O) h/ K/ {1 m

2 N7 D2 u2 ?$ i) d4 Q( t9 c1 i5 ^4 B* e; t' I& [/ t
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
1 r3 I- }9 V0 B0 O6 f: ~, \2 ?; Q3 t/ I$ z' c
看了money的文章后,这次我把前面的几句指令也列举出来:/ |6 E0 \( E! Y2 @: m- {# C
C01F: A5 14 LDA $14               :A=0x12( l* {1 L. Q8 A$ S1 D) }+ D) w
C021: 85 16 STA $16               :[0016]=A=0x12
0 c9 c! a- B1 N4 y& f* O3 a. C+ p% Y/ T6 n& ^# ^$ m" b- s! G1 u- K
根据文章的内容我是不是应该从C01F这个地址开始修改呢。* O  y$ W8 a, E; Y4 v: m8 G
我现在重新动手测试一下,有问题再来请教你们2 O) W0 ^, N+ ~; i. l2 Q

, L* J& j# l2 J: n4 e3 y
4 R- m: G% F/ t/ c; i经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-24 16:24 , Processed in 1.066406 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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