EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
$ `& y- Y6 g1 @0 @: |例如 :      ! X; m2 C0 p" j8 H9 |2 x, y3 S. S
C021:  85 16  STA$16                           85 16     两个
2 c# Y9 ^: z0 a+ N4 `: U2 V; }( a4 i% Z  I+ ?7 N$ k1 V# w

( B3 m0 o& ?* E+ t1 r$ Z7 R! ]0 B2 w然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:; Y( |3 e9 N; O2 @5 p
例如:$ m8 x! r; i: z# X: g# |
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个
5 V0 r; ^0 g) f' `/ Q0 A) m( q8 g1 G% m9 v5 U0 r9 p3 \

: T- h) ~& _" z, A连续的数据是:
7 \& c4 k# S! G% t9 l& m. {! S. Y4 y, z# N3 [3 v- {
C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5$ Y- n. @7 E/ p. C

9 o& ^1 B  e! P# _8 V  t: i# K$ L& q7 |% z6 f
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?+ n, p$ a- f1 s$ G) h$ E  x
: l" p0 C( A  I
不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑
, {# x. R$ H+ l3 }4 I% o' v" p
- z$ n# W; {$ J' C" C4 l% w, m就直接跳转, 然后在跳转地址这把前面修改的命令补全
/ u. S! l2 R( o8 D  ]! Y+ T' Y: g) b; l. I; C4 \
跳转命令看这, 写的很清楚了
0 h0 A0 j4 y& Jhttp://shinwa.kami.blog.163.com/ ... 047200822563622456/" z: h6 C" t  h/ B3 m9 Q2 e
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1867 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:4 i8 ]$ Z4 z4 a  \3 M
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF5 D* x+ u$ d6 s
  3. A5 15 LDA $15  ->EA       NOP
    7 o: j3 G4 k. M- P
  4. 85 17 STA $17( o" P1 K' ~1 G7 h' M( J+ h
  5. A9 00 LDA #$00. |. o& j2 D* ], p; L3 V

  6. 7 \- b7 V1 `- W3 w! j& w9 {* ^& G9 D8 ^
  7. F0BF:
    6 g" b5 ^7 b0 k& ~
  8. 85 16 STA $165 g9 V( e0 C2 ^" k5 c* V
  9. A5 15 LDA $15( c  k6 u3 g% y* l$ o
  10. .
    2 |! d1 h1 r: e( ]6 z
  11. .
    - N& M" Z2 ]& ~
  12. .
    7 ~4 u+ v' r& O5 z/ j* G9 X
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
: ?3 G0 Y$ z2 a3 h
疾风之狼 发表于 2012-9-25 18:10

. e$ R) N0 |) W# |7 L* m% b9 |. S" p1 v+ n9 h/ \8 `% F4 n
狼大,我按照你的方法,不知对不。
% V3 _2 u" f, L8 l4 T( ^6 i) j7 O6 }& m% a4 Y+ M/ S4 t

7 a$ p" B* R. }( i/ U9 o原数据; W( d) P& A& b4 r0 h5 [
C021:       85 16 A5 15 85 17
' {! n  O! }, Y% k2 `& c; ?3 ~; b# @5 B0 }7 q" l
修改后) E7 c% U) s9 Q# |
C021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
7 `; d" }5 Y- \# h" D) m4 Z! R6 `4 |
7 e2 |0 _) i) t7 F! ~6 o( a; `' B( h5 j# P# p8 g5 N& e
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C0257 i8 {% {5 U0 F9 e7 Z$ V# ~

8 o5 H+ _7 X- b8 Q+ Z& L# h
+ V. }( c  r$ @! _7 n
& d: A/ H+ Z0 J, Q7 u1 [- l我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑 " S0 Q  U( }1 g2 d0 \8 V
% s; s: {" k4 B3 q% L) a1 K  I
看了money的文章后,这次我把前面的几句指令也列举出来:
4 k; A+ r1 L% T/ r" F' N2 o. ~, PC01F: A5 14 LDA $14               :A=0x124 G7 F+ K7 Y; ]) g! ^  v
C021: 85 16 STA $16               :[0016]=A=0x12, R( ]: H0 T  [: n- ~: o' C

# F" K& u0 `  `% r2 ~; v根据文章的内容我是不是应该从C01F这个地址开始修改呢。
( R+ w: y1 r% w* x我现在重新动手测试一下,有问题再来请教你们
# I7 A0 e9 m1 ?' B: I+ v5 }) d/ a5 `# A* j
4 e* b: {$ @4 b; t
经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-21 03:15 , Processed in 1.075195 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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