Lc3:我如何比较两个值?

时间:2018-04-11 20:34:50

标签: int compare lc3

我正在尝试编写一个lc3汇编语言问题,但我很困惑。程序必须输入两位数字并输出哪个数字更大。我需要使用子程序来完成此任务。 现在,我将第一个数字放在r1中,第二个数字放在r3中,我必须将输出放在r0中。我真的很困惑,我应该如何比较这两个值,任何建议将不胜感激!

.ORIG X3000

;********************MAIN***********************
LEA R0, IN_STR               ;DISPLAYS STRING
PUTS  
GETC                         ;INPUT NUM1
OUT
ADD R1,R0,X0                 ;PUTS NUM1 IN R1
GETC                         ;INPUT NUM2
OUT
ADD R2,R0,X0                 ;STORE NUM2 IN R2
ADD R3,R2,R1
JSR LARGER
OUT
HALT
;*****DATA*****
IN_STR .STRINGZ "ENTER TWO SINGLE DIGIT INTEGERS: "
;*****SUBROUTINE*****
LARGER ST R1,SAVER1         ;SAVE R1
       ST R2,SAVER2         ;SAVE R2
       AND R0,R0,#0         ;CLEAR R0

;********DATA*********
SAVE R1 .BLKW 1
SAVE R2 .BLKW 1
.END

1 个答案:

答案 0 :(得分:0)

我的建议是通过某种掩码来运行这两个数字。说你有: SAVER1:10001010
SAVER2:01110010

如果你和他们两者都反对像10000000这样的东西,它会告诉你SAVER1有一个在最重要的位,而SAVER2没有。您可以根据需要按位移动掩码,直到找到最重要的位。如果它们都具有相同的第一个重要位,它会变得更复杂,但无论如何这都是一个起点。