|
0 / 0 / 0
Регистрация: 04.05.2019
Сообщений: 5
|
|
GAS/AT&T Возведение числа в степень04.05.2019, 10:35. Показов 7486. Ответов 6
Метки нет (Все метки)
В этом задании вы должны написать функцию возведения в степень. Функция принимает число в регистре %eax и показатель степени в регистре %edx, и возвращает результат в регистре %eax. Для выполнения этого задания вам потребуются следующие инструкции:
push %register и pop %register - если вы будете использовать регистры кроме %eax и %edx, то воспользуйтесь этой парой инструкций чтобы сохранить значение этих регистров в начале функции, а потом восстановить в конце (помните, что восстанавливать нужно в обратном порядке - так работает стек). - imul %src, %dst - эта инструкция умножает значения в регистрах %src и %dst и сохраняет результат в регистре %dst - test %register, %register - эта инструкция проверяет равно ли нулю значение в регистре %register и устанавливает специальный флаг ZF, если это так - jz branch - эта инструкция передает управление метке branch, если инструкция test установила флаг ZF (используйте ее в паре с test). - dec %register - эта инструкция уменьшает значение в регистре %register на 1 - ret - инструкция завершает функцию, т. е. достает со стека адрес возврата и передает туда управление (чтобы достать со стека правильный адрес возврата, стек должен находится в таком же состояние, как и в самом начале функции) Несколько дней мучаюсь, выдает все время одну ошибку - превышен лимит времени. В чем проблема и как исправить ума не приложу
0
|
|
| 04.05.2019, 10:35 | |
|
Ответы с готовыми решениями:
6
Возведение числа в степень Возведение заданного целое числа в целую неотрицательную степень, используя минимум операций умножения Возведение в степень |
|
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
|
|
| 04.05.2019, 15:40 | |
|
0
|
|
|
Модератор
|
||||||
| 04.05.2019, 17:10 | ||||||
|
Lika_Chan, я плохо понимаю синтаксис AT&T, а что в строке 3 происходит?
Добавлено через 3 минуты И само вычисление степени не правильное - вы на каждой итерации модифицируете eax и уже на второй итерации получаете не 2, а 4 степень числа. И было бы неплохо проверять в начале edx на равенство 0. Т.е. посмотрите на алгоритмы вычисления степени, о которых упомянул murderer.
0
|
||||||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||||||
| 10.05.2019, 19:29 | ||||||
|
Lika_Chan, вас не смущает, что вы умножаете число само на себя, а потом результат сам на себя (а не на исходное число)?
Типа такого: 2*2=4 ; 4*4 = 16 ; 16*16 = 256 ; 256*256 = 65536 ; 24 = 65536 ? Разбирайтесь и переводите в AT&T (там есть версия для Linux, для 32 битов надо заменить rax на eax и т.п.):
0
|
||||||
| 10.05.2019, 20:26 | |
|
Не по теме: Jin X, а что за автотестер у топикстартера?
0
|
|
| 10.05.2019, 23:09 | ||
|
Не по теме: ФедосеевПавел, не знаю. Вероятно, какой-то тренажёр типа codewars.com. mov byte [eax+edx*4-16],0 записываются как movb $0, -16(%eax,%edx,4). Изврат, короче (хотя movb удобнее, чем mov byte)...
0
|
||
| 11.05.2019, 01:52 | |
|
Не по теме: Jin X, спасибо.
0
|
|
| 11.05.2019, 01:52 | |
|
Помогаю со студенческими работами здесь
7
Сопроцессор, возведение в степень
Возведение в степень FPU Возведение в степень с минимальным количеством операций умножения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|