问题标签 [lc3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hex - LC-3 程序错误?
有人可以帮我完成这个程序吗?它应该将 14 添加到从 x4000 开始的数字并存储从 x5000 开始的新数字。我刚开始使用 LC-3,但我们还没有学会用它实际编码。这段代码只有 3 个错误,但我不确定我应该修复什么。
lc3 - LC-3 左移并存储左移位
我正在处理以下代码以左移 R0 中的值 - 我相信这会起作用。此外,由于 R0 是左移的,因此被移除的位的值应存储在 R2 中。我不确定我所做的是否正确。
此外, MASK .FILL x8000 似乎不起作用。我的 LC-3 模拟器返回错误。它指出“无效指令。RTI 以用户模式特权执行。”
lc3 - LC-3 如何重置我的计数器?
谁能运行这个程序,或者尝试帮助我理解为什么我的计数器没有更新?
我应该从提示中读取文本并找到文本的长度并用冒号输出,然后打印出输入的实际文本。
如果我第一次输入“测试”长度为 4,但是当它循环返回开始时,它要求我再次输入,它输出正确的文本,但除非文本更长,否则计数器不会改变。
因此,如果我输入“I”,它将输出长度为 4,因为 test 更长并且为 4。但是如果我输入 7 个字母的“Control”,它会将计数器更新为 7。
输出:
谢谢!
assembly - 如何在 lc3 汇编语言中实现 PRINT 子例程?
你好,我是 lc3 汇编语言的初学者,我有这个任务:
我需要实现下面显示的打印、右移和移位子例程,任何这些子例程的任何帮助都将不胜感激:(不完整的代码在最后)
此外,所有子程序必须保存/恢复所有工作寄存器,包括 R7
此处给出了 LSHR 算法:http: //users.cis.fiu.edu/~pestaina/RightShift.pdf。通过实现逻辑右移算法来完成 RSHIFT 子例程 要测试 RSHIFT,请将 MAIN 中的 JSR SHIFT 指令暂时替换为 JSR RSHIFT。程序现在应该显示原始数据和右移数据六次。
完成 SHIFT 子程序。要移位的数据在 R0 中传递;R1 中的值表示移位类型如下: LSHL LSHR ASHL ASHR CSHL CSHR 0 1 2 3 4 5 .. 0000 .. 0001 .. 0010 .. 0011 .. 0100 ..0101 提示:总是描述移位方向在 R1[0] 中;算术移位由 R1[1] 表示;循环移位由 R1[2] 表示。提示:所有左移都可以作为逻辑左移 LSHL 的微小变化来实现。LSHL 可以通过简单地将基准与自身相加来完成。提示:所有右移都可以实现为逻辑右移的变体,已在您的 RSHIFT 子例程中实现。
这是一个简单的打印算法:
这是我需要完成的程序
assembly - 如何在Assembly中计算一个句子中的单词数。
对不起,这是第一次在stackoverflow上发帖,请原谅我有任何不当的法令。我已经发布了我的 LC-3 汇编代码,它要求用户输入一个句子和一个单词。word
然后程序检查句子中出现了多少次;然后输出计数器。我很确定我的问题是这两个字符串包含以太space
,enter
所以它不匹配。
另外,我还没有实现整体计数器,在此先感谢您的帮助。
stack - C 代码的运行时堆栈
我不知道我的问题的标题是否正确,但我正在研究运行时堆栈并且我有以下 C 代码:
这是在位置 x3000 编译和加载的。
我正在处理名为 lc3 的模拟计算机。我需要找出执行此代码时运行时堆栈的外观。我对这个话题的理解太有限,无法真正解决这个问题,但我认为它应该是这样的:
我希望有人可以在这个主题上为我提供一些清晰的信息。先感谢您。
verilog - Verilog 中的 LC-3 16 位处理器错误模拟
我正在设计一个 LC-3(小型计算机)CPU。我在模块中设计了 PC 单元、控制单元(作为有限状态机)、指令存储器、ALU 单元和数据存储器。还有一个寄存器文件单元作为主单元,模块调用在这个单元中完成。
我希望程序在 PCread 为 1 时工作,从变量中获取要分配给out
的in
变量,当 PCwrite 为 1 时,只需递增out
变量。out
是发送到指令存储器的地址。
问题是当我模拟时,指令永远不会加载到指令内存中。因为 PCwrite 不适用于控制单元的第一个状态,因为我在第一个状态下重置了 PCread 和 PCread 变量。我这样做是因为我不希望在一条指令完成它工作之前加载指令。我找不到处理这个问题的方法。
我知道如果解决了这个问题,处理器就会工作,因为当我尝试一条具有初始化值的指令时,它就可以工作。
assembly - LC-3 while 循环到 x04 字符处的 br?
我试图在 LC-3 汇编语言环境中创建一个 while 循环,该循环读取字符或数字,然后在键入 CTRL+D (x04) 时中断循环。我知道我可以使用 brp、brn 或 brz 来中断循环,用于正数、负数或零,但是如何使用流结束 (x04) 十六进制字符触发中断?
assembly - 组装:LC3分部
我对汇编语言非常陌生,在课堂上我们正在使用 LC3 模拟器编写除法程序。下面是我的除法算法代码。
当我输入两个输入时,例如:4 和 2。商得到 2,余数得到 1。当我输入 9,3 时,我得到 6 余数 1..
有任何想法吗?
lc3 - 如何在 LC3 中使用 nzp=000 进行 BR
我试图写 instx0000
这意味着BR
withnzp=0
和 offset 0
。
我BR #0
在模拟器上写的。
x0000
我没有在模拟器上给我那个,而是得到0x0E00
这意味着nzp
is 111
。
这样做的正确方法是什么?