问题标签 [little-man-computer]

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 回答
272 浏览

little-man-computer - 如何在小人电脑中检查一个数字是奇数还是偶数

我需要帮助以使我的程序产生正确的输出。

我目前正在使用此代码:

当我在小人计算机模拟器上运行上面的代码时,它只是循环和循环并且不打印任何输出。我想要做的是将输入的数字一分为二并检查它是否有余数。如果有余数,则为奇数,否则为偶数。我知道代码有错误,但我无法确定问题出在哪里,也许你可以帮助我。提前致谢!

0 投票
0 回答
131 浏览

little-man-computer - 编写汇编语言代码以查找用户输入的总和

我该如何为此做汇编代码?

用 LMC 汇编语言编写一个汇编语言代码,执行以下操作: 从用户那里获取 5 到 10 之间的数字的输入 计算从 1 到用户指定输入的数字之和,并在输出显示中打印结果。

0 投票
1 回答
279 浏览

arrays - 在 LMC 中编程数组

我正在应对这个挑战:

程序需要接受一个整数序列。它以数字 999 结尾。整数(999 除外)放在一个列表中。整数必须小于或等于 99。任何大于 99 的输入都不会放在列表中。

如果输入的数字超过十个,则只存储前十个。

999 不是输出的一部分。

我不知道如何将列表长度限制为十 (10) 个数字。另外我不知道如何以相反的顺序输出列表。

这是我的代码:

0 投票
1 回答
215 浏览

assembly - LMC 中的输出和复位列表

我正在应对这个编码挑战:

为 Little Man Computer 编写一个程序,允许用户管理值列表。它应该从一个空列表开始,然后按如下方式处理输入:

如果输入是:

  • 小于 100:将此值添加到列表中,除非列表已经有 10 个值,在这种情况下,忽略该值
  • 995:使列表为空
  • 996:输出列表当前拥有的值的个数
  • 997:输出列表当前具有的每个值,按照它们添加到列表中的顺序
  • 998:以相反的顺序输出列表当前具有的每个值
  • 999:结束程序
  • 任何其他值都被忽略

只要输入值不是 999,就会继续处理输入值。

当输入 997 时,我在获取代码以正向打印存储列表时遇到问题。我想我可能对ADDSUB指令感到困惑。输入 995 时,我也无法正确重置存储的列表。

我能够正确编程的所有其他内容。

下面是我的代码:

0 投票
2 回答
293 浏览

assembly - 将三个数字输入 LMC 并从大到小输出?

所以,我已经设法解决了大部分问题,但是如果输入值上升,我只能从最大输出到最小?第一个 = 10,第二个 = 20,第三个 = 30。如果值不同,我将如何正确输出?(比如说,5,1,3?例如)

这是我到目前为止所拥有的:

0 投票
1 回答
72 浏览

assembly - 保持输入 LMC 的数字总数

我正在制作一个程序,允许用户无限期地输入数字,直到他们输入“0”。一旦他们输入 0,程序应该停止。但是,我想将输入的每个数字添加到运行总数中,并在每次用户输入新数字时输出总数。例如:

输入 = 2
总计 = 2
输入 = 2
总计 = 4
输入 = 3
总计 = 7
输入 = 0
程序停止

代码:

上面的代码无限期地接受用户输入,但输出单个数字(不保留运行总数)。我想知道当用户在 LMC 中输入 0 时,如何保持所有输入数字的总和并停止程序。提前致谢。

0 投票
1 回答
53 浏览

computer-science - 如何在LMC中检测计算大于999然后输出999?

我需要编写一个 LMC 程序来解决 a+bx+x 2。进一步,如果结果大于999,则需要输出999;如果小于 999,则输出结果。

我已经完成了 a+bx+x 2部分,但不知道溢出时如何输出 999。

这是我的代码:

0 投票
1 回答
235 浏览

assembly - 获取输入数字的最大值和计数

我需要为以下任务创建一个简单的 LMC 程序:

输入一系列数字并输出:

  1. 其中最大的,并且
  2. 输入了多少个数字。

数字 000 将用于标记输入数字系列的结束(000 不被视为系列的一部分,但如果它是唯一输入的数字,则应输出)。
您的程序必须适用于任意数量的输入值。

我想我需要使用分支(BRZ, BRP, BR),但我不确定我应该使用哪种类型。另外,我尝试过使用在线 LMC 模拟器,但我不确定从哪里开始,因为 LMC 非常混乱。

我该如何解决这个问题?

0 投票
2 回答
56 浏览

assembly - 如何在小人计算机程序中产生股息和余数?

我正在尝试编写一个 LMC 程序,它接受两个整数输入,将它们相除,然后产生商和余数。首先,我将问题分解为 4 个阶段:

1.将 num1 除以 num2 得到商 q。

2.将q和num2相乘得到确切的乘数,并将其存储在num2中。

3.从num1中减去num2,并将答案存储在rem中。

4.输出q和rem。

这是我写的代码:

当我尝试在 LMC 模拟器中运行代码时,它不会产生结果,而是无限期地继续计算。我怎样才能让它工作?有一个更好的方法吗?任何帮助是极大的赞赏。