我正在编写一个Z80仿真器,我对指令寄存器的大小感到困惑。
在Z80手册中,它规定指令从1到4个字节长,我是否假定Z80有一个32位指令寄存器?如果没有,那么它如何执行这样的指令?

发布于 2013-10-11 14:38:39
没有指令寄存器,您也不能立即获取整个指令。相反,你把它一片片地拿来。
让我们来看看您的示例说明:
LD (IX+d),n为编码0xDD 0x36 dd nn。dd和nn字节,将nn写入(IX+dd),递增循环计数器并继续执行下一条指令。如果你想要写一个循环精确的模拟器,事情会变得更加复杂,但如果你是一个初学者,当涉及到仿真的时候,我建议你不要这么做。
发布于 2013-10-18 15:38:23
实际上,IR寄存器是存在的,但程序员不能访问。查看Rodnay的书籍如何编程的Z80 (第56页)。它清楚地解释了如何获取和解码1字节指令,但我仍然不知道如何处理2字节、3字节或4字节指令。如果一步一步地演示如何使用IR寄存器处理2、3或4字节指令,那就太好了。
https://stackoverflow.com/questions/19320201
复制相似问题