EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
- Z9 V+ J( y7 Q5 E" w/ Q6 n# [2 q6 V例如 :      7 J) z( F$ I) s% \! Y9 K4 {3 ?
C021:  85 16  STA$16                           85 16     两个- m  n6 g; \# G7 p) U. I( K. m

5 H& V" _# g" Z# h( o  S' J2 E$ e5 W
然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
' y8 Z8 j% F# `2 I' E2 i5 N5 I例如:8 {" u4 y; f0 Q6 |% z- S
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个
/ c! q& E  |( o. Z
; y+ _4 u. ?2 \* J
( n$ r) X% E7 O; V* k6 X连续的数据是:
; N, ~8 H% A% b8 P6 m2 |9 Z
- |3 y  ?, x# C3 A, ]C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5* V; r. Y8 T" D; M: h* Y# V( j8 e
/ Z$ Y8 e' I+ l, [3 [

" ?4 ]2 W- @) |3 L这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
0 J+ G5 T# p, ^( R( j
, \; h7 f. U) [4 l. K不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 , K9 R6 ]- _6 j, e9 L0 ^9 @
! a8 B6 G) U6 I( `/ ~
就直接跳转, 然后在跳转地址这把前面修改的命令补全* ^; W# S+ ]3 Y* F) L% r3 M2 ]
" W# D  f6 w; e; d8 i! s
跳转命令看这, 写的很清楚了
7 Z" Q: L% }. a1 }3 U  r! fhttp://shinwa.kami.blog.163.com/ ... 047200822563622456/
0 s6 y* r8 J8 c" Y# H& |
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 2092 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:: a+ y" a2 b& Z
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    0 w+ n5 `  ^0 v
  3. A5 15 LDA $15  ->EA       NOP
    ! m' q6 d" b3 x; w" Z
  4. 85 17 STA $17
    . B9 Y) ]+ p; ^
  5. A9 00 LDA #$00; u6 F$ ~, h$ K& u  e1 L* e! z* c

  6. 5 w1 g$ r+ K8 A' n% S0 Q, }
  7. F0BF:
    ! d! @1 [' E( L. n
  8. 85 16 STA $16
    6 c# T; u! L0 x: c  n
  9. A5 15 LDA $150 w" }! A- S  I. @. L7 B
  10. .+ m- e( V$ H/ ^/ |- P% D0 _+ b- |
  11. ., i/ N" R" |) K0 R: U  {. Y
  12. .
    & H* f2 ?* Y7 e- N
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑 6 i3 O3 E2 s) r3 m. j& }; P
疾风之狼 发表于 2012-9-25 18:10
6 c4 T6 V+ \. `/ U6 q( L

6 z4 f) b: s0 C6 l8 s' ?# P. \狼大,我按照你的方法,不知对不。
, Z8 p$ A+ J) F3 P/ X8 m9 t' v
: x( z7 H& C& E8 y! n( y7 n$ _6 j2 R# d4 y
原数据
9 U+ ~: L4 x. B& x) VC021:       85 16 A5 15 85 17
- U' H& h0 Z: e  }& k7 Z
- ~+ L8 y& j/ D0 e2 t3 U修改后
# W0 s: k4 a9 g: ^# r; GC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF% o/ B$ f( L- [* \" l

- C4 E7 j; D; w: `$ f0 l6 u& M  N3 h. a
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
. Z' K; G: a3 i- G* {) A/ r1 M. B* s. F% a" X; }+ }/ q

: e3 J# w& C8 g0 {% o3 m. s
2 a8 p9 z7 H$ i) v- [! u) T我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑 . _; s. H; w9 o$ l- Z) I  X

: Y0 x/ v4 c- V看了money的文章后,这次我把前面的几句指令也列举出来:& p: m3 X4 S* U: q# Y% {) v) o. O
C01F: A5 14 LDA $14               :A=0x129 K% i# U2 H' h" y
C021: 85 16 STA $16               :[0016]=A=0x12
$ E9 \- v7 z" G  Z
4 W, W/ w3 j2 U; X根据文章的内容我是不是应该从C01F这个地址开始修改呢。$ D* V4 \: {. i7 x) p
我现在重新动手测试一下,有问题再来请教你们
- S/ i0 N/ Z/ Y. e  `3 h% \/ p& O( E" ^& k2 a0 T6 Q

0 i  |( f$ W: R: I! b% ]% H经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-10-6 14:55 , Processed in 1.094726 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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