Я хотел бы расширить ответ Нильса Пипенбринка:
От архитектуры MIPS32 для программистов
мти
Формат: MIPS32 (MIPS I)
MTHI rs
Цель: скопировать GPR в специальный регистр HI.
Description: HI ← rs
Содержимое GPR rs загружается в специальный регистр HI.
Ограничения:
Вычисленный результат, записанный в пару HI/LO с помощью DIV, DIVU,MULT или MULTU, должен быть прочитан с помощью MFHI или MFLO, прежде чем новый результат можно будет записать в HI или LO. Если инструкция MTHI выполняется после одной из этих арифметических инструкций, но до инструкции MFLO или MFHI, содержимое LO НЕПРЕДСКАЗУЕМО. В следующем примере показана эта недопустимая ситуация:
MUL r2,r4 # start operation that will eventually write to HI,LO
... # code not containing mfhi or mflo
MTHI r6
... # code not containing mflo
# this mflo would get an UNPREDICTABLE value
MFLO r3
Историческая информация:
В MIPS I-III, если любая из двух предыдущих инструкций является MFHI, результат этой MFHI НЕПРЕДСКАЗУЕМ. Чтения специального регистра HI или LO должны быть отделены от любых последующих инструкций, выполняющих запись в них, двумя или более инструкциями. В MIPS IV и более поздних версиях, включая MIPS32 и MIPS64, этого ограничения не существует.
мтло
Формат: MIPS32 (MIPS I)
MTLO rs
Назначение: скопировать GPR в специальный регистр LO. Описание:
LO ← rs
Содержимое GPR rs загружается в специальный регистр LO.
Ограничения: Вычисленный результат, записанный в пару HI/LO с помощью DIV, DIVU, MULT или MULTU, должен быть прочитан с помощью MFHI или MFLO, прежде чем новый результат можно будет записать в HI или LO.
Если инструкция MTLO выполняется после одной из этих арифметических инструкций, но до инструкции MFLO или MFHI, содержимое HI НЕПРЕДСКАЗУЕМО. В следующем примере показана эта недопустимая ситуация:
MUL r2,r4 # start operation that will eventually write to HI,LO
... # code not containing mfhi or mflo
MTLO r6
... # code not containing mfhi
# this mfhi would get an UNPREDICTABLE value
MFHI r3
Историческая информация:
В MIPS I-III, если любая из двух предыдущих инструкций является MFHI, результат этой MFHI НЕПРЕДСКАЗУЕМ. Чтения специального регистра HI или LO должны быть отделены от любых последующих инструкций, выполняющих запись в них, двумя или более инструкциями. В MIPS IV и более поздних версиях, включая MIPS32 и MIPS64, этого ограничения не существует.
person
Tom
schedule
05.05.2009