EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据) S4 v3 y: m0 ^8 g/ X
例如 :      
2 Y. i8 I, n2 i3 w' I C021:  85 16  STA$16                           85 16     两个$ ]4 M6 R( U0 O2 q* ?! K

1 e9 D' P- Z" p* p, z: R
" b4 f3 z9 }3 l" v然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:6 E$ t. ~5 B) {8 u
例如:
- T. h7 e5 Q1 Q* r3 qC021:4C BFF0 JMP$F0BF                   4C BFF0   三个; E0 W2 [6 f- j

3 m; ~# x. z9 n$ a6 e2 ^
- U3 f! z7 Q: E$ z7 P3 N. d连续的数据是:
  X7 d1 Z- @% W& u8 A6 `. [" L( h5 R1 d
- `: f( s; E& W) ]C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
- V5 H; y$ T- }5 e
* E) n0 d) U5 M( n
! g9 |, L& d) n; M6 P  P1 b3 _这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?& z% K: [# p$ w8 e8 e$ A5 C

. `7 _  b' O1 a/ Q7 G不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 8 R/ |2 j! T* a. \; ?! }
( v4 p, B6 Q8 {
就直接跳转, 然后在跳转地址这把前面修改的命令补全
: g% H1 ~1 }9 A. D( M- Q1 q9 N! b) T; i. S. Y: |1 |& S& Z
跳转命令看这, 写的很清楚了
% O0 V( n8 X9 R" `http://shinwa.kami.blog.163.com/ ... 047200822563622456/
& q! H: [  X* U
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1865 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:
    3 J6 [2 W7 W; e
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    : U; f. }4 O, B1 s
  3. A5 15 LDA $15  ->EA       NOP
    , ~# o# `* f9 H, O
  4. 85 17 STA $17
    " x% t* g& u- b; z6 S4 }0 H
  5. A9 00 LDA #$00
    ' s) v9 {7 a! ^; z! Y* T
  6. 4 r5 F( L- V/ c) i' ~
  7. F0BF:  b* r$ S: ?; {9 C
  8. 85 16 STA $16
    % L& f  \) H0 g: _" m
  9. A5 15 LDA $153 [$ r- f  o3 K8 e$ `
  10. .
    9 r$ Q1 t1 @, l5 _! V$ B; |( S2 W
  11. .0 |$ W' @$ @$ M; u/ ]8 G& C
  12. .
    4 c/ b+ s3 }; H9 \
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
* s$ C  w/ f- @- b: ^7 G! N
疾风之狼 发表于 2012-9-25 18:10

. q+ c+ E! T" Z- R8 \( N* j# k
  y' ?8 ]1 e0 e狼大,我按照你的方法,不知对不。
  N# T/ a2 P$ \) Q
- f: q* b: J5 K9 D( ]: J$ p* |5 I& U9 ~
原数据) x- L, V. j3 V, D, f; H
C021:       85 16 A5 15 85 17
" H* S: a( N& X' o, `% h0 e' O4 [
修改后
2 D$ p+ q* p; N4 Y/ i( V! h: ?" eC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
# r3 d. j: I" w& S7 i6 d9 ^) U2 n0 h) S* l1 S
5 q  v4 q/ C0 H1 \! H
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C0256 O, e. H; d! m$ }7 R8 u
. ]" g# t9 F& Q% s1 J

; D' z; b4 I; V' v1 T* n. ~0 s. H) z/ z6 p
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑 % V* Z8 h# E+ O' E, D

2 n9 y9 v5 H$ p2 u3 w看了money的文章后,这次我把前面的几句指令也列举出来:6 {; t: i* J. N7 g
C01F: A5 14 LDA $14               :A=0x12
& K4 Q' L' U" ~( j3 m2 rC021: 85 16 STA $16               :[0016]=A=0x12
8 e+ a1 N; n6 @$ }: x' t7 F2 E, u  s
根据文章的内容我是不是应该从C01F这个地址开始修改呢。0 c1 ]6 H+ `7 o) }0 {# O
我现在重新动手测试一下,有问题再来请教你们
( e& `# V9 k; h; `0 g3 F6 h3 k/ N; u: Y5 V( G
$ o) ?& ?! ~7 c4 T1 a* E* L4 {
经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-19 05:56 , Processed in 1.108398 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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