我正在尝试编写一个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
答案 0 :(得分:0)
我的建议是通过某种掩码来运行这两个数字。说你有:
SAVER1:10001010
SAVER2:01110010
如果你和他们两者都反对像10000000这样的东西,它会告诉你SAVER1有一个在最重要的位,而SAVER2没有。您可以根据需要按位移动掩码,直到找到最重要的位。如果它们都具有相同的第一个重要位,它会变得更复杂,但无论如何这都是一个起点。