Как использовать библиотеку (сделанную на c / c ++) в MIPS
программа сборки, скомпилированная с использованием QtSpim
(MIPS
эмулятор)? Используя этот форум, я смог сделать это с помощью программы сборки Intel с помощью очень талантливого человека @rkhb. Это было решение, которое он предоставил:
Как использовать библиотеку в MSM или, точнее, в .lib файле?
Теперь я хочу сделать то же самое в MIPS
сборка. Теперь, так как я использую процессор Intel и использую QtSpim
бежать MIPS
ассемблерные программы, как это сделать при использовании QtSpim
?
Для вызова скомпилированной функции C из ассемблера (или наоборот) регистры должны иметь следующее содержимое:
Если SPIM не поддерживает загрузку исполняемых файлов, а только исходный код, вы можете создать статически связанный исполняемый файл и выполнить разборку.
Вы можете передать разборку на симулятор SPIM.
Обратите внимание, что инструкции «системный вызов» («syscall» или «syscall #n») имеют разное значение в разных операционных системах. Если библиотека содержит системные вызовы, вы не можете использовать библиотеку, написанную для Linux в SPIM, и наоборот.
— Редактировать —
Библиотечные функции, скомпилированные с ключом «-pic», должны вызываться с использованием «JALR $ t9», поэтому регистр 25 («t9») содержит адрес вызываемой функции.