gpt4 book ai didi

emulation - 解码 68k 条指令

转载 作者:行者123 更新时间:2023-12-04 21:23:47 25 4
gpt4 key购买 nike

我正在编写一个解释性 68k 模拟器作为个人/教育项目。现在我正在尝试开发一种简单、通用的解码机制。

据我了解,每条指令的前两个字节足以唯一标识操作(有两个罕见的异常(exception))和剩余要读取的字数(如果有)。

这是我想在解码阶段完成的任务:

1. read two bytes
2. determine which instruction it is
3. extract the operands
4. pass the opcode and the operands on to the execute phase

我不能像使用 RISC 架构中的前几位那样将前两个字节传递到查找表中,因为操作数是“阻碍”的。我怎样才能完成部分 2一般情况下?

总的来说,我的问题是: 如何从解码过程中消除操作数的可变性?

更多背景:

以下是程序员引用手册第 8.2 节的部分表格:
Table 8.2. Operation Code Map

Bits 15-12 Operation
0000 Bit Manipulation/MOVEP/Immediate
0001 Move Byte
...
1110 Shift/Rotate/Bit Field
1111 Coprocessor Interface...

这对我来说很有意义,但后来我查看了每条指令的位模式,并注意到没有一条指令的 15-12 位是 0001、0010 或 0011。必须有一些大图我失踪了。

Decoding Z80 Opcodes站点明确解释了解码,这是我在 68k 程序员引用手册或谷歌搜索中没有找到的内容。

最佳答案

我决定简单地创建一个查找表,其中包含每条指令的所有可能模式。这是我的第一个想法,但我因为“浪费、不雅”而将其丢弃。现在,我接受它“非常快”。

关于emulation - 解码 68k 条指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7328383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com