某种特殊情况下该怎样解决?
我在修改的过程中遇到一些只有2个字节的数据例如 :
C021:85 16STA$16 85 16 两个
然后我需要在这里修改成跳转,但是要跳转的地方需要3个字节l来修改:
例如:
C021:4C BFF0 JMP$F0BF 4C BFF0 三个
连续的数据是:
C020:14 85 16 A5 15 85 17 A9 00 90 A5 95 D0 08 A5
这种情况下我改怎样修改,但是原数据只有2个字节,如果我这里改成3个字节会对后面连续的数据造成破坏,我应该怎样改呢?
不知道自己有没表达的清楚...希望大家能看懂我的意思.. 本帖最后由 money_114 于 2012-9-25 18:07 编辑
就直接跳转, 然后在跳转地址这把前面修改的命令补全
跳转命令看这, 写的很清楚了
http://shinwa.kami.blog.163.com/blog/static/72538047200822563622456/
C021:
85 16 STA $16->4C BF F0 JMP $F0BF
A5 15 LDA $15->EA NOP
85 17 STA $17
A9 00 LDA #$00
F0BF:
85 16 STA $16
A5 15 LDA $15
.
.
.
. 本帖最后由 rxlzh 于 2012-9-25 19:54 编辑
疾风之狼 发表于 2012-9-25 18:10 static/image/common/back.gif
狼大,我按照你的方法,不知对不。
原数据
C021: 85 16 A5 15 85 17
修改后
C021: 4C BF F0 15 85 17 把连续的数据A5覆盖掉跳转到F0BF
F0BF:85 16A5 154C 25 C0 重新写入原数据和后面被覆盖的A5然后跳回C025
我之前也用这个方法测试过一次,不知为啥返回模拟器继续运行提示错误。 本帖最后由 rxlzh 于 2012-9-25 20:08 编辑
看了money的文章后,这次我把前面的几句指令也列举出来:
C01F: A5 14 LDA $14 :A=0x12
C021: 85 16 STA $16 :=A=0x12
根据文章的内容我是不是应该从C01F这个地址开始修改呢。
我现在重新动手测试一下,有问题再来请教你们
经过我测试后发现可行,在C01F地址那开始修改,没有出现错误,再次感谢你的文章{:4_103:}
页:
[1]