Проблема бинарного языка в ассемблере LC-3.Диаграмма и двоичный файл не совпадают - PullRequest
0 голосов
/ 05 апреля 2019

Мой профессор дал моему классу эту диаграмму, чтобы основать нашу программу на: https://imgur.com/a/VB2G0n1

Я уже получил двоичный код, в котором есть ошибки.Я мог бы использовать некоторую помощь, переводя это на язык ассемблера и исправляя ошибки, чтобы это решало проблему на диаграмме.Язык, на котором я использую LC-3 Basic Assembly, язык с AND, NOT и ADD в качестве команд

Я пытался перевести двоичный код на язык ассемблера, но мне кажется, что возникают некоторые проблемы.Вокруг строки 8 я продолжаю получать «12304 не может быть представлен как число со знаком 9 в 9 битах».что бы я ни пытался

0011000000000000
0101000000100000
0001000000100001
0101001001100000
0001001001111011
0101011011100000
0001011011101010
0010100000001001
0110010100000000
0001010010000001
0000010000000101
0001100100100001
0001011011111111
0110010100000000
0000001111111010
0101000000100000
1111000000100101
0011000100000000

В этой программе нет вывода, она просто зацикливается, пока не встретит 5, а затем остановится.

РЕДАКТИРОВАТЬ: Извините за предоставление вашей рабочей части!Для этого мне удалось вручную перевести двоичный код int на следующий язык ассемблера:

.ORIG X3000
AND R0, R0, #0
ADD R0, R0, #1
AND R1, R1, #0
ADD R1, R1, #-5
AND R3, R3, #0
ADD R3, R3, #10
LD R4, x3100
LDR R2, R4, #0
ADD R2, R2, #0
BRz x300F
ADD R4, R4, #1
ADD R3, R3, #-1
LDR R2, R4, #0
BRp x3008
AND R0, R0, #0
HALT
ST R0, x2F11
.END

Однако я столкнулся с другой проблемой: в строке 8 он не будет поддерживать 9-значное число

...