EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据" B6 t3 @  v0 w4 ^$ b
例如 :      
: C. p# ?) b4 s+ y" V& \; T1 v6 l0 t C021:  85 16  STA$16                           85 16     两个# U" e  t) q# i$ Z, ^8 D& b
7 ^6 q: T$ ^! ?3 j. {: W- k5 J" V( p2 j
' K! l' X$ j0 r) x+ G
然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
7 P0 O3 O# Y3 J例如:
3 T4 e, H  A5 h5 Y3 n7 R; B3 ZC021:4C BFF0 JMP$F0BF                   4C BFF0   三个% @% ~& n6 k# T  S) X  |/ G$ i" W
. `- K9 h% j4 [* p1 Y! Q3 D4 \
* w0 w. t& w1 ?0 o( N$ d
连续的数据是:
, k; g. o, j0 C# Q) V4 Y
9 z- E0 Z* w- EC020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5/ O3 `- I" X* F
. c1 t5 e; K  Y+ O+ Y1 ?

. ^# b3 e/ _; m2 K7 W% D5 P这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
0 V, \5 d9 r+ l( R0 n, D0 E. r* v  {2 C* e) x) _/ ^( o
不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 / z- q! F' E. \

: Q# P, `5 U' G, a$ b. ?4 x! W就直接跳转, 然后在跳转地址这把前面修改的命令补全
" `" d' ?; n6 \3 M* H! O5 H8 E% e) v) z3 m: ^7 G
跳转命令看这, 写的很清楚了9 C) M. a9 R+ C' O+ Q2 o. U; x# \
http://shinwa.kami.blog.163.com/ ... 047200822563622456/
6 t$ c6 z$ q3 K# a
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1773 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:5 V% o1 H( ^5 C$ j2 e
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    ) F5 R& F; {! K# ]/ j: l8 X
  3. A5 15 LDA $15  ->EA       NOP- M- G6 {2 {0 T: {
  4. 85 17 STA $17
    ' C( y3 Z$ t6 B2 W2 p3 @
  5. A9 00 LDA #$00% x+ C; y$ m/ b% Z3 P

  6. * G2 J! i$ L( U$ B8 @7 h
  7. F0BF:
    8 a* G9 o  w+ p( t8 a" u6 ?
  8. 85 16 STA $16
    - V" e8 h) f6 a2 B
  9. A5 15 LDA $15- ~4 l1 T' V+ }1 u3 _6 E
  10. ., e1 G8 o3 H- v$ g7 ~
  11. .3 x# x( Z7 v2 f  p1 I
  12. .0 v( W: e, {5 @; z* d  i: D* r' U
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑 2 x' ~5 D* f5 V
疾风之狼 发表于 2012-9-25 18:10
, \/ u2 |9 A( o& Q" {
, q. u: @2 Q1 Y
狼大,我按照你的方法,不知对不。
* h  Q% n, g" Z7 M" g1 L
8 N1 y, w/ X; q& M4 h7 R* r" X, K
原数据4 }- M/ F, c( j* ^  b$ M
C021:       85 16 A5 15 85 17
# K. |: P$ c) h7 |# Q# C
! T) r" |0 [. G+ m0 P2 I修改后
# a' x% b  B7 Q- S8 h9 K2 H, NC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF; H; |, Z" X9 h! C8 x
/ ~  N0 c, c5 R6 X4 }4 u8 g( b: D
; N: F3 U$ T; h0 y# f+ c
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
  h8 [& T- l- L  j0 q0 [( J7 |5 l6 n& {: p7 t* |9 m5 R0 [
/ g4 ^3 _3 @1 N6 Q

5 E' ^& o& {  T: B3 K我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑 / n* U/ U: v$ o  ~9 R7 v" r1 P
/ a. |+ ]( e5 K
看了money的文章后,这次我把前面的几句指令也列举出来:$ `1 E' g: b) {/ n
C01F: A5 14 LDA $14               :A=0x12/ ^( K) M- H# E2 o; {* A
C021: 85 16 STA $16               :[0016]=A=0x12/ |) o5 N# w! B/ `' ?% g: z8 ^

7 |/ {, H0 T6 N+ y& R. n, J/ Z9 P/ a+ m6 {根据文章的内容我是不是应该从C01F这个地址开始修改呢。6 S$ X6 c$ V9 J1 q5 F+ E
我现在重新动手测试一下,有问题再来请教你们
8 }# T  L3 z5 D# ~" I
. h; V* w1 ?% I' |5 a! s! M8 B
, Z% Z/ L! L. i, O经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 12:20 , Processed in 1.059570 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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