2013-02-28 2 views
0

Я изучаю сборку MIPS, используя веб-сайт для упражнений.(ASM), что означает «установить бит 1»?

Упражнение 2

В каждом регистре $ 1 до $ 7 установлен соответствующий бит. То есть в регистре 1 бит набора 1 (и очистить остальные до нуля), в бите 2 бит 2 (и очистить остальные до нуля) и так далее. Используйте только одну команду ori в вашей программе, чтобы установить бит в регистр $ 1. начинайте с: 'ori $ 1, $ 0,0x01' Не используйте другие инструкции ori, кроме этого. Примечание: бит 1 регистра является вторым справа, тот, который (в двоичном формате без знака) соответствует первой мощности двух.

Может кто-нибудь объяснить это?

Возможно ли положить 0x02 в регистр 1? (Я не могу использовать ori, поэтому я бы использовал сдвиг влево, чтобы сделать 0x01 в 0x02)

Это делает регистр 1 == 10 (двоичный). Следовательно, первый бит регистра 1 равен 1, а остальные биты равны нулю?

Я смущен, потому что симулятор MIPS не показывает начальные нули. Поэтому я не знаю, правильно ли я это делаю.

ответ

0

Да, ваша интерпретация верна.

ori $1,$0,0x01 # Initialize $1 
sll $2,$1,2  # Set bit 2 or $2 
sll $3,$1,3  # Set bit 3 of $3 
...    # ..and so on for $4..$7 
sll $1,$1,1  # Finally set bit 1 of $1 

или в качестве альтернативы:

ori $1,$0,0x01 
sll $1,$1,1 
sll $2,$1,1 
sll $3,$2,1 
... 
Смежные вопросы