Assembly 在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,然后数数。。。最后输出剩余部分 对于重复减

我需要打印LMC中给定数字的所有数字。我试着用这个代码,谁给了我最后一个数字,但我不知道如何继续用其他数字

    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上遇到了一些问题。我用你的代码找到了解决方案!!别忘了。