Так что у меня проблемы с проблемой. Im givin, что a - это массив слов, а базовый адрес a сохраняется в $ a0. Поэтому для int a [10] найти сумму этого массива с помощью mips. Я действительно не знаю, с чего начать, кто-то может помочь мне начать, и я думаю, что смогу его закончить. Огромное спасибо!Использование MIPS для поиска суммы массива
ответ
Поскольку вам задан адрес начала массива, вы знаете, что это также ваш первый элемент. Поскольку это массив int, я предполагаю, что это означает, что он будет использовать пространство для хранения размером слова на mips32, которое составляет 4 байта. Поэтому a [1] находится по адресу [0] + 4 байта. A [2] находится по адресу [0] + 8bytes или [1] + 4bytes и т. Д.
Из этого следует, что все, что вам нужно сделать, это просто цикл 10 раз, загружая слово каждый раз и добавляя значение.
Основной поток:
- Пусть граф = 0, сумма = 0 (сумма ваше возвращаемое значение, так что $ v0)
- нагрузки значение слова от $ a0 в регистр
- Установите $ a0 = $ a0 + 4 (перейдите из [count] в [count + 1], целое число - 4 байта на mips32)
- Set sum = sum + регистр вы загрузили значение слова в
- count = count + 1
- если count < 10? (Менее чем в филиале) перейти к # 2
- прыжка и связь (при условии, наша сумма уже в $ v0)
Примечания: Базовый адрес вы получаете должен быть выровнено по границе слова.
Замечание по оптимизации. Вы можете оптимизировать количество инструкций, выполняемых установкой некоторого регистра на $ a0 + 40 до шага 1. Это означает, что вы можете избавиться от шага 5, а шаг 6 будет проверяться, если $ a0 меньше, чем который регистрируется перед шагом 1. (Последняя оптимизация перемещает шаг 4 в слот задержки шага 6. Если вы используете симулятор, возможно, это не поддерживается)
- 1. Использование метода суммы для получения суммы массива
- 2. Использование подзапроса для поиска суммы для физических лиц для отчетности
- 3. Оптимизация для массива сумм MIPS
- 4. Использование вложенных для петель и массива в MIPS
- 5. Использование суммы символа ASCII для двоичного поиска строки?
- 6. Использование NSPredicate для поиска массива с массивом
- 7. Использование цикла for для поиска массива
- 8. Использование ассоциативного массива для поиска списка ошибок?
- 9. Использование массива для поиска активного листа
- 10. Использование recursion для поиска наименьшего int массива?
- 11. Использование цикла for для поиска массива.
- 12. Использование поиска в списках для поиска 2d-массива (python)
- 13. MIPS - получение значений массива
- 14. длина массива в mips
- 15. MIPS - реализация двоичного дерева поиска
- 16. Использование функции для поиска среднего значения массива C++
- 17. MIPS Fibonacci Использование Recursion
- 18. Использование массивов в MIPs
- 19. MIPS: Использование стека
- 20. Программа для поиска суммы до ..... nth number
- 21. Справка MIPS: добавление массивов и печать их суммы
- 22. Использование Stack для переменных распределения mips
- 23. MIPS: Пользователь вводит размер массива
- 24. Инициализация индекса массива в MIPS?
- 25. Поиск суммы искаженного массива
- 26. Поиск суммы вложенного массива
- 27. Mips x32 с использованием массива
- 28. значения суммы массива javascript?
- 29. Поиск суммы массива Java
- 30. MIPS Инициализация массива в цикле