获取 - LMC 指令的执行周期

2024-03-03

我必须为每个小人计算机指令(ADD、SUB、BR、BRP 等)定义步骤,并且我在分支指令和 COB(或停止指令)方面遇到问题。我理解每条指令开头的获取部分:

电脑 -> 三月

多重耐药 -> 红外

但我不确定在执行部分添加什么才能使指令真正正确。谁能解释一下如何为 BR、BRP、BRZ 和 COB 进行获取执行周期?任何帮助将不胜感激


首先,澜湄合作是一个虚拟的概念。它有多种解释和实现,有时可能会发生冲突。因此哪个答案是正确的可能取决于您正在使用的课程材料。

为了避免混淆,我们可以使用以下定义:

寄存器和内存

  • MAILBOX:这是处理单元外部的存储器。它有 100 个条目,用于存储 3 位数字。
  • PC:程序计数器(两位数)
  • MAR:内存地址寄存器:临时保存邮箱的2位地址,用于读取或存储MDR中的值。
  • MDR:内存数据寄存器:临时保存正在传输到邮箱或从邮箱传输的 3 位数据。
  • IR:指令寄存器:包括操作码(1 或 3 位数字),有时还包括 2 位地址
  • ACC:累加器:3 位数值
  • N:负标志:要么打开,要么关闭。这方面在最初的 LMC 中没有得到很好的定义。一些模拟器允许 ACC 保存负值,因此不需要额外的标志,而其他模拟器会认为 ACC 严格限制为三位数字,不支持负号。由于真正的 CPU 通常有一个 N(负)标志,我认为将该标志想象为一个单独的东西是合理的。
  • Z:零标志:打开或关闭。这指示 ACC 是否具有零值。这是否真的应该作为一个单独的标志存在比 N 标志更有争议,但我在这里只是将其列为一种可能性。

获取步骤

获取执行周期的获取部分始终是相同的——我更喜欢以相反的方向编写赋值:

  • 三月
  • MDR
  • IR
  • PC

我们可以讨论最后一步的确切顺序。 PC 的更新可以在步骤 2 和 3 之前或同时进行。

执行步骤

取指执行周期的执行部分取决于 IR 的内容:操作码(1 位数字,或者 901 或 902IN/OUT) 被解释。例如:

  • BR(也称为BRA):

    PC

  • BRP:

    如果 N 没有设置:
    PC

  • BRZ:

    如果设置了 Z 标志:
    PC

  • COB:

    程序执行停止。在外部用户触发运行之前,不会再有任何获取执行周期。

根据您的课程材料,您可能不需要提及 N 或 Z 标志。在这种情况下,只需将条件分别替换为“ACC 为负”和“ACC 为零”。

请注意,我没有涉及这四个指令的 MAR 或 MDR 寄存器——直接将值从 IR 移动到 PC——因为 MAR 和 MDR 仅用于处理单元和内存之间的通信。

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

