MIPS смещается вправо (но с добавлением 1 вместо нуля) - PullRequest
0 голосов
/ 20 февраля 2012

Есть ли в любом случае сдвиг значения регистра вправо, но вместо добавления 0 (как делает srl), добавьте 1.Если это невозможно, будут приветствоваться любые другие предложения для достижения той же цели.

1 Ответ

2 голосов
/ 20 февраля 2012

Вы можете сделать это, сначала убедившись, что наиболее значимый бит регистра, подлежащего сдвигу, равен 1, а затем выполнив арифметику сдвига вправо (этот знак расширяет результат).

Например, предположим, что вы хотите сдвинуть четыре бита в регистр вправо $ t0, поэтому вы должны сделать:

  lui $at, 0x8000   # Set leftmost bit of $at to 1 and the others to 0
  or $t0, $t0, $at  # OR into register to be shifter
  sra $t0, $t0, 4   # do an arithmetic shift right
...