В MIPS, что такое HI и LO - PullRequest
       64

В MIPS, что такое HI и LO

20 голосов
/ 23 февраля 2010

Я читаю о делении в 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? Какие они числовые регистры?

Ответы [ 3 ]

24 голосов
/ 23 февраля 2010

Это специальные регистры , используемые для хранения результата умножения и деления. Они не имеют прямого обращения. К их содержанию обращаются по специальным инструкциям mfhi и mflo

Они присутствуют в модуле умножения и по 32 бита каждый. Подробнее здесь .

10 голосов
/ 23 февраля 2010

HI и LO не нумерованные регистры, IIRC. Они используются только для хранения результатов операций, которые не помещаются в одном регистре (например, умножение двух 32-разрядных целых чисел может привести к 64-разрядному целому числу, поэтому переполнение идет в HI).

edit: согласно описанию этого класса , они действительно являются специальными регистрами, поэтому они не нумеруются и доступны только с помощью специальных команд.

1 голос
/ 27 сентября 2016

Что делает LO, так это то, что для умножения он хранит младшие значащие биты, а HI хранит оставшиеся биты, но в основном мы просто фокусируемся на части LO для умножения. В подразделении мы сосредоточены на обоих. LO в делении - это то, где частное должно храниться, а HI - остаток.

...