为什么 CALL 的操作码获取中有 6T 状态而不是 4 个?

2023-12-11

我的问题是为什么在 8085 微处理器中 CALL 指令的操作码获取中有 6T 状态,而其他指令有 4 个状态。我进行了很多搜索,但没有找到满意的答案。

Here: http://www.edaboard.com/thread201650.html它说这与 CALL 情况下使用的双寻址模式有关。但并没有真正解释为什么 6T 会这样。

任何想法?

EDIT

当我知道 CALL 需要 18 个 T 状态时,就出现了这个问题。

根据我的计算,它应该是:4(用于操作码获取)+ 3 + 3(两次内存读取以读取子例程地址)+ 3 + 3(用于堆栈上的两次内存写入)= 16

因此,在搜索互联网时,我了解到 CALL 情况下的操作码获取部分需要 6T 状态而不是 4。

UPDATE

现在,在阅读评论并重新思考后,我知道 PUSH 通常需要 12 个 T 状态作为指令。在 CALL 的情况下,我们可以忽略 PUSH 的操作码获取部分,因为没有显式的 PUSH 指令,所以现在我们有 8 (12 - 4)。那么,我觉得是因为堆栈指针递减吗?因为即使在推送中,它也应该是 6(内存写入为 3 + 3),但这里是 8 (4 + 4)。


6(操作码获取)+ 3 + 3(两次内存读取读取子程序地址)+ 3 + 3(两次内存写入堆栈)= 18

因此,我相信让您感到困惑的是用于操作码获取的 6 个 T 状态,而不是通常情况下的 4 个 T 状态。与任何其他指令获取一样,使用 4 个 T 状态来获取操作码。 2个T状态用于处理堆栈指针(SP)。因为在堆栈顶部没有存储任何内容。当遇到调用时,程序计数器的当前内容(写入调用的行的地址)被推送到堆栈。执行完成后,必须将堆栈的内容放回。因此,与其他指令获取相比,该调用需要两个额外的状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 CALL 的操作码获取中有 6T 状态而不是 4 个? 的相关文章

