Разница между сохранением слова, загрузкой слова и перемещением - PullRequest
0 голосов
/ 27 февраля 2019

Я новичок в сборке MIPS.Я не могу понять, что именно эти инструкции делают, поэтому я пытаюсь проверить это.Это код для переключения значений регистров t0 и t1.

# Perform swap.
    lw  $t3, 0($t0)
    lw  $t4, 0($t1) 
    sw  $t3, 0($t1)
    sw  $t4, 0($t0)

Код кажется разумным, сохраняя их значения в t3 и t4, а затем меняя их местами.Здесь я не могу понять, почему мы не можем использовать слово перемещения или загрузки здесь вместо слова магазина?Например, почему код не может быть таким?

# Perform swap.
    lw  $t3, 0($t0)
    lw  $t4, 0($t1) 
    move $t1,$t3
    move $to,$t4

Или вот так

# Perform swap.
lw  $t3, 0($t0)
lw  $t4, 0($t1) 
lw  $t1,0($t3)
lw $t2,0($t4)

1 Ответ

0 голосов
/ 27 февраля 2019

Сохранить слово (4 байта): взять содержимое из регистра и сохранить его в памяти

Загрузить слово (4 байта): строго противоположно, получить значение из памяти и сохранить его в регистре

Переместить: скопировать значение из регистра 1 (например) и поместить его в другой регистр

...