问题标签 [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.
subroutine - 在 LC3 中跳转失败
我似乎遇到了 LC3 组装的问题。
我试图跳转到一个子程序,但它只是进入下一个命令。
我试过了:
在底部,这一行定义了 Subpgm。
我希望这会跳转到PC x4000
,但 PC 只是增加了正常的 1。
任何帮助将不胜感激!
duplicates - LC-3 检查输入的号码是否与之前输入的号码重复
用户每次从键盘输入一个数字,最多 5 次有效。程序需要检查输入的号码是否与之前的号码重复,我将如何检查?谢谢!
lc3 - LC-3 程序正在返回无法打印的内容
我为 LC-3 编写了一个程序,用于接收 10 以下的数字,直到达到 0,然后输出输入的最大数字。
一切似乎都有效,但我一直得到不正确或不存在的结果。例如,如果我输入 1、2、3,然后是 0,它应该说:
零进入,结束程序。输入的最大整数是 3
但我什么也得不到。
我试图用来输出最大整数的方法是使用二进制补码系统来确定较大的两个数,如果没有输入 0 则循环返回,但我认为我的逻辑有一个主要问题。
抱歉,格式可能有点不稳定,如果您需要更多信息或者我做错了什么(就帖子而言 - 我知道我的代码有误),请告诉我。
先感谢您!(我在代码底部还有一个示例输出。)
示例输出 - 输入一位整数:1 输入一位整数:2 输入一位整数:3 输入一位整数:0 输入零,程序结束。
assembly - JSRR 不会进入 LC3 的外部程序
我似乎遇到了 LC3 组装的问题。
我试图跳转到一个子程序(在另一个程序中,否则我只会使用 JSR),但它只是进入下一个命令。
我试过了:
在底部,这一行定义了 Subpgm。
我希望这会跳转到 PC x4000,但 PC 只是增加了正常的 1。
任何帮助将不胜感激!
assembly - 当用户点击“回车”键时,如何显示另一个提示?
我正在编写一个程序来最终将单词翻译成猪拉丁语,到目前为止,我已经将用户输入的字符存储到单独的内存位置(单词最多可以是 19 个字符)。
现在我想在用户按下回车键时打印另一个提示(在他们用英文输入完他们的单词之后)。我查看了一些示例,发现它们在程序底部附近有一行写着“NEWLINE .FILL x00A”。我知道这是回车键的 ASCII 码,但我不确定如何告诉我的程序在点击“回车”后需要显示另一个提示。任何提示或想法表示赞赏!
lc3 - Why am I getting extra characters?
Program Description
I used .BLKW to allocate 20 locations for each character that the user inputs and for now, I just want to display the string the user typed at the first prompt. (This will be a pig latin translator, hence the second prompt; but right now I just want to see if I can print out the user input)
The Problem
The problem is that when I run it, I get extra characters at the end.
For example:
My Program
Attempted Solution
I was thinking that the problem was that R4 holds the string of the first user input throughout the whole program. So for a solution, I thought about clearing R4 after it is displayed so that it's ready to take the next user input. Does anyone know how I would do that?
arrays - 如何循环遍历 LC-3 组件中的数组并打印出每个项目?
我有一个大小为 10 的数组,它接受用户的字符输入。现在我只需要遍历数组并打印出每个字符后跟一个新行,但我不知道从哪里开始。LC-3 组件不是我的强项......到目前为止,这是我的代码:
我的问题基本上是我在 OUT_LOOP 中放了什么?
c - Parsing hex into an LC3 ADD instruction
I am writing a program in C to convert a hex file compiled for the LC3 processor back into assembly language.
Currently, I am trying to decode the ADD
instruction.
There are two types of ADD
s in LC3 assembly language:
- add by reference: adding two registers
- add immediate: adding a register to a hard-coded value
For example, the hex code 164F
would be converted to: ADD R3, R1, R7
. this is an add by reference. Conversely, the hex code for 153F
would be converted to: ADD R2, R4, #-1
. This is an add immediate.
The function should decode both as appropriate.
lc3 - LC3,将寄存器的值存储到内存位置
我正在尝试编写一个简短的 LC-3 程序来初始化 R1=5、R2=16 并计算 R1 和 R2 的总和并将结果放入内存 x4000。该程序应该从 x3000 开始。不幸的是,我必须以二进制形式编写它。
这是我目前所拥有的......
.orig x3000__________; 程序从 x3000 开始
0101 001 001 1 00000 ;R1 <- R1 AND x0000
0001 001 001 1 00101 ;R1 <- R1 + x0005
0101 010 010 1 00000 ;R2 <- R2 AND x0000
0001 010 010 1 01000 ;R2 <- R2 + x0008
0001 010 010 1 01000 ;R2 <- R2 + x0008
0001 011 010 0 00 001 ;R3 <- R2 + R1
//这最后一步是我苦苦挣扎的地方......我正在考虑使用ST,我认为PCOFFSET9是994,但我不能用8位来表示......那我该怎么做呢?我的代码效率低吗?
0011 011
assembly - 为什么我的汇编程序没有将 r1 设置为正确的值?
我正在 LC3 机器上编写一个汇编程序。
我的汇编程序是一个 LC3 程序,它将 R2 和 R3 相乘并将结果存储在 R1 中。
这是我的源代码(带注释)
我的测试用例乘以 4 * 3。结果应该是 12,应该存储在 R1 中。然而,当我在我的 LC3 模拟器中运行这个程序时,这就是我得到的输出
R3 最后保持正确的值,但 R1 保持 -1.... 有人看到我的代码有问题吗?我确保在开始时清除 R1,并继续将 R3 添加到 R1 并将结果存储到 R1,而在这种情况下,计数器 R3 或 3 大于零。