EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
0 @9 K1 l; @/ U% |( n例如 :      ! [) j( B0 F( V$ G# c! V
C021:  85 16  STA$16                           85 16     两个: y' F) s2 |, Y

5 x: \7 j5 q# b  B! y7 @# x6 Y0 E6 g  \' J8 P+ e
然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:# u4 G: Z8 y5 o+ d* a( L* K
例如:5 |# \; b# f" L3 j4 i
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个
' d, r7 X! Y& \- z
9 {; ?* A. o9 m) c. K3 _! i6 |) A/ q% Y, w) e* u) ?- J
连续的数据是:
$ o: ?8 @0 ^6 C2 ]' E
8 V! Q( [; L5 _3 s; l" n) lC020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5" J3 p- p/ z0 ]$ L1 V

9 H* c5 k+ O% t' B* ?  k8 `* v; _5 @
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
3 Y! q, n' A! J4 H
% `+ A! Q  B/ c1 C/ y4 @不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 * i5 q+ O/ h" H  _' o8 @

4 m% w0 n% _2 w+ f: U/ Z+ @就直接跳转, 然后在跳转地址这把前面修改的命令补全
0 O2 q3 H2 m5 ~4 O6 X5 j: F- B7 H2 b$ z  A5 G
跳转命令看这, 写的很清楚了
5 q6 P& F9 C5 }: X( Uhttp://shinwa.kami.blog.163.com/ ... 047200822563622456/
. ~% D, K$ {/ W. X& X: V; m3 s
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 2190 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:
    - l) h* f* H) J6 R: b/ `
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    0 U1 `( c; X" g# I& q
  3. A5 15 LDA $15  ->EA       NOP
    ; t4 P* V8 q, I; P, e6 h( r8 k
  4. 85 17 STA $17
    ' J, H0 c$ S0 u( x1 b
  5. A9 00 LDA #$00
    * q) H5 o& M* A$ w3 b) N

  6. ( |& X" e' I& m
  7. F0BF:2 m. X# F8 W& B2 [+ K1 t( b' Y
  8. 85 16 STA $166 n1 f8 K% W  [6 O$ b9 f
  9. A5 15 LDA $15; S9 g! s4 H: v9 ~. _1 _7 m2 p4 u0 W- [
  10. .5 p8 z6 u, k/ g. N; N& j
  11. .
    - k0 N. x! Y6 K, k+ `2 ~' N! f
  12. .
    " Q8 N" ]" G, Z4 W: P- m
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
" j6 Z% m8 m1 ]+ I. C
疾风之狼 发表于 2012-9-25 18:10

% e/ }& e% \. s5 |" B  r4 T' |/ M% m7 a' g( T: g4 G
狼大,我按照你的方法,不知对不。- M) F9 t  W( r, o$ k2 ]

/ a) C+ G+ l+ u) H0 d/ q
  `: j) Y/ e4 \4 q# M% y% l9 n4 s  v" p原数据
9 S! |( o. Y- H* HC021:       85 16 A5 15 85 173 |0 Y$ t2 i2 l! a7 e

) X& n/ a1 r! }9 I9 u# ?修改后
+ }) n2 C( |1 Y( t! p7 f7 T% gC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF. n* ~+ S3 n8 l' r

9 c. x" B2 _6 m
' |2 {5 x! m% Q/ L2 N4 XF0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C0251 p  l; X4 {6 F; `
& [) b" G# p  }7 r
+ s- I& |& s3 b& E7 i0 O: Z
: _2 ~- W, u2 C" U# z; Z6 v
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
, x' E: |4 P, J$ q8 F* E- O
& L' |+ |- J8 P! W2 k; F& O5 c看了money的文章后,这次我把前面的几句指令也列举出来:; [4 M9 y/ H1 k' f) o+ s
C01F: A5 14 LDA $14               :A=0x123 k* c' H4 Z) }; x& z1 p; o. D
C021: 85 16 STA $16               :[0016]=A=0x12
, x* T7 s* G6 O+ W3 e
4 j1 e2 {8 i2 a根据文章的内容我是不是应该从C01F这个地址开始修改呢。( o" L5 }  U4 g. c6 L  k1 a& \
我现在重新动手测试一下,有问题再来请教你们
% y5 D- \2 J! V% I7 ~9 H0 `( ?$ G" h' O% c5 I# ^0 [- v( ?

3 n) @% _# m0 j* P2 H4 ]" I* _经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-13 18:36 , Processed in 1.070313 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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