问题标签 [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 投票
2 回答
5642 浏览

assembly - LC3 汇编语言程序

如何将用户输入的任何字符转换为其相应的十进制值?我只是在开始时遇到了麻烦。

该计划必须实现以下目标:

  1. 该程序接受来自键盘的字符。

  2. 如果字符是数字('0' 到 '9'): a) 将字符转换为其对应的十进制值。换句话说,'0' 变为 0,'1' 变为 1,......'9' 变为 9。我们称该值为 R(表示“运行长度”)。b) 等待另一个字符(使用 GETC)。c) 将该字符的 R 个副本打印到控制台。) d) 返回步骤 1。

  3. 否则,如果字符是 Enter/Return (ASCII #10):将换行符 (ASCII #10) 打印到控制台,然后返回步骤 1。

  4. 否则,如果字符是其他字符,请停止程序。
0 投票
1 回答
2474 浏览

string - 字符串反转 LC3 汇编语言

我正在编写一个基于 LC-3 汇编语言的 .asm 程序,该程序将遍历字符串列表,反转每个字符串,并将其存储回列表中的位置。

例如:

该程序会将该列表翻转为“ bbbaa”、“ avcbb”和“ edcba”——因此,颠倒字符串但保持列表顺序。

我目前正在研究一个嵌套循环的想法,其中外循环将从一个字符串转到另一个字符串,而内循环将翻转它们,它正在踢我的屁股!我用 Java 编写了代码来做同样的事情,我花了 5 分钟,但出于某种原因,汇编只是在我的脑海里大便。有关如何执行此操作的任何指示?

到目前为止,这是我所拥有的,混合了伪和汇编:

而且我一点也不知道如何在字符串之间进行外循环。

TL;DR - 用于反转内存中字符串的汇编程序,请帮助。

0 投票
1 回答
3474 浏览

assembly - LC3 汇编语言程序

如何将用户输入的任何字符转换为其相应的十进制值?我只是在开始时遇到了麻烦。

该程序必须实现以下目标:

  1. 该程序接受来自键盘的字符。

  2. 如果字符是数字('0' 到 '9'): a) 将字符转换为其对应的十进制值。换句话说,'0' 变为 0,'1' 变为 1,......'9' 变为 9。我们称该值为 R(表示“运行长度”)。b) 等待另一个字符(使用 GETC)。c) 将该字符的 R 个副本打印到控制台。) d) 返回步骤 1。

  3. 否则,如果字符是 Enter/Return (ASCII #10):将换行符 (ASCII #10) 打印到控制台,然后返回步骤 1。

  4. 否则,如果字符是其他字符,请停止程序。

0 投票
0 回答
2027 浏览

assembly - 陷入无限循环(LC3 汇编语言)

我目前正在从事 LC-3 汇编语言的作业。该分配使用 LC3 汇编语言实现了一个程序,该程序接受用户输入的字符串,将它们回显给用户,然后打包字符串。该程序已经完成,除了我们应该完成的 2 个子程序。我正在研究 Get String 子例程,但我的代码陷入了无限循环,我不知道为什么。如果不是太麻烦,任何人都可以看看我的代码,看看他们是否发现了问题?我认为这与我使用 GETSTR 子例程的分支有关,但我不确定。到目前为止,这是我的代码。

0 投票
2 回答
2674 浏览

integer - lc-3 如何将整数值添加到寄存器

我是 LC-3 的新手,正在尝试编写简单的程序。我正在尝试将两个整数 2、3 加载到 2 个不同的寄存器中并打印出总和。这是我的程序,而不是添加 2 和 3,而是添加 32 和 33,并为我提供 65 的相应 ascii 字符。如何修复程序以使其打印 5?另外,我知道 OUT 打印 R0 的值,但我将如何打印 R1 和 R2 的值?除了使用 LD 之外,还有其他方法可以将整数值加载到寄存器中吗?

.ORIG x3000

两个 .FILL x32 三个 .FILL x33

任何帮助,将不胜感激!

0 投票
1 回答
1516 浏览

assembly - 存储在 LC-3 问题中

因此,我正在使用 LC-3 汇编语言进行作业,但遇到了问题。因此程序设计为使用子程序 GETDEC 从键盘接收一些输入作为字符串,然后解释输入字符串以构造整数值。我想我已经接近完成任务了,但我似乎被困住了。我们打算为输入缓冲区使用一个 8 个字的块,我的问题是,我似乎无法让我的程序将输入字符串值保存在块中,这反过来又阻止了我能够退出我的主要方法中的循环。

这里是主要方法

这是我的 GETSTR 子例程,它将输入作为字符串值

这是我的 GETDEC 子例程,它接受输入字符串并将其解释为相应的整数值。

因此,重申一下,主要方法循环 GETDEC 直到在输入处输入 0,但我的代码中的某些内容阻止我在输入 0 时跳出循环。我想我可能在 GETDEC 子例程中使用了错误的 Load 方法,但我不确定,如果有人可以提供帮助,将不胜感激。

0 投票
1 回答
3665 浏览

lc3 - 在 LC-3 中显示寄存器的值

我想知道如何在寄存器中显示/输出值。

例如:R3 中存储了值 2。我想在屏幕上显示那个数字。

下面的代码不起作用,因为它告诉我我需要一个标签。我也尝试将 R3 的值存储到 R0 中,但是当我显示它时,我得到了一些时髦的符号

LEA R0, R3
推杆

0 投票
1 回答
4010 浏览

lc3 - 如何在 LC-3 中进行划分?

有人可以向我解释如何在lc3中划分。我真的不明白该怎么做。例如,如果我将 int 250 存储在随机内存位置,并且它显示为 x0102,我该如何划分才能将其拆分,以便 250 变为 2、5、0?

0 投票
1 回答
12961 浏览

lc3 - LC-3 从用户输入打印字符串

我正在做一项任务,我目前卡住了。这是问题的一部分:

正好接受 7 个字符并将它们回显到控制台。在 7 个字符后移动到下一行,无需等待返回/输入。

所以我做了一个循环 7 次的循环,获取输入并在屏幕上显示并存储字符(我认为)。但我无法在下一行打印保存的字符串。

这是我当前的代码:


我所能做的就是查看我输入的字符。我想将下一行的字符打印为 1 个字符串。

0 投票
1 回答
1950 浏览

variables - 如何用汇编语言打印出一个值

我正在尝试从 LC3 中的变量打印 int "1"

我有:

计数器 .FILL #1

LD R1,计数器

PUTC

但这会打印“'0”(撇号零)