设为首页收藏本站

EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据  @( N( d$ [5 U5 `8 C7 a' F
例如 :      
- u0 A5 M/ I) r1 l6 j! s0 v C021:  85 16  STA$16                           85 16     两个6 m( r+ G: F3 e8 t) v; F
8 A6 J* f" r. F$ `9 z

- K  u* z1 q) |9 H' ?然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:9 L) H6 a( h9 z6 p5 c
例如:$ p, G, @) `/ N: p2 B7 g
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个% _3 j5 E0 n; }

& ~. ~% q3 ?" u" o" k
' Y& K' S! n5 b% _7 k* n* b7 t' C# a连续的数据是:4 c- m" x1 L( a: x- b' X& G

9 b8 s' d+ H( u# k" A5 K0 {4 K% DC020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
6 L5 S) w2 T5 J+ X& e. D4 Q5 Z& E. o5 q6 Y9 r
+ B. {0 Q, q% f# M5 y$ P5 g# }( H
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
- ~: M" z% d0 e; n9 O7 f# m8 I! u" d$ {  c
不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑
- U. P3 n' _0 F
/ B, F  q% f0 x" f就直接跳转, 然后在跳转地址这把前面修改的命令补全* M% i) f, x6 l1 x( R/ w
5 P; H- o) t5 x; U
跳转命令看这, 写的很清楚了' {' ]- p1 O6 `+ W! d% a
http://shinwa.kami.blog.163.com/ ... 047200822563622456/6 X# q8 a4 B, F7 W+ _: l3 P
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1895 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:8 ]; l) F6 t' W4 Y/ Z
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF% M* M* i5 S+ A% |2 p
  3. A5 15 LDA $15  ->EA       NOP
    9 y3 ?' _0 X3 b- X
  4. 85 17 STA $17
    / z  D4 n' ?7 |. G& }) I, ^! K% N! V
  5. A9 00 LDA #$00
    1 {* j" c+ @0 k! E! |2 B

  6. 7 ?7 J! Q# P! `( c
  7. F0BF:9 m& m5 t7 a- D2 C, q7 j, h
  8. 85 16 STA $16
    , x+ q" r4 m+ S3 @1 y
  9. A5 15 LDA $15
    2 O  j: k5 Q* y; u8 q
  10. .& b4 O! l0 w/ G' _$ N
  11. .1 y% x3 }  X4 y+ q+ n
  12. ." W5 a& h. q5 U' F6 r
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
9 Q) b) \- d7 d% a3 I1 t
疾风之狼 发表于 2012-9-25 18:10
4 J( Z4 \, B% m4 w* P/ {4 h5 A

. K3 ~" X( x: T6 r; A) Y狼大,我按照你的方法,不知对不。
6 I8 `/ S  e) P0 K
: {8 h) l- ^1 i/ Q( J8 q/ ~) v8 T, b5 X0 k0 p
原数据3 B6 \  i, X+ r/ m6 a
C021:       85 16 A5 15 85 17) J# E9 u! y2 R" S

) H! y9 i9 X4 `, {修改后
& I/ I) D" p4 S/ J) G" E! WC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
; V/ ?, [  W) y; v
- M2 q) ^% E# p3 N- F
, x) J) @% b( k4 i7 N2 uF0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025( p. z5 Z2 g5 s8 l
+ T" r1 j) b& B6 ~
8 N- Q4 z  h+ H/ C7 {8 l9 k$ c
; D  {1 H- Q: U$ M3 w7 s
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
) t0 q8 L+ V) L3 b9 E/ N$ D; _# E; N& D8 W1 ?  [  e
看了money的文章后,这次我把前面的几句指令也列举出来:
  Z" \8 i( ?) z" Z  @" q- A) ]/ XC01F: A5 14 LDA $14               :A=0x12
" a3 f/ e( i! K; fC021: 85 16 STA $16               :[0016]=A=0x12+ t* D' G: B  u

; H+ N1 h6 [; R根据文章的内容我是不是应该从C01F这个地址开始修改呢。2 `: Y# D2 Z" W. N& ~
我现在重新动手测试一下,有问题再来请教你们% Z; U% s) `: S4 {8 Q: \, A

! K7 u. ]9 ^+ t1 N9 Q8 J; A" s1 _* P2 c& H9 x: q
经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-2-25 18:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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