EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据# S3 \( ?; v$ e: w7 d3 i, r. L
例如 :      
( X' ^: B$ @3 p C021:  85 16  STA$16                           85 16     两个
  Z8 P6 @$ p2 A' V6 c) |5 }4 r4 S8 p- Z, M/ |

# W% T/ E$ Y9 X5 o* s, P然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
. p% |# q3 ^2 W' {3 M& R( j例如:
5 a5 ^/ V/ P+ o. n8 l0 m' `( tC021:4C BFF0 JMP$F0BF                   4C BFF0   三个
( {  \" d( J5 Y! S0 S
* t0 Y1 Q7 c* E- `3 e" y" C: T: q
. c$ e6 q9 ]4 e3 k连续的数据是:. G' g7 n4 G6 u4 i* V( ?. }! p0 B
8 ]0 g% m! I) h# d/ \1 G
C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5( _$ X! \5 w" ~# q9 {) n% S6 R
& x: B! n# ^/ A3 R
; _( @3 q- K/ a' Z1 l: O4 G
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?# ?! d+ [& E! p( [( c0 ~6 d

; T7 s- C) }8 V/ X5 L- M% e不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 " P+ f) ^0 h9 i6 C, M

  d$ W) I) s: Y" ^7 I: w就直接跳转, 然后在跳转地址这把前面修改的命令补全7 P+ c" L( ~4 w, @! x
& B1 V; P; z9 Z+ i3 T5 V0 d3 V9 l
跳转命令看这, 写的很清楚了% P' V1 O2 J) d) y& o
http://shinwa.kami.blog.163.com/ ... 047200822563622456/: }* U* M5 W. Z( z' Q0 S$ ~5 ~
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1978 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:) @  D3 s7 M' T3 i, Z) r
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    2 k4 r0 f1 R* k3 W- Y
  3. A5 15 LDA $15  ->EA       NOP
    $ B+ P* P5 L& m3 _- R  Q5 z
  4. 85 17 STA $171 \+ S) e, Q2 ]6 ~1 u5 I1 \4 _
  5. A9 00 LDA #$00
    ; j0 a" U" j" |$ b. r
  6. $ @9 W, d% l& L4 f6 O0 b
  7. F0BF:
    4 Q- L: G: q1 r/ j% O0 @6 S
  8. 85 16 STA $16# M& j) ?& h) Y8 Z
  9. A5 15 LDA $15: C/ K7 b2 J) V# n
  10. .
    % N4 }" \( o# s) U; j( ?* w$ D
  11. ., D5 n) z2 K( d' c4 i0 e6 [
  12. .: T9 ]2 _5 d. m$ y0 p5 V) K
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
9 R! z1 M* ]/ p5 _1 ?2 q1 O
疾风之狼 发表于 2012-9-25 18:10

" E# q6 ?/ E5 q' D  k/ H6 k) f" @% o, l4 c: `/ ~
狼大,我按照你的方法,不知对不。
( g% [& y8 e: a) w8 V: X, i2 I
- M: G7 u0 _4 m- q7 j* Z6 o# B2 J0 o, b
原数据
8 T. G& E) N* XC021:       85 16 A5 15 85 17* d1 J- d  _7 J- {3 g0 W* |" a& p

# r4 K4 I9 R' ]6 O# e* |修改后
3 M- `9 W* ^. i% J/ |+ t9 mC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF' W4 D" M0 I& g& @% k) \0 U! w

/ j% U  M# M: [) n3 Z. G+ w- z+ D6 H
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
( T/ r! V/ w' W% F; g  h) o% b* P% }! P1 o) G

! e% T0 @0 D& p% L# v( f3 a
8 T- L) l) f( }, P* E我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
# Q$ E. ~+ S0 h: N
- F! m! M7 _8 W+ X看了money的文章后,这次我把前面的几句指令也列举出来:
0 v. Q) S  h( ]" kC01F: A5 14 LDA $14               :A=0x12
2 p9 r8 e2 A' Q% B5 dC021: 85 16 STA $16               :[0016]=A=0x12
8 ]2 Y3 O6 h: Y; x( _6 w& t: j6 z& C* Z' C9 t$ p3 J
根据文章的内容我是不是应该从C01F这个地址开始修改呢。4 C- R) m  ~; P" n2 t1 X
我现在重新动手测试一下,有问题再来请教你们% a9 V8 e# N" A1 Z# B: A

" ~# S; _7 n4 m' |; i
) ?: P4 p7 C5 }$ a1 ^! G- x经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-14 13:18 , Processed in 1.083007 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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