首页 > 解决方案 > LC-3 条件句(对此不熟悉)只是寻找指导或答案

问题描述

我必须编写一个要求 3 个正数(小于 10)的程序。然后输出最大和最小的数。我觉得我在死胡同,不知道下一步该做什么。任何帮助将不胜感激。

.ORIG x3000
LEA R0, MyNameID    ;Show name and ID
PUTS

LEA R0, EnterNum1   ;Print enter number 1
PUTS
GETC R1
OUT

LEA R0, EnterNum2   ;Print enter number 2
PUTS
GETC R2
OUT

LEA R0, EnterNum3   ;Print enter number 3
PUTS
GETC R3
OUT

halt     

MyNameID .STRINGZ "\nName, ID number: "
EnterNum1 .STRINGZ "\nPlease enter number 1:"
EnterNum2 .STRINGZ "\nPlease enter number 2:"
EnterNum3 .STRINGZ "\nPlease enter number 3:"
SmallestNum .STRINGZ "\nThe smallest number is:"
LargestNum .STRINGZ "\nThe largest number is:"
.end

标签: if-statementlc3

解决方案


因此,您需要通过翻转位然后添加一个来否定其中一个寄存器。然后,如果您将该否定值添加到寄存器中的另一个数字,如果它们的值相等(在否定之前),则总和将为零。或者如果第二个数字更大,总和将为正数。或者如果第一个数字为负数,则总和将为负数。使用 BRz BRn 和 BRp 分支跳转到适当的标签。从那里使用相同的加法过程将相同的否定数字与您的第三个数字进行比较。通过这种方式,您可以确定哪个值最大,哪个值最小。


推荐阅读