Я пытаюсь записать двоичный код MIPS для машинных инструкций, связанных с регистром с плавающей запятой. Но пока я могу найти код операции для инструкций с плавающей запятой, я не могу узнать, какие числа относятся к какому регистру с плавающей запятой. Моя книга и Интернет могут сказать мне, какой номер я буду использовать, если захочу обратиться к $ t1, но я не могу найти никакой информации о том, как я буду ссылаться на $ f1.Какие регистры числа представляют собой регистры с плавающей запятой в MIPS?
ответ
Имеется 32 регистра с плавающей запятой: $f0
.. $f31
. Но каждая операция с плавающей запятой выполняется (в ранних MIPS-процессорах) в отдельном процессоре, FPU (модуль с плавающей точкой), поэтому вы не можете получать регистры с плавающей запятой с обычной (целочисленной) командой. FPU регистрирует команды FPU и регистры CPU для команд CPU.
Существует фотография и прозрачного описание http://www.cim.mcgill.ca/~langer/273/12-coprocessors.pdf
команды Всех FPU кодируются как сопроцессор, инструкции для сопроцессора 1 (CP1) Проверки первых и последних страниц http://www.cs.sunysb.edu/~lw/spim/MIPSinstHex.pdf
Поля футов (5) фс (5) fd (5) - коды регистров (все имеют ширину 5 бит). $ f0 будет кодироваться как 0; $ f31 как 31 (dec) или 0x1f (hex). Для двух регистровых значений (64-битный двойной формат) записывается только номер первого регистра из пары регистров (допускается только разрешенный номер: 0,2 ..30).
Подробные таблицы опкодов здесь: http://www.math.unipd.it/~sperduti/ARCHITETTURE-1/mips32.pdf (страница A-73)
- 1. Как использовать регистры с плавающей запятой в MIPS
- 2. MIPS, регистры, начинающий
- 3. MIPS Assembly - Регистры Фибоначчи
- 4. mips: регистры содержат адрес или просто значения
- 5. MIPS Syscalls и регистры $ t
- 6. Когда использовать какие регистры?
- 7. Как я могу узнать, какие регистры использовать в программе Mips
- 8. Нужно ли инициализировать регистры в MIPS
- 9. Умножение с плавающей запятой MIPS
- 10. Правильное использование сборки (MIPS): регистры против стека
- 11. Как используются базовые регистры, регистры ограничения и регистры перемещения?
- 12. Умножение чисел с плавающей запятой в MIPS
- 13. MIPS с плавающей запятой добавить
- 14. Когда использовать временные регистры или сохраненные регистры?
- 15. Перемещение числа квадрациклов в регистры xmm
- 16. Сортировка чисел с плавающей запятой В MIPS
- 17. Регистры работают
- 18. TASM - Регистры?
- 19. Сборочные регистры
- 20. Рандомизирующие регистры
- 21. Какие регистры оценивает strcmp? x86 Assembly
- 22. Переполнение числа с плавающей запятой
- 23. Значение $ a1 = flag и $ a2 = регистры режима в MIPS
- 24. Inline Assembler: Какие регистры нуля могут использоваться?
- 25. Знак числа с плавающей запятой
- 26. Регистры общего назначения
- 27. Ошибка с загрузкой двойной точности, значения с плавающей запятой в регистры?
- 28. Регистры как параметр шаблона
- 29. Что такое теневые регистры в MIPS и как они используются?
- 30. Идентификационные регистры в процессоре
спасибо! «Я принял» этот ответ? Я не уверен, как это сделать, но я хотел бы ... –
Да, зеленый символ «v» означает, что ответ принят – osgx