Написать ассемблер LC-3 в ассемблере LC-3 (просто обрабатывать мнемонику -> код операции, а не операнды) - PullRequest
0 голосов
/ 04 ноября 2018

Ассемблер LC-3 должен иметь возможность отображать мнемонику инструкции в ее двоичный код операции. Например, с учетом ADD он должен генерировать двоичный шаблон 0001.

Пользователь должен ввести мнемонику языка ассемблера LC-3, и программа отобразит его двоичный код операции.

Если мнемоника языка ассемблера неверна, отображается сообщение об ошибке.

Итак, я пишу начало ассемблера LC-3 на языке ассемблера LC-3, просто обрабатывая мнемонические -> отображение кода операции, а не операнды. Есть ли способ сделать это без принудительного форсирования? То есть без необходимости записывать каждую мнемонику в память.

(связано: Разница между: кодом операции, байтовым кодом, мнемоникой, машинным кодом и сборкой )

.ORIG x3000
AND R0, R0, #0 
    IN      
    LD  R1, A   
    ADD R1, R1, R0
    BRz ND

LD  R1, B   
    ADD R1, R1, R0
    BRz ZERO    

ND  AND R0, R0, #0
IN
LD  R1, N
    ADD R1, R1, R0
    BRz ZZZO
    BRnp
ZZZO    AND R0, R0, #0
    LD  R0, N1
ZERO    AND R0, R0, #0
    OUT 
    HALT
A   .FILL   x8041
B   .FILL   x8042
D   .FILL   x8044
E   .FILL   x8045
I   .FILL   x8049
J   .FILL   x804A
M   .FILL   x804D
N   .FILL   x804E
N1  .FILL   x
O   .FILL   x804F
P   .FILL   x8050
R   .FILL   x8052
S   .FILL   x8053
T   .FILL   x8054
...