6502指令时钟周期背后的逻辑是什么? [关闭]

问题描述 投票:0回答:1

一些要考虑的问题摘自6502数据表的第10页:

http://archive.6502.org/datasheets/rockwell_r650x_r651x.pdf

  • 如果跨越页面边界,“如果将N加1到N,第10页会怎样?”
  • 第10页表示“如果在同一页上发生分支,则将N加1到N?”
  • 如果分支出现在不同页面上,将N加2意味着什么?
  • 对其他设备(例如RAM)的读写是否会导致时钟周期出现异常?
  • 还有其他因素可能会影响6502(更具体地说是NES)的时钟周期吗?
emulation 6502
1个回答
1
投票

关于6502机器说明。计算指令地址并将其存储为两个八位字节。在进行地址计算(例如使用寄存器索引的指令或分支指令的目标地址)时,可能存在从最低有效字节到最高有效字节的内部进位。这就是“跨越页面边界”的意思-“页面”为256字节。内部进位过程可能造成一个周期的损失。

为了更清楚地看到它,如果用十六进制编码地址,则地址的低字节是右边的两位数字。例如,地址$ 1234 hex,低字节将包含$ 34 hex,高字节$ 12。如果您跳转到该地址或从该地址加载或存储的地址“跨越页面边界”,则通过将高位字节加小1,例如寻址地址$ 1300,将招致循环罚款。

如果使用分支指令,换句话说,条件已满足,并且程序跳转到新位置,则使用分支指令会增加另一个循环。因此,如果分支恰好进入另一个页面,则将有效地添加2个循环。

© www.soinside.com 2019 - 2024. All rights reserved.