EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据/ S- v) b9 G, o6 O' i- t# a
例如 :      4 ^  W7 T  l* i# `& E1 i; k
C021:  85 16  STA$16                           85 16     两个
; [& O/ m  w% o" P
" ?  u# H! U1 b5 S& {
; r8 Q' M$ d+ Z: o  L! r然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
% n/ q# R9 Z# f& g: {: n/ ?例如:
' Z  o6 d; x1 K% u2 BC021:4C BFF0 JMP$F0BF                   4C BFF0   三个8 \9 E$ A6 `$ \. m  P

7 L' Z! W) C) D6 |7 c! e; @) H+ }' y7 w2 s8 S
连续的数据是:
! t4 s! V8 o6 [5 z
2 b7 F+ p8 G3 R8 f7 KC020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
, g' v( {! ?8 c' }. u: z
; M5 x' F9 ]- f6 a# d) Q8 d" @. T0 b# M# l, \! m
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?$ `" ~: `1 r( y; B3 `9 k  S

7 s  W6 X7 Z7 D  K! m不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑
; ?9 A9 {# @2 R- d: f& h, j) x. n0 I8 H4 W
就直接跳转, 然后在跳转地址这把前面修改的命令补全
( n  b" I1 s" F1 I5 c' q1 f0 d% e, ^' C5 i7 M# T& B+ g
跳转命令看这, 写的很清楚了  w; Y1 x: O( E+ Y
http://shinwa.kami.blog.163.com/ ... 047200822563622456/
2 U5 p3 p( G: e* L$ {5 g, D7 O
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1979 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:
    2 W* R9 k( Q" k7 Y
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    3 o# `4 O7 l4 d8 X# M- Z6 m
  3. A5 15 LDA $15  ->EA       NOP
    / e2 t! B$ d$ n3 j" l
  4. 85 17 STA $17
    6 g1 @0 b; o" R! k" J
  5. A9 00 LDA #$00
    ) d" Y; V: r- L8 X- m
  6. ( y0 J' ~6 p1 }6 P
  7. F0BF:9 a4 \6 k% m) d$ q1 L8 V3 P; ^) E
  8. 85 16 STA $16
    4 y% y5 H% a; N; ]$ C
  9. A5 15 LDA $15
    & Y0 a' R0 z  \+ w; t. a2 J
  10. .5 P7 q2 K  n2 @+ ]. C* }
  11. .
      t  J2 ~' P- k) L* N
  12. .8 u* u9 P1 I; @$ g0 q" _
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
" H/ s( M# T* T* T: \
疾风之狼 发表于 2012-9-25 18:10

& b; D* |( O* }8 W
) Y, l2 E6 Q, ~  v  g8 r1 X3 c狼大,我按照你的方法,不知对不。
0 x  x) P0 b. w6 B" ^9 C: T0 i% w' m: }. [" E: A, b  o! v6 }
  S1 W$ [& U) O. d+ h5 M
原数据
' n/ o8 Q# E: y0 kC021:       85 16 A5 15 85 17
+ Q7 w4 d# T% d4 y2 h
9 E  [7 v+ O6 T3 x修改后
( }' r  \  z" i, n' F8 l1 yC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
5 d$ v9 ^. r7 {- r$ S, D
- U9 S1 I( |# e1 }. K1 [+ M  M( O# o  L2 y7 R1 p
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025% k( o" I4 G% X8 P

5 B+ `$ p5 J, k) J  v% ]0 E. I" a; W+ ?! C' h0 ~! H0 |

2 t& |$ e4 `3 N. u我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑 $ `0 N4 i7 e- I1 V& I

4 \, o+ u* j+ Z, s看了money的文章后,这次我把前面的几句指令也列举出来:3 z2 E- M( d: P( C
C01F: A5 14 LDA $14               :A=0x122 e% h7 U- }6 Q/ g
C021: 85 16 STA $16               :[0016]=A=0x121 T" ]3 c9 X( j: V7 E. i

* e6 B6 m2 A7 [. {8 R6 L根据文章的内容我是不是应该从C01F这个地址开始修改呢。+ E& Z% R, s( Y- d
我现在重新动手测试一下,有问题再来请教你们  {8 m. @# W. \1 F! L: R1 r3 m
; S$ j2 b" R3 O. K6 t" [/ Y

5 g4 X+ @- o$ u- k( w( R/ N3 K; O经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-15 07:49 , Processed in 1.094726 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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