【求助】游戏模拟器Kawaks与Motorola 68000汇编的问题

SM光 2005-09-22 09:40:37
如题,最近在学习使用汇编来修改拳皇,玩拳皇使用的模拟器是WinKawaks,此模拟器自带68000调试器,我在网上找到了Motorola 68000 CPU的文档,里面有指令的详细介绍,可是我就是搞不懂怎么运用调试器里所显示的数据寄存器和地址寄存器来计算代码的执行过程。

比如调试器里有一行代码是这样的:
019E54 002E 0002 0007 ORI.B #0x2,(0x7,A6)
其中019E54是偏移地址,A6是地址寄存器。文档里介绍ORI的用法为:

Instruction Operand Syntax Operand Size Operation
ORI #<data>,<ea> 8,16,32 Immediate Data Ⅴ Destination→Destination

我的理解是:地址寄存器A6的值加上0x7,然后与0x2或操作,最后将结果送至寄存器A6。我查看调试器,寄存器A6的值为10AC6A,然后我再利用调试器转到地址10AC6A,发现很大一部分数据全是0,总感觉我的计算方法错了,要不就是地址寄存器A6的值搞错了,可是调试器里列出的8个地址寄存器里(是从上到下列出的),只有一个数据是956E,但不管是从上往下数还是从下往上数,都不是寄存器A6,到底我错在哪里?或者说什么因为我的方法从根本上就错了?请高手指点啊!

拳皇97下载地址:http://down.52pk.net/soft/686.htm
里面包含模拟器,下载解压即可使用。

高手一定要帮帮我啊!如果有机会(尽管机会非常小)的话一定请吃饭!
...全文
478 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
SM光 2005-09-23
  • 打赏
  • 举报
回复
多谢楼上的!我没说清楚,应该说我的汇编术语说的还不够好,其实我想说的是,地址10AC71以及其周围很大一部分数值都是零!所以感觉某个地方出错了,应该和模拟器或者游戏有关,也许非要玩了游戏才知道吧。可是我怎么都搞不懂……
tpu 2005-09-22
  • 打赏
  • 举报
回复
ORI.B #0x2,(0x7,A6)
应该是:取出A6的值,加上0x07,得到0x10ac71,然后取出0x10ac71地址的数据,与0x02或操作,再写回地址0x10ac71去。

21,498

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