Треки
/
x86-64 Assembly
x86-64 Assembly
/
Вправи
/
Рекордні результати
Рекордні результати

Рекордні результати

Легка

Вказівки

Керуйте масивом рекордів гравця.

Ваше завдання - створити компонент для підрахунку рекордів класичної гри Frogger, однієї з найбільш продаваних і найбільш затягуючих ігор усіх часів та класики ери аркадних автоматів. Ваше завдання - написати методи, які повертають найвищий рекорд із масиву, останній доданий рекорд і три найвищі рекорди.

Особливості x86-64 assembly

Функції в цій вправі приймають масив, який містить одне або кілька чисел, кожне з яких представляє один «ігровий рахунок».

В x86-64 assembly елементи масиву доступні як зсув у байтах від базового вказівника.

Цей базовий вказівник передається в регістрі згідно з угодою про виклики System V AMD64 ABI.

Перші 3 аргументи передаються в rdi, rsi, rdx у цьому порядку.

Оскільки ігрові рахунки гравця представлені 32-бітними цілими числами, які займають 4 байти, їх можна прочитати з

rsi
dword [rsi]
dword [rsi + 4]
...
dword [rsi + 4*scores_count - 4]

personal_top_three() має записати найкращі рахунки гравця в буфер, який також передається в регістрі, а доступ до нього відбувається в той самий спосіб.

rdi
dword [rdi]
dword [rdi + 4]
...

Цілі числа за домовленістю повертаються в регістрі rax.


Джерело

Присвята аркадній грі Frogger з 80-х
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
x86-64 Assembly Exercism

Час розпочати Рекордні результати?

Зареєструйтеся на Exercism, щоб вивчати й опановувати x86-64 Assembly, а також 22 концепції130 вправ та справжнє наставництво від людей, і все це безкоштовно.