Путаница в отношении кода набора команд MIPS и процесса - PullRequest
0 голосов
/ 09 октября 2019

Вот моя проблема.

Напишите программу (MIPS, Микропроцессор без блокированных этапов конвейера, инструкции), используя Mars IDE для выполнения следующих операций с заданными двумя двоичными числами со знаком ($S1=11110000, $S2=11110101). Выполните операцию вручную и сравните результаты из IDE Mars с вашими результатами.

S1 AND S2
S1 + S2
S1 OR S2
(S1+S2) AND S2

Моя проблема заключается в том, что я не уверен, должен ли я хранить регистр $s1 и $s2 в двоичном виде, когдаделать эти операции (и я застрял на том, как это сделать) или я просто конвертировать двоичный файл раньше времени (например, 11110000 = 240 и 11110101 = 245)

Если я прав в моих результатах (которые ядумаю, что правы) Я не понимаю, как это соотносится с бинарными операциями. Я думаю, что он просит меня выполнить.

Пожалуйста, помогите

Мне кажется, я понимаю, как поместить значение в регистрс префиксом 0x и шестнадцатеричным числом, но запутан в отношении того, как для двоичного.

Код инструкции MIPS:

li $s1, 240 # equals binary (11110000)
li $s2, 245 # equals binary (11110101)

and $t0, $s1, $s2

or $t1, $s1, $s2

add $s4, $s1, $s2   

and $t3, $s4, $s2

Мои результаты после компиляции в MARS и запуска:

$t0 = 240

$t1 = 245

$s4 = 485

$t3 = 229

Обновление

Из документации, которую я рассмотрел в программе MARS 4.5, он принимает только десятичное число (основание 10) и не принимает двоичные числа (основание 2). ) номер. Я думаю, что я также не смог понять, что регистры имеют длину 32 бита, что позволило добавить 240 и 245. Любые дальнейшие разъяснения будут высоко оценены.

...