EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据7 o, _7 o5 S9 Q
例如 :      
6 j5 o: w% j( r/ W* c; N! u C021:  85 16  STA$16                           85 16     两个
) [. d. S( m; ]" f4 f
$ i! P' T- y0 F
) V+ `4 O2 Z# H+ P. S然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:! ~1 L5 K% U2 X
例如:. E9 k3 G* s3 L: h" y: G# a
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个
  G  I( k7 R3 y6 z" ^7 P% C1 S/ c
8 i& j# s! f+ S+ h' H
连续的数据是:
5 P2 w! l0 g1 V6 @7 ?5 z7 x: L, K2 h, J1 W$ Z) m' b8 E
C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
  [6 |2 _2 ~+ d+ W% q9 v& i, d* E
- E  U* c+ L+ b9 z/ c: E
. Z3 B0 x. P5 X5 T+ y  j这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
9 T7 o5 x# M6 L( X8 c1 o/ X/ E
/ J! }2 V+ e  A- e& `6 }4 d* u* m不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑
9 J- V8 n) i( f7 m  S( i% O8 N
: `5 a( w- o6 C7 `; y9 S就直接跳转, 然后在跳转地址这把前面修改的命令补全
# q  A0 x: ~  u5 {) u! B# X
' {' C% F- t" d3 H$ v/ J  |% a- D跳转命令看这, 写的很清楚了
( r( j3 g' e% Q* Z( {& g# Ihttp://shinwa.kami.blog.163.com/ ... 047200822563622456/
" G1 F$ B; }, O
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1769 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:
    7 S; {# ?. p8 x* c
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF  I2 P* a9 p9 w
  3. A5 15 LDA $15  ->EA       NOP% S; j' S- Q% h8 Q' M! x$ d  l) q
  4. 85 17 STA $178 t  ?5 q1 g! @8 c) u
  5. A9 00 LDA #$00
    8 Y$ V* C6 a, G) n/ Y9 W) ?+ t8 Y

  6. 7 ~. C0 Y$ D5 \4 \
  7. F0BF:1 m+ f  x) D1 f5 i: n6 f5 }
  8. 85 16 STA $16
    ; Y3 J% M& a4 f% ?, S1 c+ s) V/ G4 Y
  9. A5 15 LDA $15
    7 u# M3 U4 |$ k% N& D- q: v
  10. .
    6 x, f: Y& O  M2 V+ g4 p, q
  11. .
    9 S  E$ m) T  y6 ^: C+ x
  12. .5 S! o/ h. x+ m$ H
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑 0 B* Z6 R" T8 ^5 [
疾风之狼 发表于 2012-9-25 18:10
/ O" A/ N+ P, T( m- [* W
6 w+ x* z! Z9 |
狼大,我按照你的方法,不知对不。, V% b1 ~( G7 W

% V" `/ _- m* J5 y
( c, Y" O& w. z; j. F$ r原数据  W6 Y5 s3 P, L: r
C021:       85 16 A5 15 85 17( u" P8 k, N! |9 w( a' _
& r5 O. k% N/ c: ^& q
修改后# R4 }$ I6 }! k. v3 C! J: W( ?
C021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF, f: `' E# D( M8 M/ t5 R
+ W+ p% R. h8 m+ ~) h/ C8 `

; O, R7 K7 {" ]2 K: nF0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
$ Q- M1 p5 n2 g) c, n! J1 u/ B& Q2 u' E6 K  h
/ e- I/ l3 S$ K) j9 H
' ^! G- p* }2 k
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑 * M: O' x  F! r9 e) ~( g
6 j9 @0 Q6 B8 s6 y6 [1 v
看了money的文章后,这次我把前面的几句指令也列举出来:
6 \% h% u+ s* q. L- Q5 t+ {5 j0 g: RC01F: A5 14 LDA $14               :A=0x12
. {9 t: C! [! @0 L/ A# {3 [4 ]C021: 85 16 STA $16               :[0016]=A=0x12
$ Q) S- p, N5 y, I
! I" h8 Y8 N2 J8 e' w+ K4 a9 p( S根据文章的内容我是不是应该从C01F这个地址开始修改呢。# N8 n# {, V0 m% V9 H! X
我现在重新动手测试一下,有问题再来请教你们/ W% D; K$ M9 B5 C; N( O
6 |$ H5 Q3 W; @6 e7 J2 ]" W. o! j

8 `2 G. k" B) V经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 15:27 , Processed in 1.066406 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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