0

在我的 LC3 程序中打印任何超过 10 的数字以将 2 个输入数字相乘以获得一个区域时遇到问题。它适用于 10 以下的任何数字,所以我知道我的乘法是正确的。问题是它会在高于 10 的任何地方产生奇怪的符号或废话。所以很困惑为什么。这是我的代码:

.ORIG x3000

AND R3, R3, #0

AND R4, R4, #0

LD R5, INVERSE_ASCII_OFFSET

LD R6, DECIMAL_OFFSET

;---------------------

;receiving length

LEA R0, PROMPT1 ;load the address of the 'PROMPT1' message string

PUTS ;Prints PROMPT1

GETC ;get length

ADD R1, R0, #0

ADD R1, R1, R5

;receving width

LEA R0, PROMPT2 ;load the address of the 'PROMPT2' message string

PUTS ;Prints PROMPT2

GETC ;get width

ADD R2, R0, #0

ADD R2, R2, R5

;----------------------

;MULTIPLICATION to find AREA

ADD R4, R2, #0

FINDAREA:

               ADD R3, R3, R1

               ADD R4, R4, #-1

               BRp FINDAREA

LEA R0, PROMPT3

PUTS

ADD R0, R3, R6

OUT

HALT

PROMPT1 .STRINGZ "ENTER LENGTH OF THE RECTANGLE:"

PROMPT2 .STRINGZ "ENTER WIDTH OF THE RECTANGLE:"

PROMPT3 .STRINGZ "AREA OF THE RECTANGLE:"

INVERSE_ASCII_OFFSET .fill xFFD0

DECIMAL_OFFSET .fill #48

.END```
4

0 回答 0