Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly LC-3试图添加2个数字,但结果相差甚远_Assembly_Lc3 - Fatal编程技术网

Assembly LC-3试图添加2个数字,但结果相差甚远

Assembly LC-3试图添加2个数字,但结果相差甚远,assembly,lc3,Assembly,Lc3,我有一个程序,我在一个点上加两个数字。我从用户那里收到了2个数字,使用ASCII-30将它们转换成数字,在寄存器0中将它们相加,并输出总数。我现在已经确定把数字控制在5以下,这样我就不会超过9。但我得到的总输出是。。。不知道名字。这就像一个很厚的时期,但在角色的中心而不是底部。。。就像子弹头一样。下面是我的代码,看着模拟器,当我通过程序,输入4作为两个数字。。。在我输出总数(或我想要的总数)之前,寄存器是 R0 x0008 8 R1 x0004 4 R2 x0004 4 R3x0008 ADTN

我有一个程序,我在一个点上加两个数字。我从用户那里收到了2个数字,使用ASCII-30将它们转换成数字,在寄存器0中将它们相加,并输出总数。我现在已经确定把数字控制在5以下,这样我就不会超过9。但我得到的总输出是。。。不知道名字。这就像一个很厚的时期,但在角色的中心而不是底部。。。就像子弹头一样。下面是我的代码,看着模拟器,当我通过程序,输入4作为两个数字。。。在我输出总数(或我想要的总数)之前,寄存器是

R0 x0008 8
R1 x0004 4
R2 x0004 4
R3x0008

ADTN    LD R4 CONVERT   ; Load -30 FFD0 into register 4
        GETC            ; Get charicter from user
        ADD R1, R0, R4  ; store the number in R1 after adding the neg ascii 30
        GETC            ; Get 2nd charicter
        ADD R2, R0, R4  ; Store number in R2 after adding neg ascii 30
        LEA R0, ADDMSG  ; Load into R0 message "The sum of the 2 numbers is "
        PUTS            ; Display message
        ADD R0, R1, R2  ; Add R1 and R2 and store in R0
        TRAP x21        ; Output total

一切看起来都很好,但出于某种原因,它突出了要点。我将TRAP x21更改为put,但就我所知,这也不起作用,
TRAP x21
使用
R0
中给出的ASCII码输出一个字符。由于在
R0
中有一个值为0..9的数字,因此需要向其添加
'0'
(0x30)以将其转换为范围为“0”…'9'的字符