EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据' Z; a: V. U0 m7 h/ I2 ?0 d8 Q2 a
例如 :      
: F# v5 K+ j7 f8 v! y C021:  85 16  STA$16                           85 16     两个  t% o6 ^% J& F
) ^" F# K5 V6 b) u, d& S; C

+ u5 K5 I- W7 H% Y+ i然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
/ p( w* u7 Z  P/ X( ~5 O例如:6 Y) l( M; c; Y5 w2 l; a
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个
. m3 _" V3 R# n8 z% c8 F/ e( z. E9 w, {

; L8 k% [  Q. u* d3 N  m连续的数据是:
  N6 ?/ M, Y" g- ?% O
. z7 y2 {) O) tC020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5) }$ p3 _, l$ ~

, e- z, j% Y- X; K* _9 p% m9 d- H& t7 b) X, t) y1 d
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?% L. Q$ _* E2 {( J
+ R! {* R: k+ I/ r
不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑
. S+ L3 O/ T! c# \8 k8 w: [
  N. @, b1 Q9 M, y; m- w5 I* \2 ?2 ^( W就直接跳转, 然后在跳转地址这把前面修改的命令补全* [6 _2 X# N+ B: t: s4 x

' i1 z# L& t3 g1 m' I" G) Q: e跳转命令看这, 写的很清楚了
; C: r, {1 ^% Qhttp://shinwa.kami.blog.163.com/ ... 047200822563622456/
/ O8 [( U0 F- ?1 J
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 2074 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:
    , P& E- C$ l. [9 |% w" `( K
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    ) v' t$ @; f  N; k4 w& m  ?" K; X
  3. A5 15 LDA $15  ->EA       NOP! I/ v0 J- X7 y2 @
  4. 85 17 STA $17; ?+ e5 p# O7 e" S3 @
  5. A9 00 LDA #$00# a, |4 P- I; Q1 V2 H( e' ]% R+ w

  6. - i, L9 Z% p) R2 Y% |
  7. F0BF:
    " `4 [) @5 J, G: g% H
  8. 85 16 STA $16
    9 b$ _* h% n1 N7 Y& n
  9. A5 15 LDA $15
    ) r# W  _/ U; a, D" l% `
  10. .+ V0 o. p3 d: b# O% D/ k# H
  11. .
    ! a0 ]: e2 H, ^% F! n0 |
  12. .% R( ]0 P/ }$ s
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
) C2 R0 z* s! H( N
疾风之狼 发表于 2012-9-25 18:10
7 b2 I$ W& V9 {9 t7 b

& f$ c7 t+ c$ s狼大,我按照你的方法,不知对不。
# g1 }# K$ P: ~. B# ~. x+ w3 X  q3 g7 x) f
* {4 g* r9 r! f$ j+ P
原数据% n' L) `$ a# r. V; S* l- F" |! @5 X
C021:       85 16 A5 15 85 17
0 _* k" m$ U3 W# n3 @6 l; `" L6 R* U/ G% T% j. ~" O# {8 X
修改后
5 S% M2 r- Q6 OC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF# s: ?- k6 V- l. a3 R( [
1 F! F1 W) y8 J5 ~4 T" j: ?+ s
/ d6 x4 I1 c' i9 c
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
) i) c5 W7 q) h: H6 b( e( D. B: @% `- c2 A) l/ L3 `1 {3 c
8 ?& R2 D' D( C
+ ^2 _; r8 i6 `* M
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
& f' H2 A7 K  H! c9 l1 L  v# ^6 u0 A9 o2 e
看了money的文章后,这次我把前面的几句指令也列举出来:5 X5 E$ \9 M1 V$ p
C01F: A5 14 LDA $14               :A=0x12/ `7 g1 D7 ^0 u, _$ a! _( R8 m% G
C021: 85 16 STA $16               :[0016]=A=0x12
9 O- K# t: [5 Z# C+ F% u+ M# n1 e" m/ i8 L* N' L
根据文章的内容我是不是应该从C01F这个地址开始修改呢。
- V  d6 i, f0 h: p+ d- a$ V我现在重新动手测试一下,有问题再来请教你们
" [* v, s, O. k" Z  G( P. x& {% t' X, z6 L! o, [( b& U
6 s! ~2 ?# w: K- G5 I2 c
经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-18 03:46 , Processed in 1.082031 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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