问题标签 [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.
assembly - 如何从控制台输入中检测 NaN?
我假设在 lc-3 中输入 ctrl+d(x04) 时退出循环,所以我试图通过使用 getc 从控制台输入中检测到这一点。
有没有简单的方法来做到这一点?或者我必须将输入转换为负数并添加 x04?
有人能帮我吗?
wildcard - VHDL STD_LOGIC_VECTOR 通配符值
我一直在尝试用 VHDL 代码为我在 Altera DE1 板上实现的简单 16 位处理器编写有限状态机。在有限状态机中,我有一个CASE
处理不同 16 位指令的语句,这些指令由 16 位 STD_LOGIC_VECTOR 带入 FSM。但是,在有限状态机对指令进行解码的解码状态下,我遇到了一些麻烦。其中一条指令是 ADD,它将两个寄存器作为操作数,第三个作为目标寄存器。但是,我也有一条 ADD 指令,它将一个寄存器和一个 5 位立即数作为操作数,第二个寄存器作为目标。我的问题是在CASE
声明,我需要能够区分两个不同的 ADD 指令。所以,我认为如果我在CASE
语句中使用通配符值,如“-”或“X”,我将能够仅用两种情况区分两者,而不是列出所有可能的寄存器/立即数组合。例如:
这些不是我仅有的两个说明,我只是把这两个说明使这篇文章更短一点。当我编译并运行这段代码时,处理器在进入“解码”状态时停止执行。此外,Quartus 给出了很多很多警告,比如“LC3FSM.vhd(37) 处的 VHDL 选择警告:忽略包含元值的选择”“0001------0-----”“”我在关于如何实现这一点的损失。我真的不需要也可能不需要定义每一个 16 位组合,我希望有一种方法可以在 STD_LOGIC_VECTOR 中使用通配符来最小化我必须定义的组合数量。
有谁知道如何做到这一点?
谢谢
assembly - LC3 程序集按位右移
我需要做的是使用LC-3 Assembly实现按位左移和按位右移。基本上,每个位都必须在移位方向上移动一个空间,并且零填充创建的空白空间。
例子:
右移:
左移:
通过获取二进制字符串并将其添加到自身,我已经成功实现了左移。
我对如何执行右移感到困惑。任何想法将不胜感激。我有 AND、NOT、ADD 操作、数据移动操作、七个寄存器来存储值和整个内存范围。我只需要一些基本的想法如何实现它。
如果您需要 LC-3 指令集参考,这里有一个。
assembly - LC3中的字符串反转
我需要使用 lc3 编写一个程序,该程序接受用户输入,然后向前、向后显示输入,然后告诉你输入多长时间。我完全不知道如何做到这一点,并且到处搜索,找不到任何可以帮助我的东西。我可以接受用户输入,但我不知道如何存储它或如何反转它。
lc3 - LC3 汇编语言
我正在尝试编写一个 LC3 汇编语言程序,它需要两个输入数字并打印出来x * y = z
。
我可以让它为数字工作,0-9
但是任何高于它的数字我都会得到奇怪的字母或符号。
另外,我怎样才能使它不仅可以每个输入1个输入,GETC
而且可以输入两个数字,例如。10 * 12= 120
? 任何帮助,将不胜感激!:)
这是我到目前为止所做的
assembly - LC-3 如何打印两位数
我有一个带有计数器的 LC-3 程序。我可以使用 TRAP x21 将计数器打印到屏幕上。但是,如果计数器编号有两位数,我的程序将无法运行。
示例:9 将完美打印,但不是 19。
我猜想在打印包含计数器的寄存器之前,我需要一个循环,它将通过除以 2 来截断数字(与十进制除以 10 相同,但二进制为 2)。然后我想我会打印 digit1, digit0。我有一个问题,我如何划分 LC-3?右移?对于这个问题来说,这似乎太难了,超出了我的知识范围。
请帮忙。
c - 从内存地址辅助复制单词(汇编)
我正在尝试从内存中复制一些单词并使用程序集将其保存到另一个内存地址。我正在尝试为其编写代码,但我不确定某些部分。我将简要描述我想做什么。
源地址、目标地址和要复制的字数是函数的输入参数。
assembly - 您将如何使用 lc3/汇编代码将存储的十六进制值转换为二进制等效值?
这些值存储在 .BLKW 对象中,并通过 LDR R0,R1,0 - ADD R1,R1,1 加载到 LOOP 中(以增加 .BLKW 地址)。问题是如何将存储的 HEX 值转换为二进制值,然后以 16 位二进制格式将转换输出到 CONSOLE。任何想法将不胜感激!我已经考虑过 ANDing 值,但不确定如何去做。
logic - 在 LC3 中使用迭代右移
所以我正在开发 LC3 中的一个程序,但我遇到了屏蔽问题。我可以创建一个适当长度的所有 1 的掩码,很好地将所有内容转移到适当的字段,但是一旦我完成 AND 比较,我就无法将事情转移回右侧。你如何在 LC3 中右移?我在迭代比较中看到了一些东西,但我不知道如何比较不同位置的位,并且要在相同位置比较它们,无论如何我最终都必须向右移动一个。我错过了什么吗?
coding-style - lc-3:将数字加载到寄存器中并以二进制形式输出
我需要帮助在 LC-3 模拟器的控制台中输入一个数字,例如 1 2 9,获取数字 129 并将其实际形成完整的数字 129,(129)并将其二进制形式输出为控制台的屏幕。
我该怎么做呢?任何帮助都会很棒。