EMU618社区

 找回密码
 立即注册
帖子
查看: 741|回复: 4

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
( J8 _" K" v8 Q; e# _+ ^6 {例如 :      
5 i; \6 R; ~& B3 N0 q& R* P, ? C021:  85 16  STA$16                           85 16     两个
4 ^& @6 U. k, h; r
' `, r2 G4 n, y# x! e4 B1 o; O
6 L( k& @% U/ K  a. `* e然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
* r- b2 n, f" f1 y2 X例如:7 n: v" L& ^, j4 M# L6 X0 u
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个
( E5 b. [/ [$ u2 ^5 j! K  a+ c- _0 D) ~- k

9 z8 N& l) B/ s* A  t% @8 c连续的数据是:
5 ~: l) U& \8 R6 P1 Z% L9 Y; u  P4 v& }; [& G# @
C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
- q2 w; F6 k9 N4 ^9 w# W  B, z. @. b2 X) r' T
3 A" R/ I. j2 x5 h3 N) `
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
4 z% Z& [5 }0 _9 _1 H- o" F
# L" g' A$ z3 y2 D+ o+ E  h不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑
  ?1 a- I# F3 B4 w: }- l; J
: h' A! ]- f) t+ Y  ?就直接跳转, 然后在跳转地址这把前面修改的命令补全/ G" x4 |* E% X- H, _2 q

6 ?6 y' i3 b0 o( D: n/ V/ c跳转命令看这, 写的很清楚了
4 d( a& X8 r( F* n! yhttp://shinwa.kami.blog.163.com/ ... 047200822563622456/- z) }$ P, H+ i( a4 i
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1991 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:
    7 c* ~5 M. O1 l3 [& K; F5 p" d
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    ! r5 Z5 N- @8 G5 ?, Q
  3. A5 15 LDA $15  ->EA       NOP! {6 g" f# k9 \6 N4 M0 i6 y
  4. 85 17 STA $171 i- Z5 |( l- _0 I3 |
  5. A9 00 LDA #$00
    ; J+ c2 c: V% k( h7 i$ A1 u8 o

  6. ! G2 p2 W- x( @2 Z" o7 D7 V
  7. F0BF:
    ! @6 W! O) O* w1 O
  8. 85 16 STA $169 a! b% j0 D, D
  9. A5 15 LDA $15
    9 z0 V6 e1 a- i& I
  10. .
    / Y/ n# F9 Z0 Y. u4 X7 E+ [, G
  11. .1 h8 M. ?6 b4 y% l  I* ]9 X
  12. .
    ; z3 u& ]! ^8 g
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑 ! b0 e* B" _. q2 m
疾风之狼 发表于 2012-9-25 18:10

* C" j; c+ R) D$ V/ v' ^- @& l5 x$ ^( `1 ?$ X* K) W( R
狼大,我按照你的方法,不知对不。
' G8 [$ m) G% s* }6 B* g0 @$ w6 D
0 a" Z# [! w0 z+ \. w7 U) n( d
9 \1 [8 }/ X9 u) e/ m原数据) u# C  v9 e/ p* m
C021:       85 16 A5 15 85 17
$ ]8 I4 U9 N4 j7 P
! l6 a  ]1 L; H8 ?9 G修改后5 I* _( O1 ~" |
C021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF7 F( T5 R4 o5 ]* D' i
& K- a! l4 ]0 J& ^; r* G

9 \2 o0 O$ _- G8 m" [F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025! ~; l& D1 y- F" d' `

/ f1 h- J# E  D7 M- h. A8 v( e) L# ~% s+ W  Y7 o2 V5 A9 l

0 B9 g, U/ z  s; T8 Q! F2 W我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑 9 a; x( r( T1 W, X( r
8 H6 Y9 l5 [4 S9 Y
看了money的文章后,这次我把前面的几句指令也列举出来:3 L9 i9 Q/ W: j/ A- ?
C01F: A5 14 LDA $14               :A=0x12
2 g8 V' f7 x! O- ~* [C021: 85 16 STA $16               :[0016]=A=0x125 I5 j1 K, e8 L" d- [7 {; g- U

7 z& z4 [$ r9 s, `9 U3 P/ n根据文章的内容我是不是应该从C01F这个地址开始修改呢。
9 ?' M1 f  L& b& \. p, P7 ~我现在重新动手测试一下,有问题再来请教你们
0 g$ j5 K* t# o1 W3 u9 }) v
3 L/ [; x- i& }5 z# m$ x* m
5 }6 U' J( _& \1 a$ W' O经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-27 06:35 , Processed in 1.119141 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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