Gère le tableau des meilleurs scores d'un joueur.
Ta tâche consiste à construire le composant de gestion des meilleurs scores du classique Frogger, l'un des jeux les plus vendus et les plus addictifs de tous les temps, et un classique de l'ère des salles d'arcade. Ta tâche consiste à écrire des méthodes qui renvoient le meilleur score du tableau, le dernier score ajouté et les trois meilleurs scores.
Les fonctions de cet exercice prennent un tableau contenant un ou plusieurs nombres, chacun représentant un « score de partie ».
En assembleur x86-64, on accède aux éléments d'un tableau par un décalage en octets depuis un pointeur de base.
Ce pointeur de base est passé dans un registre, conformément à la convention d'appel System V AMD64 ABI.
Les 3 premiers arguments sont passés dans rdi, rsi et rdx, dans cet ordre.
Comme les scores de partie du joueur sont représentés par des entiers 32 bits, qui occupent 4 octets, on peut les lire ainsi :
rsi |
|---|
dword [rsi] |
dword [rsi + 4] |
| ... |
dword [rsi + 4*scores_count - 4] |
personal_top_three() doit écrire les meilleurs scores du joueur dans un tampon, lui aussi passé dans un registre et auquel on accède de la même manière.
rdi |
|---|
dword [rdi] |
dword [rdi + 4] |
| ... |
Par convention, les valeurs entières sont renvoyées dans le registre rax.
Inscris-toi sur Exercism pour apprendre et maîtriser x86-64 Assembly avec 22 concepts130 exercices, et un vrai mentorat humain, le tout gratuitement.