EMU618社区

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

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

[复制链接]

签到天数: 29 天

[LV.4]偶尔看看III

发表于 2012-9-25 17:42:38 | 显示全部楼层 |阅读模式
我在修改的过程中遇到一些只有2个字节的数据$ L1 M1 U- {+ X7 Y
例如 :      
; q3 d: P( c8 o3 e C021:  85 16  STA$16                           85 16     两个
5 V" a" V! f8 r8 s8 J
  N" p* Q6 k) a5 b
  F/ o6 @( x+ D然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
  ?& O: f4 p9 j例如:* u7 X  m( [1 A+ I7 X8 x  u
C021:4C BFF0 JMP$F0BF                   4C BFF0   三个
/ }1 [( T: @3 S* `2 `; E% V# a& D: M, t; n
/ k( S8 j8 Q4 |; S, R
连续的数据是:% g. r4 F3 F$ ?3 j7 [
( M( \& b; o8 d' m+ f5 @# c( U
C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5( v0 u# S& q; v# U+ a

/ h( e$ |  f! Z$ H: F
6 C( Z7 l5 r0 j" r0 P. e这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?4 [) q0 I/ l3 P. F: X- T; f
  `% p3 |& R) F+ K: D4 d: |
不知道自己有没表达的清楚...希望大家能看懂我的意思..

该用户从未签到

发表于 2012-9-25 18:06:12 | 显示全部楼层
本帖最后由 money_114 于 2012-9-25 18:07 编辑 : S, y5 {/ Y6 b# |/ E( o+ W, M5 O

3 j; [7 B6 b( l+ F% e1 J$ F: \就直接跳转, 然后在跳转地址这把前面修改的命令补全5 y" L0 o: N1 [0 R
- i" ^% Q% K( ?$ _
跳转命令看这, 写的很清楚了
4 ?% j5 l6 |) F' vhttp://shinwa.kami.blog.163.com/ ... 047200822563622456/" r. o& B5 S& @# u; L7 j4 O
[发帖际遇]: money_114 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 1826 天

[LV.Master]伴坛终老

发表于 2012-9-25 18:10:06 | 显示全部楼层
  1. C021:+ P" @) a3 a' F3 `7 P+ H! H& r$ D6 P
  2. 85 16 STA $16  ->4C BF F0 JMP $F0BF6 ?1 {& A' a1 T8 Y8 h6 L
  3. A5 15 LDA $15  ->EA       NOP- N! k2 J- X# b7 g$ K
  4. 85 17 STA $17  G0 ^6 ]6 ^' g, p
  5. A9 00 LDA #$00
    4 c7 D# v  R) D2 B7 Z; j
  6. 3 G+ H: `: [( g- }  ^0 E0 H5 b8 E
  7. F0BF:3 [/ V+ E9 e( T% j, |$ B* _6 R
  8. 85 16 STA $168 C! _, b- L: ?: T
  9. A5 15 LDA $15
    " @. b  u1 D% \& h
  10. .( T" W% P" D5 C7 Z' D
  11. .
    - T# t2 z( o5 b
  12. ., p0 z1 Q# `- }" w4 u( J& `0 U
  13. .
复制代码
[发帖际遇]: 疾风之狼 被钱袋砸中进医院,看病花了 1 个 柠檬. 幸运榜 / 衰神榜

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 19:51:21 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
8 {* X- C8 E: P' z# v) m2 b# S
疾风之狼 发表于 2012-9-25 18:10
" Q: Q5 F% J$ J5 z9 p
% `9 W4 G& _& _# k2 |) u2 J
狼大,我按照你的方法,不知对不。# {2 l8 a# t* O+ k6 q

- J/ m5 W% j& ]0 V4 p: F' m) y/ d( K( I3 [
原数据
* ~- V( u' ?$ c% yC021:       85 16 A5 15 85 17
' ^0 _& |! J9 y# D# A8 O. {' O
9 ]: A8 B3 J! J修改后7 a, P; |5 G& C- E
C021:       4C BF F0 15 85 17                  把连续的数据A5覆盖掉跳转到F0BF
2 [7 h. o7 L: y* u% g% a% p8 D* x
. Y; o7 \4 p" t8 s; ~+ k
F0BF:85 16  A5 15  4C 25 C0                重新写入原数据和后面被覆盖的A5然后跳回C0250 c# ^+ E! J* J% O0 [
# d  b/ ]1 U+ ?, r6 K/ J

% f9 ?$ Z2 n) M1 `4 F" W0 u8 q! n) v) O, s
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。

签到天数: 29 天

[LV.4]偶尔看看III

 楼主| 发表于 2012-9-25 20:03:47 | 显示全部楼层
本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
( V' w! F9 R6 Y# d1 q; b3 t9 N7 s) ^3 q4 p
看了money的文章后,这次我把前面的几句指令也列举出来:
* g; [) F' j$ t# kC01F: A5 14 LDA $14               :A=0x126 N2 x& J4 S  A8 P! G* F
C021: 85 16 STA $16               :[0016]=A=0x124 [6 J: Z( o$ b- G6 f7 b( S
- ?4 P$ Q5 u) ~4 }
根据文章的内容我是不是应该从C01F这个地址开始修改呢。
% n- ^# m# u' P& X2 [% S/ f9 i% L我现在重新动手测试一下,有问题再来请教你们
, d$ Q2 d/ P; _  b# H9 w' C" b7 @& ^1 B) ]2 I- ~
; t0 F0 T/ R4 H9 t, u1 q- c
经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-11 07:55 , Processed in 1.065429 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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