Что такое HI и LO в MIPS
-
22-09-2019 - |
Вопрос
Я читал о разделении в MIPS и нашел этот div
Разделяет $ S на $ T и хранит коэффициент в $ lo, а остаток в $ hi
http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html
И Википедия говорит
HI и LO используются для доступа к результатам умножения/делителя, доступ к которым осуществляется с помощью команд mfhi (перемещение от высокого уровня) и mflo.
http://en.wikipedia.org/wiki/MIPS_architecture
Являются ли регистры HI и LO?Какие это числовые регистры?
Решение
Это специальные регистры используется для хранения результатов умножения и деления.Они не подлежат непосредственному обращению.Доступ к их содержимому осуществляется по специальным инструкциям. mfhi
и mflo
Они присутствуют в блоке умножения и имеют размерность 32 бита каждый.Больше информации здесь.
Другие советы
HI и LO не являются нумерованными регистрами, IIRC.Они используются только для хранения результатов операций, которые не помещаются в один регистр (например,умножение двух 32-битных целых чисел может привести к получению 64-битного целого числа, поэтому переполнение переходит в HI).
редактировать:в соответствии с это описание класса, это действительно специальные регистры, поэтому они не пронумерованы и доступны только с помощью специальных команд.
Что делает LO, так это то, что для умножения он сохраняет младшие биты, а HI сохраняет остальные биты, но в основном мы просто фокусируемся на части LO для умножения.В дивизионе мы уделяем внимание обоим.LO при делении — это место, где должно храниться частное, а HI — остаток.