Я программировал некоторую домашнюю работу для универа, и у меня возник вопрос:
Стоит ли создавать функцию, если код функции короче кода для сохранения регистров, которые он использует в стек?
Позвольте мне объяснить это с помощью некоторого кода:
Я пытался вернуть значение указанной позиции c внутри двумерного массива cubi c, используя этот код прямо здесь:
mul $v0, $a1, $a3
add $v0, $v0, $a2
mul $v0, $v0, DATA_SIZE
add $v0, $v0, $a0
Где:
- DATA_SIZE - размер данных, хранящихся в массиве
- $ v0 - это значение, которое мы хотим получить доступ и возврат
- $ a0 - базовый адрес массива
- $ a1 - координата строки
- $ a2 - координата столбца
- $ a3 это длина массива (длина строк и столбцов, которая равна, потому что это cubi c)
Мне было интересно, стоило ли это сделать функцию, которая делает это, как код сохранить в стек значения $ v0, $ a0, $ a1, $ a2 и $ a3 и вернуть эти значения поздно На самом деле r больше, чем внутри функции.
Заранее спасибо!