首页 > 解决方案 > 6502微处理器上的分支指令是如何实现的?

问题描述

有很多方法可以将分支指令实现到控制器/定序器硬件中。我以前用自己的方法自己做过,但我的问题是:它是如何在 6502 微处理器上完成的,是否有一种通用的或至少一种流行的方法来设计分支指令的硬件?

(附加信息)我使用的方法是我添加了连接到操作码总线的标志引脚,当在特定分支指令期间设置为高时,会将特定标志的值加载到解码器 ROM 中,因此如果标志为高/低则执行分支,如果标志为高/低则跳过分支标志低/高。例如,在 BNE(不相等分支)指令期间,在特定时钟周期,“零标志”引脚将被激活。如果该引脚为低电平,则它不会更改操作码,并且解码器通常会转到下一个内存位置以执行下一个微指令集,在这种情况下,该微指令集结束 BNE 指令而不进行分支,然后等待新指令。但是,如果“零标志”引脚为高电平,则它会更改操作码,

标签: microcontrollerhardwareinstructionsdecoder6502

解决方案


首先,操作码永远不会改变。

除非你有关于 6502 的“微码”的内幕信息,否则你不可能知道确切的实现。数据表只为您提供执行的操作,但很少详细说明具体如何完成。只能猜测。

一个这样的猜测:

  1. 如果不应采用分支,则相应的条件代码寄存器位(正常或反转,取决于指令)将分支指令操作数掩码为零。

  2. (现在可能被屏蔽)8 位有符号偏移量被添加到 PC。


推荐阅读