EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据/ E% d& ?& w/ u* K- q6 H& V" ^
例如 :      ) z* E. E" w: v3 q; v6 J
C021:  85 16  STA$16                           85 16     两个  r+ ?+ p+ q" V; s& [

* O4 l! _: n0 y! [3 I( {
+ B! ?2 ?7 E/ M$ r然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
+ o) x9 a1 r; w/ M. M例如:6 Q! H+ b8 Q+ M6 D8 y
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个
' ]) ]& L3 \. A$ Y5 \$ {0 j( o7 ], w" O0 r+ g
+ o4 t( o8 H( Q- m  B
连续的数据是:9 z5 v- D- O1 g4 t
/ q+ l9 m8 M- B4 p3 K% C5 Z: j
C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
! c. S6 j/ ^$ l( l$ |
2 _  [6 o# L& g! k" E! Y  A; L: T6 D+ D+ O: d4 V3 B. O7 N' L8 K" l4 S
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
8 q# M! O0 i+ }6 C3 t3 }2 n; Q! G. Z
1 z# v$ E) {# N! a; H不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 7 W+ q" B  m3 J/ I$ h
0 v) P% S/ K  f
就直接跳转, 然后在跳转地址这把前面修改的命令补全) A1 L7 S/ G: ]. X
- Z0 H& R( e$ p' P8 U; m2 B+ a8 b
跳转命令看这, 写的很清楚了
; I. _  i; v* B' C: d4 z. y. mhttp://shinwa.kami.blog.163.com/ ... 047200822563622456/
% B& S; |+ M0 R9 T
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 2049 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:
    * t% s5 ]6 @+ k0 d; _. `
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF
    # w5 L) ]4 y' H1 f% y6 J- M
  3. A5 15 LDA $15  ->EA       NOP  Y& I. h1 |& r' k2 e: d
  4. 85 17 STA $17
    $ S3 j9 e1 F. ?, p1 _0 ^) N! S
  5. A9 00 LDA #$00
    + J; q) ]2 ~: R3 U5 H- Q

  6. 3 H3 k$ Q' t* E
  7. F0BF:
    4 D% z3 l3 x" i- a3 L
  8. 85 16 STA $16' s% D3 l3 F( A  n" A
  9. A5 15 LDA $15
    6 F2 t5 Q. Z+ r) i6 h
  10. .3 D3 J0 ~0 h% e1 \: j. W. h
  11. .  W8 D) Z8 H6 u7 k2 `/ X6 j
  12. ." B- ?' u8 I2 P! k/ l. g
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑 & l0 p$ j: b6 n' T# s
疾风之狼 发表于 2012-9-25 18:10
- i  A$ m1 x' R% g

# `% w: }5 Z4 K! {: L狼大,我按照你的方法,不知对不。
- I$ e1 R* Q- c4 M/ ~" K) U* Q3 z; k/ H% |; {5 V, L2 @4 ~
- d: H! u% K) L' ~0 |
原数据
% k, ?& H- _# r! SC021:       85 16 A5 15 85 17
9 A) y' J! j' h! _6 u8 ^) G+ t
8 i0 s2 _: [4 v* ?5 |. J: I修改后
" o2 ?0 r0 P+ q/ YC021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
1 G4 ?# b9 t- u+ A! ?' T: p9 w! ~* q/ }; g

0 L6 b' Y! e  M" m% B/ EF0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C025
) @  p7 D9 _) E
* x6 V; J  \% R( o: ?1 I0 L+ k4 C) w2 I) q7 G. w
9 B+ Q+ Z* x) y  Q0 a  b
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
; D3 \- d4 y6 {5 ]6 E- [# a# j# E
看了money的文章后,这次我把前面的几句指令也列举出来:
( V7 A4 V) d; m7 x3 n0 SC01F: A5 14 LDA $14               :A=0x12
" c$ z* [0 i( a" E4 |7 @1 gC021: 85 16 STA $16               :[0016]=A=0x12
8 x# T* u" N7 @. B2 w0 p
7 I" z9 J3 C  y, d6 D根据文章的内容我是不是应该从C01F这个地址开始修改呢。4 j! v4 D* k: U
我现在重新动手测试一下,有问题再来请教你们
; T2 [6 n1 F& o5 x6 P2 i1 K! R5 |9 C; `2 M7 \  z

9 F2 k. i. U" U- I& ~$ D经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-24 14:17 , Processed in 1.090820 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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