Assembly 在LMC中打印给定数字的所有数字
我需要打印LMC中给定数字的所有数字。我试着用这个代码,谁给了我最后一个数字,但我不知道如何继续用其他数字Assembly 在LMC中打印给定数字的所有数字,assembly,digits,little-man-computer,Assembly,Digits,Little Man Computer,我需要打印LMC中给定数字的所有数字。我试着用这个代码,谁给了我最后一个数字,但我不知道如何继续用其他数字 INP L0 STA R0 SUB R1 BRP L0 LDA R0 OUT HLT R0 DAT 000 R1 DAT 010 您拥有的代码将输出最低有效位。要生成其他两个数字(知道LMC限制为3位数),首先重复减去100,然后计算可以执行的次数:这将是第一个要输出的数字。然后重复减去10,然后数数。。。最后输出剩余部分 对于重复减
INP
L0 STA R0
SUB R1
BRP L0
LDA R0
OUT
HLT
R0 DAT 000
R1 DAT 010
您拥有的代码将输出最低有效位。要生成其他两个数字(知道LMC限制为3位数),首先重复减去100,然后计算可以执行的次数:这将是第一个要输出的数字。然后重复减去10,然后数数。。。最后输出剩余部分 对于重复减法,您需要一个循环。您可以考虑使用自修改代码,以便重用同一个循环来减去100和以后的减法10。但您也可以为这两种情况分别编写一个单独的循环:
#输入:321
磷化铟
STA输入
LDA零;准备查找第一个数字
文胸中心1
loop1 STA输入
LDA数字;增量数字
加一
输入1个STA数字
LDA输入
次百;输出100秒数
BRP环路1
LDA数字
出来
LDA零;准备查找第二个数字
文胸中心2
loop2 STA输入
LDA数字;增量数字
加一
输入2个STA数字
LDA输入
十分之一
BRP环路2
LDA数字;输出10秒数
出来
LDA输入;输出余数
出来
零HLT
一个DAT001
2010年10月10日
100 DAT 100
输入数据
数字数据
您正在执行x%10
以获取最低数字。如果同时执行x/=10
,然后重复,则可以获得所有数字(最低有效位在前)。就像。由于这是LMC,您必须使用循环实现div/mod,因此您需要一个嵌套循环。非常感谢!我改进了代码,但在0上遇到了一些问题。我用你的代码找到了解决方案!!别忘了。