问题标签 [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.

0 投票
1 回答
1145 浏览

assembly - LC-3 如何判断寄存器中的数据是否为有效的 7 位 ASCII 码?

我正在为包括 LC3 编程的期末考试而学习。其中一个示例问题要求我能够编写一段汇编代码来执行不同的操作,具体取决于寄存器的值是否是有效的 ascii 代码。有什么方法可以判断一个值是否是有效的 7 位 ascii 代码?

提前致谢!

0 投票
1 回答
822 浏览

lc3 - LC-3 中的输出字符串

我正在编写一个简短的 LC-3 程序,要求用户输入他们的姓名并打印出来。

应该是这样的......

但是我在输出中得到了这个......

我为句子创建了 2 个 .STRINGZ,

“嗨”作为 String1 和“,祝你有美好的一天。” 作为字符串2,

但我怎么能把这句话说成“祝你有美好的一天”。在用户名之后?

谢谢

0 投票
2 回答
15684 浏览

lc3 - 如何编写一个简单的 LC-3 程序

如何编写一个简单的 LC-3 程序来比较 R1 和 R2 中的两个数字,如果 R1 = R2 则将值 0 放入 R0,如果 R1 > R2 则将值放入 1,如果 R1 < R2 则将值放入 -1。

0 投票
1 回答
15847 浏览

assembly - LC3 LEA 指令和存储的值

我对这个问题感到困惑:指令“LEA R0,A"执行后寄存器 0 中存储的值是什么?为什么答案是 x370C ?我认为它应该将A的地址加载到R0中?如果是,我们怎么知道地址?有人可以帮忙吗?非常感谢!

0 投票
1 回答
26291 浏览

assembly - lc3 LDR指令和存储的值

我不明白为什么After instruction “LDR R3, R0, 2” is executed, the value stored in R3 is x370C.2 在这条指令中代表什么?它看起来不像一个直接的价值。我知道此时 R0 包含 x370C。有人可以帮忙吗?非常感谢!

0 投票
2 回答
2038 浏览

assembly - LC3汇编程序,打印指令

下面的 LC3 程序将打印出“Hello”。但是有人可以帮助解释为什么会这样吗?我很困惑,因为没有像 PUTS 这样的指令。它与将值加载到 R0 有关吗?谢谢!

0 投票
1 回答
4186 浏览

hex - 如何在不更改 ONE 指令中的其他位的情况下清除寄存器中的特定位?

例如,假设寄存器 4 (R4) 的值为 0001110010101111。如何在不移动或更改单个十六进制指令中的其他位的情况下将位 5 (0001110010 > 1 < 01111) 更改为 0(即使它已经是 0)?

所以 0001110010 1 01111 -> 0001110010 0 01111

0 投票
1 回答
771 浏览

assembly - 汇编语言 - LD 寄存器到寄存器

所以我是一个新的汇编程序员,

一个我似乎无法理解的概念是你将如何能够

LD R0, R1

在哪里

AND R0, R0, #0

AND R1, R1, #1

我知道您必须使用操作码将内存地址加载到寄存器中LD,但是您如何能够将包含十进制 1 的寄存器加载到包含十进制 0 的寄存器中?

我正在尝试制作一个斐波那契循环:

我需要在哪里设置负载R0R1新计算的斐波那契和R2

0 投票
1 回答
1999 浏览

lc3 - 使用自定义 LC-3 陷阱例程

我编写了一个子程序,通过 Trap x26 用作 Trap 调用。我的子程序代码位于地址 x3300。我无法弄清楚如何从 x26 跳转到 x3300 子程序的实际指令,因为间隙大于 JSR 的 PC 偏移参数允许的值。我知道我可以在 x26 附近添加一些代码,以便可以一直跳转到 x3300,但我认为我不应该这样做。我想我在理解陷阱方面缺少一些东西。

这是我对陷阱的理解/困惑:所以从 x0000 - X00FF 是陷阱向量表。例如,如果您调用TRAP x20,则 PC 转到 x20 并继续执行 x20 处的指令。(如果这不正确,请告诉我!)此时我很困惑,因为在 LC-3 中的地址 x20 是一个BRZ x0021命令,它将 PC 带到 x21。在 x21,有一个BRZ x52命令。当这个分支被执行到 x52 和 PC 时,那里的命令是TRAP x00. 大多数 Trap 20 的命令似乎都是针对这些(看起来像)无意义的陷阱命令。执行陷阱 x00 后,程序转到 xFD79。这真的让我很困惑,因为在内存中的 x00 处,只有另一个TRAP x00. 对我来说,该程序似乎应该转到 x00 而不是 xFD79。

有人可以帮我解释一下吗?调用陷阱时到底发生了什么?我认为它只是转到了内存中的另一个地址,该指令的实际代码所在的位置并执行了该地址,但我所看到的并没有反映出这一点。非常感谢任何帮助,因为这会阻止我现在完成学校项目。

谢谢!

0 投票
0 回答
918 浏览

c - 将 LC-3 转换为 C

我正在尝试将诸如 ADD 指令之类的 LC-3 语句转换为 C。到目前为止,我的方法是读取包含表示指令集的十六进制值的文件的内容。然后将十六进制值转换为二进制并拆分寄存器、操作数等的位。但我不确定如何开始,因为我对 C 编程语言非常陌生,它与 Python 非常不同。那么任何人都可以建议我如何编写这个 C 程序吗?也许是伪代码?