我必须写一个程序,要求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
发布于 2018-09-12 12:24:47
因此,您需要通过翻转这些位,然后添加1来求反其中一个寄存器。然后,如果您将该求反的值与寄存器中的另一个数字相加,则如果它们的值相等(在求反之前),则和将为零。或者,如果第二个数字更大,则和将为正。或者,如果第一个数字为负数,则和将为负数。使用BRz BRnand BRp分支跳转到适当的标签。然后,使用相同的加法过程将相同的负数与您的第三个数进行比较。这样,您就可以确定哪个值最大,哪个值最小。
发布于 2018-11-01 07:50:09
H19Br。如果它为零,则它们相等,因此对于正a,您的代码跳过步骤6 H210H111Br。如果其正R2更大,因此,让您的代码从这里继续,
https://stackoverflow.com/questions/52272602
复制相似问题