EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据6 F  X; H  [- s/ R( J* q
例如 :      0 V1 G" w4 Q; T) J4 |
C021:  85 16  STA$16                           85 16     两个: |  u8 B: C! e
, N+ t0 _# [  }. [6 Y7 [) i  R$ ?
# o1 g* [. u5 h0 E
然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:, u; r9 H( o2 K, ~. c# |; d( q
例如:3 x; N) M9 P9 s. F) d
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个  C$ x" C$ }( e) s% P  q& c

. G% }+ p" |0 v6 p! q3 @8 k2 b) D8 ]4 ?# R% I
连续的数据是:5 I, M( j/ G* X- [0 C1 S

) w, i  f. b  [% {C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
  m- J- P7 t1 A& W) x
6 K1 ^- v7 }; R4 k2 s  }) O5 m* M6 ^! {! @6 Y
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
  ^& O8 i) z. u7 c$ Q: `
5 z* ]% Q" W1 C/ n+ W& v! y( N不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 & H& B9 s: d, e/ f0 q- C3 Z2 v
' a0 D: i5 X3 Z" J. {
就直接跳转, 然后在跳转地址这把前面修改的命令补全
9 ?% y; U6 }$ N/ u
+ p9 R& d8 }. V9 \, z* @  e' |跳转命令看这, 写的很清楚了
+ P0 l) j  R% w' O  Ihttp://shinwa.kami.blog.163.com/ ... 047200822563622456/
, P: o+ S/ L% G$ C* H- l; W$ X
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 2173 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:8 u& u9 |7 i8 G: ^( g1 J' {4 k
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    . n" G/ j! `% w6 v8 d! Z' h0 W9 K
  3. A5 15 LDA $15  ->EA       NOP2 ]2 X" O7 p! f8 s' \  ]
  4. 85 17 STA $17; B2 Q: t' }! a: W9 z3 Z
  5. A9 00 LDA #$00
    # H+ i0 w: g/ F$ I' W7 @
  6. # P$ X- f0 K7 X: w: Z! ]9 e4 a
  7. F0BF:+ v5 S! n6 [3 p- H/ {, B
  8. 85 16 STA $16
    ' z, J  H9 N; E$ c1 p( B
  9. A5 15 LDA $15
    / G% L  |7 A9 V
  10. .6 H3 w* S7 U" q4 }" M
  11. .
    ) l( [* b8 _1 c" @* f, D7 s: w
  12. .
    / n4 o6 i' i* O  ^: w1 E* _
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑 & D5 |4 N& R+ J
疾风之狼 发表于 2012-9-25 18:10
7 g+ [& b+ s/ E. T

( I% ?' \# `1 |7 |) _" ~狼大,我按照你的方法,不知对不。
1 J, A$ r* T5 X* p0 E
- M  K( z; E/ b& G+ a
, H( X& l: W9 X! G+ m; m原数据
: x! u- `3 Q# r! S9 l. _5 SC021:       85 16 A5 15 85 17
9 k( S, I) y6 \1 g; p5 S: K1 l& F0 @) p9 e4 K$ t
修改后
" Y* P) p. j4 P: {. ~3 W3 cC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF+ R/ V0 h& C$ P- }+ h
. l5 D8 _0 Y2 ^  e1 m
8 h2 J2 o/ O; m4 Q
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025% z0 Q6 e4 d: l/ P# E

1 X6 E0 b1 X+ }! R. i
3 R+ R) b; s7 w3 k3 ?
9 B8 B/ F2 {& y6 q  R! |4 v3 i8 `我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
# v  v5 c- |4 i5 V( @0 L$ D3 z( @* Q: s0 @( ?
看了money的文章后,这次我把前面的几句指令也列举出来:7 X; ^9 Z/ [# ]
C01F: A5 14 LDA $14               :A=0x12
$ L- U% |8 G6 D1 eC021: 85 16 STA $16               :[0016]=A=0x12
- K0 F7 k+ l' e/ s3 r" y3 t# s* L- x6 n; @7 f
根据文章的内容我是不是应该从C01F这个地址开始修改呢。2 O% L3 D( U0 t( T4 G; g
我现在重新动手测试一下,有问题再来请教你们& Z4 h$ u( m9 g) @- e) ~. b" i7 ^
4 O5 q/ Y5 x: G5 N( d( T

7 i0 f. {+ I' I  I- Z: E# b0 U经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-27 21:16 , Processed in 1.064453 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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