EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
; k7 G. c7 c$ a例如 :      $ G8 ?7 i0 H  Q9 {( p1 {& A1 b
C021:  85 16  STA$16                           85 16     两个/ U- S, P" U: E' h3 q

/ r4 P4 K( d  X1 j
6 n0 b1 [1 X  m7 P) h. A' K6 @9 }0 h) q然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
: D2 U  R2 U) Q' E例如:
' e, D- ]. w6 e1 w  J: ]8 xC021:4C BFF0 JMP$F0BF                   4C BFF0   三个4 t7 d. R& @" j- ?: r+ q5 t

3 a) l$ a& p/ _
7 k/ `' c, `! {9 W- J. w. a! A连续的数据是:7 j. c, ?9 S: d) i
/ R1 K( U- ?$ k3 q) b
C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5+ Z; V" r7 i  |- B' j

1 S. n+ C( ^5 \- @8 X; P' {/ z8 |( U/ h# r2 r" A
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?: I0 V4 v# G3 V6 E# J

* `: C- f# v2 h. `1 {1 g, V# o不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 0 G# b# t+ K! o& I0 J
5 g% S- p7 j* _- W5 ^
就直接跳转, 然后在跳转地址这把前面修改的命令补全
4 v* z7 f* c/ |+ c- l% n7 b' `
* Y  N( `; b* X7 p% f跳转命令看这, 写的很清楚了
% \' Q: T7 x& f0 |/ u& ^4 \http://shinwa.kami.blog.163.com/ ... 047200822563622456/. q" q. W! P% t& z! g) P+ K
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 2114 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:, t# N, T$ ~7 c4 c7 N! {: [
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF" Q2 I' i- L, W6 o7 n" l: L& S% P- h
  3. A5 15 LDA $15  ->EA       NOP
    $ P7 s; p( u4 X
  4. 85 17 STA $17: T, s) u: E! V. U; r
  5. A9 00 LDA #$00
    ; \( A, ]1 T  o$ [

  6. % {! B$ K$ F% B: k% }9 e! z
  7. F0BF:
    / Z* @7 r0 ?% _' i1 l: o
  8. 85 16 STA $16: m; r8 l! J( r1 M6 n. X6 n
  9. A5 15 LDA $15  X8 T. |2 o3 d+ H
  10. .
    ' z/ E. `: o0 O* y3 o
  11. .& X, o3 L8 h: f4 u  w& e
  12. .
    , H7 k8 E4 [$ ^7 w
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑 8 {0 B$ L0 c0 o1 J- T0 Z- D
疾风之狼 发表于 2012-9-25 18:10

# A  m' x) F( L2 q1 o- a9 |* K: {+ D* S) h4 B1 o4 P
狼大,我按照你的方法,不知对不。0 a( ~# Q" V$ u, M) [  }, a
2 B& a& G* L/ Z; U

- M2 j1 H1 D2 J, n& A6 z) n5 p原数据# i9 v, M, @. l# C: T; p
C021:       85 16 A5 15 85 17
& q  p5 w4 K, ^* _: z( A0 y& H! I5 A' Q9 P
修改后7 q4 e. }. T  O! D; }5 M
C021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
. `; z% {) }- G
5 ], U3 z0 ]! e4 v5 d) x: g2 A. H) |
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025; T# x* u7 Q7 |* b% S. W; H
: O/ p0 S( M5 K' G9 \9 f+ |% ^

# T8 u1 Z6 y' v! ~+ j' p/ I7 k- Q. j* S) i) o# ~" O% k
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
7 Z$ X( Z6 ?1 [" m$ E- L8 `) ~1 v; H* Z* l+ H: m/ U0 P8 ^+ [- u
看了money的文章后,这次我把前面的几句指令也列举出来:
, \. t& I6 s3 K5 AC01F: A5 14 LDA $14               :A=0x12' W5 s' [, d) Q7 k5 d
C021: 85 16 STA $16               :[0016]=A=0x12; t' Z5 P, v3 }5 @/ _- f
% g9 w" z0 {- L5 H, i0 d% D
根据文章的内容我是不是应该从C01F这个地址开始修改呢。& i, m/ n7 l2 n( V0 g$ b1 m+ V# N
我现在重新动手测试一下,有问题再来请教你们: }7 r0 m% b7 i6 d0 m# C0 ]' y# C
3 G' ^( R+ y- n4 y0 a
; X* B' S; Y9 v! p
经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-10-28 12:49 , Processed in 1.066406 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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