随机推荐

  • 如何停用浏览器中的缓存?

    例如 如果您退出雅虎邮件 然后单击后退按钮 它不会加载最后一页 而是将您重定向到登录页面 我必须用我的 PHP 代码来完成此操作 我正在使用 CodeIgniter 有些朋友告诉我禁用缓存 但这将是一件坏事 因为我的系统中有很多图像 每次都
  • 为什么 Safari 会重复 GET 请求,而 Chrome 却不会?

    Update TL DR 这可能是 Safari 和 或 Webkit 中的错误 更长的 TL DR 在 Safari 中 使用 Fetch API 发出 GET 请求后 当页面重新加载时 Safari 会自动 无意中 重新运行该请求即使发
  • 位串最近邻搜索

    我有数十万个长度为 32 位的稀疏位串 我想对它们进行最近邻搜索 并且查找性能至关重要 我一直在阅读各种算法 但它们似乎针对文本字符串而不是二进制字符串 我认为局部敏感散列或频谱散列似乎都是不错的选择 或者我可以考虑压缩 这些中的任何一个都
  • DataGridView CellPaint 不能完全在滚动上工作

    第一次发帖 但浏览了很长时间 所以这是我的问题 基本上我有一个用于与用户交互的 datagridview 在所有行中 都有一个 信息 按钮 它会产生一种错觉 即它在其下方添加了另一行 并合并了所有单元格 整个行中的一个长单元格 并绘制了描述
  • 在python中计算矩形的质心

    我想计算矩形的质心 矩形的坐标如下 co ord 601 1006 604 1009 xmin ymin xmax ymax 有人可以指出一个简单的方法吗 谢谢 对角矩形的质心 x1 y1 and x2 y2 位于该矩形的中心 x1 x2
  • 将标头添加到 @aspnet/signalr Javascript 客户端

    我正在使用 aspnet signalr 官方 Javascript 客户端这个npm包 我想知道是否有办法将Header配置添加到客户端连接头 我如何建立联系 let connection new signalR HubConnectio
  • Scrapy xpath不提取包含特殊字符<%=的div

    我是 Scrapy 新手 我正在尝试从以下 URL 中提取 h2 文本 https www tysonprop co za agents 我有两个问题 我的 xpath 可以访问 script 元素 但无法找到 script 标记内的 h2
  • xml 格式文件和标识列的 bcp 导入错误

    我在 SQL Server 中创建了一个表 如下所示 CREATE TABLE dbo myId smallint IDENTITY 1 1 NOT NULL name nchar 10 NOT NULL value int NOT NUL
  • Thymeleaf - 将
    附加到输入标签

    我正在尝试附加一个 br 在表单中的每个输入行之后 但 Thymeleaf 一直给我解析错误 这是我遇到问题的代码片段
  • 不花钱在生产环境进行内购测试

    我有一个 iOS 应用程序 即将在 App Store 上发布 我想在生产环境中测试应用内购买 如何测试尚未发布的生产应用程序的应用内购买 答案是不 对于尚未在 App Store 上发布的应用程序 您只能在沙盒环境中测试您的 IAP 项目
  • 在 umbraco 中分配主机名

    我正在使用 umbraco cms 设置 af 多语言页面 我的内容结构如下所示 Content da 丹麦子页面 1 丹麦子页面 2 en 英文子页1 英文子页2 我希望路由是这样的 http mysite dk应该去http mysit
  • 如何删除/忽略触摸设备上的 :hover css 样式

    我想忽略一切 hover如果用户通过触摸设备访问我们的网站 则 CSS 声明 因为 hoverCSS 没有意义 如果平板电脑在单击 点击时触发它 它甚至会令人不安 因为它可能会一直粘到元素失去焦点 说实话 我不知道为什么触摸设备感觉需要触发
  • Git - 浏览远程存储库

    我工作中遇到一个小问题 我们将所有不同的项目提交到不同的远程存储库 有时人们会对他们在凌晨 4 点喝咖啡时创建的名称感到困惑 所以我的问题是 有没有办法浏览远程存储库以列出所有分支 任何帮助是极大的赞赏 要仅列出远程分支 请首先获取 以确保
  • SDL 2.0 不会初始化。错误:“无法连接到 Mir 服务器”

    我正在运行 Ubuntu 14 04 并使用 Eclipse CDT 在我的程序中 我尝试初始化 SDL 如果它没有初始化 则输出错误 但 SDL GetError 返回 无法连接到 Mir 服务器 我确信 SDL 已正确安装 因为我可以在
  • 优雅加载网页的技巧?

    我有一个网页 其中有很多内容 当页面使用 jQuery javascript 处于各种状态时 这些内容会被隐藏 显示 样式化 我遇到了一个问题 在页面的初始加载时 我的所有内容都以一种可怕的方式显示了几分之一秒 然后所有内容都被样式化 隐藏
  • 如何在Polymer中动态追加一个元素到dom-if?

    我的目标是将一个元素附加到现有的dom if动态地 问题是 追加后我可以在 DOM 三个中看到追加的元素 但它永远不会做出反应condition并始终隐藏
  • 可以传递给 Wininet 函数 HttpOpenRequest 的最大 URL 长度是多少?

    可以传递给 Wininet 函数 HttpOpenRequest 的最大 URL 长度是多少 WinInet h 中有一些最大长度常量 maximum field lengths arbitrary define INTERNET MAX
  • 行延续在 VBA 中不适用于 2D 数组构造

    在下面的子例程中 定义二维数组似乎不适用于行延续 TestArray1 按预期初始化 但是当我添加行继续时我收到消息 编译错误 缺少右括号 实际上 我不确定英语的确切措辞 用德语执行此操作 在德语中 错误消息是 Fehler beim Ko
  • ViewModel 的构造函数在导航时再次被调用,因此消息订阅被再次订阅

    我正在使用构建跨平台移动应用程序MvvmCross框架 由于我想在 ViewModel 之间共享信息 因此我使用内置的方法在 ViewModel 的构造函数内注册通知MvxMessenger 我们假设一条消息名为ShowAdsMsg 然后
  • 为什么 CALL 的操作码获取中有 6T 状态而不是 4 个?

    我的问题是为什么在 8085 微处理器中 CALL 指令的操作码获取中有 6T 状态 而其他指令有 4 个状态 我进行了很多搜索 但没有找到满意的答案 Here http www edaboard com thread201650 html