LC-3 尝试将 2 个数字相加,但结果相差甚远
LC-3 Trying to add 2 numbers but the results are way off
我有一个程序,我一次添加 2 个数字。我从用户那里收到了 2 个数字,使用 ASCII -30 将它们转换为数字,在寄存器 0 中将它们相加并输出总数。我现在已经确保将数字保持在 5 以下,所以我不会超过 9 个。但是我得到的总输出是……不确定名字。它就像一个粗句,但在角色的中心而不是底部……就像一个要点。我的代码在下面,看着模拟器,当我通过程序并为两个数字输入 4 时......就在我输出总数(或我想要的总数)之前,寄存器是
R0 x0008 8
R1 x0004 4
R2 x0004 4
R3 x0008 8
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 更改为 PUTS,但也没有用
据我了解,TRAP x21
输出一个 字符 和 R0
中给出的 ASCII 码。由于您在 R0
中有一个值为 0..9 的数字,您需要向其添加 '0'
(0x30) 以将其转换为“0”..“9”范围内的字符。
我有一个程序,我一次添加 2 个数字。我从用户那里收到了 2 个数字,使用 ASCII -30 将它们转换为数字,在寄存器 0 中将它们相加并输出总数。我现在已经确保将数字保持在 5 以下,所以我不会超过 9 个。但是我得到的总输出是……不确定名字。它就像一个粗句,但在角色的中心而不是底部……就像一个要点。我的代码在下面,看着模拟器,当我通过程序并为两个数字输入 4 时......就在我输出总数(或我想要的总数)之前,寄存器是
R0 x0008 8
R1 x0004 4
R2 x0004 4
R3 x0008 8
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 更改为 PUTS,但也没有用
据我了解,TRAP x21
输出一个 字符 和 R0
中给出的 ASCII 码。由于您在 R0
中有一个值为 0..9 的数字,您需要向其添加 '0'
(0x30) 以将其转换为“0”..“9”范围内的字符。