EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据
- j; K! {& R+ F$ ?: f+ ^例如 :      - f3 e( a1 k! ]& M; \
C021:  85 16  STA$16                           85 16     两个
. h1 _+ D7 D) @' r" M# f4 O* ~  P
; T$ M: X6 i3 i( W/ d" Q
然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
: C+ H! d0 [3 E3 U) B, U& p& L例如:/ }: f# p- }4 Q( F
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个
: D. x2 k9 H3 B7 s: i+ x! ~+ M% n

- {  D+ ^  _" Z/ Y; [2 `, c% K4 A连续的数据是:
3 `  c# a$ r. w6 u' Z  {2 ^
. |! }2 ?& F/ ?. u, |+ @: g  W8 F7 ?# A0 YC020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5. H6 R* A4 H: I- z6 O/ w

8 x0 f6 ]  U% w% ?
' D& Q/ G# H* Q这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?# ?+ N; H# a' [7 }

' r. g* E- K4 n不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 % k+ q$ f! Q& o7 `0 D
( Q" a, F" {& b1 y4 x" d
就直接跳转, 然后在跳转地址这把前面修改的命令补全; }; P2 K7 ]% w6 s" }: _& r' ^- x
% E* |2 i2 F( e( b$ S+ T) B. m
跳转命令看这, 写的很清楚了. [0 T" \. h5 d& Y
http://shinwa.kami.blog.163.com/ ... 047200822563622456/
4 k, w5 ^7 y  s8 H' T
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1804 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:, A5 V5 L' ?4 e& y
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF/ \8 K" C6 `: `% R% s: z
  3. A5 15 LDA $15  ->EA       NOP
    / \5 C  w' P9 d+ {
  4. 85 17 STA $17/ `# t$ |) N  J/ b) c- o
  5. A9 00 LDA #$00; k, L$ i; g8 W/ \" v3 v

  6. / b: R+ t' V. {( p
  7. F0BF:5 w) A! k* L( ?% p5 o+ a5 {+ S4 E% P
  8. 85 16 STA $16
    2 A2 ]* m1 N; G) O
  9. A5 15 LDA $15
    % e, D' H8 v# I; x
  10. .
    ( R2 ~# P' l9 J5 n8 c! |4 p
  11. .
    5 f5 z/ o, k: H. Y; P& L
  12. .( v# T; M* b& K5 v! |- y% {
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑 ) m' ^9 \% U5 d7 X0 \6 {3 C1 z5 r
疾风之狼 发表于 2012-9-25 18:10

% G8 y! e' q% j% w
) Q! f0 B5 ]1 d( q; x7 P狼大,我按照你的方法,不知对不。
2 c3 g+ a6 ?" o  _" x' M$ q, w8 ~" q/ q4 S2 U
" E3 P3 }. e% f) ^1 x
原数据. z' D: B$ x5 l- b; Q  j4 _
C021:       85 16 A5 15 85 17
& h# m! ~* P# f+ [- \$ V, D$ t
4 g( w9 Y0 G1 V9 X4 Z3 H0 j修改后0 v3 [7 f* J5 Y' X
C021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
* T- ]4 i+ ~' w. {  o
' @8 F5 @: ]# {% C! [! A+ J2 I* F8 ?0 }5 A- `" B: Q8 o2 Q) O1 Q' n+ w% L& g
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
5 b5 F, ?& p4 v& ?
5 G2 O' `: T8 L. ~& g- Z" y
: o5 H) Y* W' D. w5 z2 R
/ B; l" G( p; X6 X我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
* ]9 V! \  H. u" b3 h; p7 j# n, V7 e5 ?) a
看了money的文章后,这次我把前面的几句指令也列举出来:9 m- d* [8 @; |% p, ^) Y
C01F: A5 14 LDA $14               :A=0x12
7 K3 K1 t+ P. }8 tC021: 85 16 STA $16               :[0016]=A=0x12
' W- n  Y# R! e9 Q8 ?* u( D3 l3 P* g$ n% m8 J+ C
根据文章的内容我是不是应该从C01F这个地址开始修改呢。1 |5 ^5 W/ x, {
我现在重新动手测试一下,有问题再来请教你们
0 O4 X5 |, ?2 q# C5 }& K
- b5 p" y) R& b- g4 l( p) T) Z
8 Y) T/ q- F  T/ p* N( B. H4 M! u经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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