Сдвиг в MIPS по формуле - PullRequest
       33

Сдвиг в MIPS по формуле

0 голосов
/ 13 декабря 2018

Я изучаю MIPS и, исходя из процедурного опыта программирования, доказать это сложно.Это вопрос, с которым я столкнулся, когда дело дошло до сдвига.Если в ответе есть какие-либо указатели, было бы желательно.

Предположим, что rt является регистром, который содержит целое число.Объясните, почему инструкция

sll $rd, $rt, h 

имеет эффект внесения

2^h ∗ rt 

в регистр rd

1 Ответ

0 голосов
/ 13 декабря 2018

Это не имеет ничего общего с процедурным программированием, а скорее с двоичными числами.

Некоторые примеры использования 8-битных чисел:

Если у вас есть число 1 (десятичное число) -в двоичном виде это будет 0000 0001

Если вы сдвинете влево на 1, вы переместите все числа на 1 и вставите 0 в новое пространство сдвига

Так что теперь у вас будетдвоичный 0000 0010 - или 2 десятичный.

Сдвиг влево другой дает 0000 0100 или 4 десятичный.

Таким образом, если вы сдвинете исходное число 1 влево на 2, вы получите4.

Или, глядя на это как шаблон:

1 сдвиг влево = * 2 (2 ^ 1)

2 сдвиг влево = * 4 (2 ^ 2)

Все это выглядит как

2^h ∗ rt 
...