首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Z80指令寄存器大小

Z80指令寄存器大小
EN

Stack Overflow用户
提问于 2013-10-11 14:06:15
回答 2查看 1.1K关注 0票数 2

我正在编写一个Z80仿真器,我对指令寄存器的大小感到困惑。

在Z80手册中,它规定指令从1到4个字节长,我是否假定Z80有一个32位指令寄存器?如果没有,那么它如何执行这样的指令?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-11 14:38:39

没有指令寄存器,您也不能立即获取整个指令。相反,你把它一片片地拿来。

让我们来看看您的示例说明:

  • 您的仿真器首先从当前PC中获取一个字节,然后递增PC。
  • 它查看字节,即0xDD,模拟器知道这是"IX指令前缀“(因为您知道这一点,因此对模拟器进行了编程以了解它)。然后,仿真器获取另一个字节以获得实际操作码。
  • 操作码字节为0x36,仿真器LD (IX+d),n为编码0xDD 0x36 dd nn
  • 然后,仿真器获取ddnn字节,将nn写入(IX+dd),递增循环计数器并继续执行下一条指令。

如果你想要写一个循环精确的模拟器,事情会变得更加复杂,但如果你是一个初学者,当涉及到仿真的时候,我建议你不要这么做。

票数 14
EN

Stack Overflow用户

发布于 2013-10-18 15:38:23

实际上,IR寄存器是存在的,但程序员不能访问。查看Rodnay的书籍如何编程的Z80 (第56页)。它清楚地解释了如何获取和解码1字节指令,但我仍然不知道如何处理2字节、3字节或4字节指令。如果一步一步地演示如何使用IR寄存器处理2、3或4字节指令,那就太好了。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19320201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档