获取 - LMC 指令的执行周期 的相关文章

  • 一个普通的类可以实现多个接口吗?

    我知道接口之间的多重继承是可能的 例如 public interface C extends A B Where A B and C are Interfaces 但是是否可以让一个常规类继承多个接口 如下所示 public class A
  • 有什么方法可以区分未设置的属性和设置为未定义的属性吗? [复制]

    这个问题在这里已经有答案了 说我有对象testObject a undefined 如果我那么console log testObject a 我变得不确定 但如果我也会发生同样的情况console log testObject b 它不存
  • Excel - 多列求和

    如果同一行中的其他单元格符合预定义的条件 我需要对几列的值求和 仅 3 列的工作公式如下 SUM SUMIFS Sheet1 W W Sheet1 B B Sales Sheet1 C C gt 4 SUMIFS Sheet1 X X Sh
  • Plupload - 仅限一个文件

    我在 plupload API 文档中没有看到有关将上传文件数量限制为任意数量 甚至是 1 的选项 博士失败了 或功能失败 如果它不存在 如果有人需要它 我会努力实现这一点 这是一个功能失败 我围绕 jQuery API 做了一个包装器 这
  • GNU Awk 4.2 中 FS = " " 的行为是什么?

    The first week of October Arnold Robbins announced Beta release of gawk 4 2 0 now available in the GNU announce bug gawk
  • Rails,如何在绝对最低级别访问原始请求数据?

    铁轨什么时候出request请求生命周期中最早可用的对象 本质上 请求何时首次作为请求对象可用 以及在哪个对象中 ActionDispatch 您可以从以下位置访问请求参数吗Tester Application 如果是这样 怎么办 如果没有
  • 在 docker 容器中导入 keycloak 的领域配置时出错

    我通过以下命令在 docker 上部署了 keycloak docker run e KEYCLOAK ADMIN admin e KEYCLOAK ADMIN PASSWORD admin p 8080 8080 quay io keyc
  • ReferenceError:Rx 未定义

    我刚刚开始学习 Angular2 我正在尝试使用 Angular2 做 RxJ 示例 如果有人帮助我 我将不胜感激 RxJs 代码 var obs Rx Observable interval 500 take 5 do i gt cons
  • Linq 到对象

    我有两个来自不同服务器的数据库 我无法链接数据库 从数据库中检索数据如下 DB1 Client ID Engagement ID 启用说明 600 10 真实公司1 600 20 虚假公司2 700 10 真实公司3 DB2 Client
  • Fortran 95 数组中具有一维变量的二维数组

    我想在代码中将一些内容存储在二维数组中 然后想扫描该数组 有N 1 行 第一个索引的数量 比如说i 在数组中 然而 对于给定值i 数量j尽管我知道最大可能值 但值不是固定的j 说它是N 2 我当然可以创建大小的数组 N 1 N 2 来存储我
  • IIS会回收asp.net core进程吗?

    我需要在我的 asp net core 应用程序中运行长时间运行的后台任务 我了解 Azure Webjobs 和其他进程外技术 但我宁愿保持解决方案简单并直接在 asp net core 进程中运行这些任务 我使用 Kestrel 该应用
  • 使 VSCodium 的 python 代码突出显示等于 VSCode

    因为 微软不好 而从 VSCode 迁移到 VSCodium 发展python应用程序似乎缺少一些代码颜色 例如 Dark 主题中绿松石色的模块或浅蓝色的局部变量 在下面的比较中可见 Left VSCodium Right VSCode 正
  • 如何在Android中读取彩信数据?

    我想读取彩信数据 我已经在中看到了零件表mmssms db彩信条目的存储位置 我正在使用光标 我想知道合适的URI 我正在使用 content mms sms conversations 并且列名称图像的 地址 发送至 文本 或 主题 和
  • 在 C# 中比较两个结构体的值

    我不是在寻找返回 bool 的两个结构的比较 我想知道是否有一种方法可以获取两个结构的哪些字段 相同的结构 但可能不同的值 是不同的 基本上我想要一种更简单的方法来执行以下操作 public class Diff public String
  • 如何将命令行参数从 pytest 传递到代码

    我正在尝试将参数从 pytest 测试用例传递到正在测试的模块 例如 使用 main pyPython 样板 https www python boilerplate com py3 argparse pytest 我可以从命令行运行它 p
  • 音频元素源的 HTML5 本地存储 - 可能吗?

    我最近一直在尝试 html5 的音频和本地存储功能 但遇到了一些让我困惑的事情 我希望能够在本地缓存或存储音频元素的源 以实现更快的离线播放 问题是我看不出当前的实现如何可能实现这一点 我使用 WebKit 尝试过以下操作 创建一个清单文件
  • Azure DocumentDB 十进制截断

    我目前正在使用 Azure DocumentDB 来存储带有价格的产品数据 几乎一切都工作得很好 但现在我遇到了一个问题 即从 DocumentDB 读取时我的小数 System Decimal 被截断 比如这个价格 Input Price
  • 如何使用带有StanfordCoreNLP prop 'ner'的序列化CRFClassifier

    我正在使用StanfordCoreNLP API 接口以编程方式执行一些基本的NLP 我需要在自己的语料库上训练模型 但我想使用StanfordCoreNLP界面来做到这一点 因为它在幕后处理许多干的机制 我在那里不需要太多的专业知识 我已
  • PHP中两个日期相减

    我在 php 中有两个日期 date1 May 3 2012 10 38 22 GMT date2 06 Apr 2012 07 22 21 GMT 然后我将它们都减去 date2 date1 并得到 Result 6 为什么结果是 6 而

