EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
; V0 c0 T; b. ^% S例如 :      
2 @2 ]1 j! |8 J- m8 z C021:  85 16  STA$16                           85 16     两个
4 D" _# L! r* j: V) e0 z, h$ a1 h$ l& y' b; R4 g+ Q

" }- v) v2 P' u7 Q然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:8 d, z2 X: `! w& \/ T! y
例如:
/ ?( ?+ W- U, [6 H& I6 aC021:4C BFF0 JMP$F0BF                   4C BFF0   三个
4 d7 q) m1 b6 q/ I2 s
4 @  S. e' o' K$ e" w. R
! m1 d+ G+ r0 Q0 o% P连续的数据是:$ |' \1 R" k$ e' \5 `& V0 G
+ ~8 ]( g$ A; T& ^- e
C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5  w. w" K# k  O& Q

. h: u$ r8 W' h$ M' \
- r. h1 A' k; U" w. E这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?, e9 R1 |7 R1 P0 o2 m

, W; h5 u+ z0 }2 o6 R1 R( D不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑
: A6 h* C4 |  c' @0 l8 h5 e2 N8 q4 ?  i; m: s) T
就直接跳转, 然后在跳转地址这把前面修改的命令补全
4 e& B# F( N: J9 {3 ^
& g! `% h+ k6 @  ], n, f跳转命令看这, 写的很清楚了
+ K5 a4 V0 h# M$ fhttp://shinwa.kami.blog.163.com/ ... 047200822563622456/
% I$ X7 N" ^+ i
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 2074 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:
    : l0 w  O/ h+ M1 n& |! x
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF, ^5 ~. L$ x% J" v% ^* J- k- `! p
  3. A5 15 LDA $15  ->EA       NOP3 J) Y/ _4 v) X0 {! M
  4. 85 17 STA $17
    3 e+ v7 e4 ^* v% i
  5. A9 00 LDA #$00
    4 o% z* t& A( ]: A- c: v

  6. 5 d( }9 j( |5 T. w+ i+ N
  7. F0BF:/ a4 q6 g4 C( i3 U5 Z+ \8 P
  8. 85 16 STA $163 F1 d4 s$ J7 r! g
  9. A5 15 LDA $15
    ' `) H, t1 E1 m. c  d
  10. .4 Y3 w( C7 F2 {/ L, U3 i! s$ y% ~+ K* x
  11. ., `7 H0 P1 M; G
  12. .
    ) `, ]) v, T8 }6 W# w$ e  p2 @
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
& S- w" K" i& L5 w
疾风之狼 发表于 2012-9-25 18:10

3 @. Q7 Y" ?; V" k  n
# p4 t% r. d" b+ N9 ^# v. G狼大,我按照你的方法,不知对不。
  H( D) i4 E' f' y5 V: G0 Y4 s+ L0 {- {8 ^# z

# z6 u" R, [- h# J1 t% x$ z原数据, C" n! R/ U, }5 F/ T* q4 F7 @
C021:       85 16 A5 15 85 17
# [  d) i2 Z6 `2 o. t
  k& G7 @8 {- K) A2 L* b7 f  q  |6 c修改后9 Z/ k+ o* q. o# J/ q8 \
C021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF' T8 U0 L; s) I

6 ]4 `% H) [, y$ J! D! z" T* Y  H; r8 o
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
! M! U3 s/ Z8 x: c5 u( }0 E$ Q0 H
5 j  V0 J' J% H: V0 K# @. `, R2 k& X( d1 L$ B
5 u+ S: |% V3 G5 H5 a# e7 Z
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
- ?: L1 c2 G1 r% x& X* s9 }! V( _1 _- \
看了money的文章后,这次我把前面的几句指令也列举出来:
5 y- W4 E6 c% v1 o! t; cC01F: A5 14 LDA $14               :A=0x12! B$ d8 i4 q5 {2 Y. I1 _4 y, n
C021: 85 16 STA $16               :[0016]=A=0x12
* S- j  y% F  K1 {; x; o8 J8 D1 m) o, ]) n2 q$ I: {) y4 A# Y7 ?/ t
根据文章的内容我是不是应该从C01F这个地址开始修改呢。, k( V4 u8 f4 Y7 p
我现在重新动手测试一下,有问题再来请教你们
# T" `  u! b8 A" D
) x: R: W+ i9 D  C! Z4 c* `; X/ O5 e6 T7 n8 W. |0 {; ~
经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-18 09:16 , Processed in 1.071289 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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