随堂考生物 发表于 2010-10-29 15:54:19

问一个菜鸟问题 求助狼大大 刀魂剑魄等高手

本帖最后由 随堂考生物 于 2010-10-29 17:22 编辑

大家好,我时新来的菜鸟。首先,非常感谢国治论坛的教程,让我对hack 游戏产生了浓厚的兴趣!于是我就私下里默默琢磨,今天就碰到一个问题 根据6502汇编 资料上说
INC--存储器单元内容增1M+1→M
符号码格式    指令操作码 寻址方式
INC $addr      E6         零页寻址
INC $addr16    EE         绝对寻址
INC $addr,X   F6         零页X变址
INC $addr16,X FE         绝对X变址
可是我用fc的冒险岛3试了一下机器码是EE 80FE   然后用debug看的时候
它计算的时候是变为0了但计算好以后 它实际的值却没变 这是在怎么回事?还请高手指教,在此先谢谢了!


克罗诺亚 发表于 2010-10-29 16:32:13

代码还看得懂,就是看不懂LZ说的什么意思{:4_112:}
EE 80FE 就是 FE80的值自加1,原来是0的话,应该变为1了。
不知LZ要改些什么。
话说   高手除了疾风之狼老大外,好像其他大部分高手都归隐了.
有点物是人非的感觉{:4_100:}

随堂考生物 发表于 2010-10-29 17:08:01

2# 克罗诺亚
就是 本来FE80的值为FF进行EE 80FE操作后 应该 变为0可是 却还是FF见图1这是为什么
debug中显示 FE80变为0(见图2)但RAM中仍为FF这点 我不懂。

shinwa 发表于 2010-10-29 17:33:54

本帖最后由 shinwa 于 2010-10-29 17:46 编辑

那里是ROM
放程序和静态数据的
ROM=read only memory   只读存储器

你可以LDA $FE80 从那个地址读取到数据
但是你不可以 STA $FE80往里面写数据同样也不可以让那个地址的值+1
调试器里确实加1了,但那只是显示而已

你要测试 INC很简单把EE 80FE改成 EE A001试试吧把地址换成$0x800之前的工作内存就可以了

随堂考生物 发表于 2010-10-29 17:53:56

4# shinwa


牛叉的 谢谢高手,我立马回去试试,非常感谢!

湘西小人物 发表于 2010-10-29 19:38:18

感谢4楼分享心得
页: [1]
查看完整版本: 问一个菜鸟问题 求助狼大大 刀魂剑魄等高手