Как получить двузначные числа LC3 - PullRequest
0 голосов
/ 22 апреля 2020

Не удается напечатать любое число после 10 в моей программе LC3, чтобы умножить 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```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...