随机推荐

  • R dplyr:在列中查找特定值,然后用该值替换右侧后续列中的相邻单元格

    我正在尝试创建一个地点和事件时间的矩阵 就我而言 一旦事件发生 1 它就是永久性的并且不能返回到 0 一旦列中的单元格为 1 我将尝试用 1 填充右侧后续列中的相邻单元格 请参见下面的示例 site lt c A B C D E F G s
  • 用于生成 HTML 标签的 PHP 库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 PHP 新手 抱歉 如果这是常见问题解答 假设我有这个 HTML 表 table width 10
  • 在 Javascript 或 jQuery 中,如何仅删除第一个和最后一个标签?

    给定以下字符串 var htmlStr p class red 349dsa01 This is p p class blue saf9vsaz a test p 如何删除该字符串的第一个和最后一个标签 这将是结果 var htmlStr
  • 有关角度谷歌地图聚类选项的任何文档吗?

    您好 我正在使用此处提供的 Angular Google 地图库https github com nlaplante angular google maps https github com nlaplante angular google
  • Facebook:自动刷新长期访问令牌

    我正在为我的应用程序的用户存储长期访问令牌 这些用户已将其 Facebook 帐户与其关联 自灭亡以来离线访问代币 这些长期存在的代币的有效期为 大约 60 天 但是 当用户与 Facebook 交互时 它们可以自行刷新 根据文档 http
  • 如何在终端中创建换行符?

    我在最新的 Mac OSX 终端上使用 Python 当我按 Enter 时 它会处理我输入的代码 并且我无法弄清楚如何添加额外的代码行 例如对于基本循环 在 python shell 中 如果您正在键入允许继续的代码 则按一次 Enter
  • 非类型参数的模板参数必须是表达式

    为什么下面的代码是错误的 template
  • 在 WebGL 中与 HTML 背景混合

    我正在将平面颜色和纹理绘制到 WebGL 画布中 我的颜色和纹理具有不同的 alpha 值 我希望它们能够正确混合 我想要透明背景 它们应该与画布下的 HTML 内容混合 在 WebGL 中 我使用 gl clearColor 0 0 0
  • memcpy 是否保留不同类型之间的数据?

    是否打电话memcpy如果缓冲区大小足够 在两个不同的结构上保留原始数据 如果它们各自的数据类型重叠 它是否被定义为用先前数据类型的数据检索另一种数据类型的值 对于两种 c cpp 语言来说 这应该是相似的 但我在 cpp 中提供了一个示例
  • POST 后重新加载浏览器窗口,而不提示用户重新发送 POST 数据

    当用户访问我的网站时 每个页面上都会有一个 登录 链接 单击此按钮会使用一些 JavaScript 来显示一个覆盖窗口 系统会在其中提示用户输入其凭据 输入这些凭据后 将向 Web 服务器发出 Ajax 调用以验证它们 如果它们有效 则会发
  • ggplot,左侧反转 y 轴上有点,第二轴上有条形图

    我试图根据用户的选择以不同的方式生成一个带有两个垂直轴的 ggplot 一个选择允许用户反转每个轴 另一种选择允许他们在每个轴上的系列的点和条之间进行选择 当主 左侧 y 轴反转并且辅助 右侧 数据设置为显示为条形时 我遇到了问题 在这种情
  • 为什么 require.main.require.resolve 未定义?

    问题 在 Node js 模块的范围内有一个module对象本来就是对当前模块的引用 a require功能意味着需要模块 and a require resolve功能意味着查找模块的位置 但不加载模块 而是返回解析的文件名 如果有一个m
  • 什么是 django.utils.function.__proxy__ 对象以及它有什么帮助?

    我偶然发现了一个django utils functional proxy 对象多次 最后一次在以下代码中 def formfield for choice field self db field request kwargs print
  • 在android模拟器上运行apk

    我想在 Android 模拟器上运行 APK 我按照以下步骤操作 将apk复制到platform tools目录 以管理员身份运行cmd exe 导航到平台工具目录 从 AVD 管理器运行模拟器 在命令行中输入 adb devices 它在
  • Magento:西班牙语中的小数价格显示点而不是逗号

    我有多语言商店 默认语言是英语 很少有产品有小数价格 当我将语言切换为西班牙语时 十进制价格中出现逗号而不是点 例如 价格 英语 1 35 当我将语言切换为西班牙语时 价格将如下所示 价格 1 35 我真的想删除这个 需要 怎么做 您可以尝
  • Laravel:“users”数据库表中的“remember_token”是什么?

    使用是否安全remember token在用户表中用于验证用户进入应用程序 这个令牌的目的是什么 目前 我在表单中使用它来检查用户是否已登录 如果令牌不存在 我将显示登录屏幕 每次用户注销时 都会重新生成此令牌 不 它不应该用于身份验证 框
  • RMI 何时建立 TCP 连接?

    我有一个测试程序T which 获取一个存根Remote来自服务器上 RMI 注册表的对象 OS 在数百个并行线程中 调用该对象上的方法O 我可以看到该服务器S有许多 RMI TCP 连接 线程 我原以为只有一个 因为只有一个存根O on
  • PHP header() 和 exit() 会在重定向之前安全地终止脚本吗?

    以下是保护仅限用户区域的安全方法吗 if isset SESSION username redirect SITE ROOT st pages login using function redirect url header Locatio
  • 在 bash 中循环文本文件的每一行

    文本如下所示 428 http www youtube com watch v aqlJl1LfDP4 NEW YORK NEW YORK FRANK SINATRA YouTube moc ebutuoy www 1 0 0 20 96
  • 获取 - LMC 指令的执行周期

    我必须为每个小人计算机指令 ADD SUB BR BRP 等 定义步骤 并且我在分支指令和 COB 或停止指令 方面遇到问题 我理解每条指令开头的获取部分 电脑 gt 三月 多重耐药 gt 红外 但我不确定在执行部分添加什么才能使指令真正正