EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
: Q- T# W7 m" k1 Y2 P: j例如 :      
. I/ h( _2 B+ n  W, s/ j& b7 p C021:  85 16  STA$16                           85 16     两个# F& Y. I/ {  e) D9 B

, y9 ^* E6 n# P: z
6 `  X5 N4 k$ `5 |然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:: L. B0 K% ~' J7 W8 W) ~
例如:" c( e6 I: J4 @# K8 p' i2 Y
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个
* E: @3 b" B! E+ D
  n9 G+ M3 v- x0 u! F* b( v5 k0 A
% Y  o/ e3 w5 i$ I* W6 T4 p连续的数据是:
& A9 l- i4 [4 I( V
( |) R) h' ^9 F; J! X$ G3 aC020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5/ ~8 b; _4 X! j1 z4 Z2 P

  z1 u" y3 }3 H- j0 G$ K0 X
5 s3 S5 z0 k% ~3 e5 H( Z/ x这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
* Q: g* N' T" `' [* `4 j. V
' {& ]8 a5 N1 ^3 _4 S不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 $ k% K$ K( ~8 n' d' `+ ?, I
+ w- P4 H+ k3 {9 u
就直接跳转, 然后在跳转地址这把前面修改的命令补全) r! s/ }+ M6 J4 p

9 D4 M5 |# _9 X' V# Z跳转命令看这, 写的很清楚了' f' ?$ u+ R$ j; b
http://shinwa.kami.blog.163.com/ ... 047200822563622456/* z! s$ l6 f* z4 D- `$ w2 [
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1865 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:5 c1 G/ r# L' x8 C$ D
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF# p9 \  Q/ Z/ U$ m( ?# \* U
  3. A5 15 LDA $15  ->EA       NOP
    6 Z/ M0 k7 S' C8 H
  4. 85 17 STA $173 K. i1 e6 \, ]" ~
  5. A9 00 LDA #$002 }& z8 R! S* s* l3 p

  6. , H3 E$ G" k  R
  7. F0BF:
    % X6 [$ Z2 N8 k
  8. 85 16 STA $161 I6 r( O  j. ]& r
  9. A5 15 LDA $15
    ' A7 x0 |2 t- f- z3 Q% O
  10. .2 S! }3 F1 e$ E2 X; z
  11. .
    - u7 }; ~! @# z$ I3 C
  12. .2 O8 W/ O5 E7 {5 k( \
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
( A+ C! u) P7 y
疾风之狼 发表于 2012-9-25 18:10
0 U$ S* [, k( Z0 t

& {; O- [; Y! q1 @& J6 O' a狼大,我按照你的方法,不知对不。
. l9 W  {0 M3 Y
' f# z0 P( \* U2 N- c7 R8 b, @( q9 T- p- ?! S0 n
原数据4 ~4 ~9 |- m/ W$ W& y, L* U: {- P
C021:       85 16 A5 15 85 17  \, R* G% K8 }: A3 x. d
& O" t* p  o. |7 a( e
修改后
3 T: W0 f7 G& `C021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF& J! s1 j# e! I1 z* Z) i; _7 F
. h. O* E. l0 t' W: ^# N

) {# }7 d% I; I: @* K% [9 N0 Y0 qF0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
5 H/ W: O+ W- I5 D
8 ?4 i- ~% I/ w# K' Z! ~
) P7 h: g0 Z4 s8 y& {4 \9 \1 g' R! J$ G8 t
2 W* e. G) g* X' _- b  D3 s) v我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑 ! Y! c4 F8 I; S6 B! Y3 V7 f: }
; t" O! n0 z, Y; m0 a( E
看了money的文章后,这次我把前面的几句指令也列举出来:) n  M# ?# e, a
C01F: A5 14 LDA $14               :A=0x12
" |/ v& Y1 I7 o  D/ L: w6 xC021: 85 16 STA $16               :[0016]=A=0x12
8 b  b" W! T( z6 m6 H% q' V# i2 O- D/ @- K  ~  `
根据文章的内容我是不是应该从C01F这个地址开始修改呢。. C; G( W4 @+ K) I- R9 i
我现在重新动手测试一下,有问题再来请教你们
! N' Z6 z1 C9 R, t' W- ?' a6 U: V

: ~7 [) ]! K; G经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-19 07:16 , Processed in 1.099609 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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