Kezeld egy játékos csúcspontszám-listáját.
A feladatod, hogy elkészítsd a klasszikus Frogger játék csúcspontszám-komponensét. A Frogger minden idők egyik legkelendőbb és legaddiktívabb játéka, az árkádkorszak klasszikusa. A feladatod, hogy olyan metódusokat írj, amelyek visszaadják a lista legmagasabb pontszámát, a legutóbb hozzáadott pontszámot és a három legmagasabb pontszámot.
A feladat függvényei egy olyan tömböt fogadnak el, amely egy vagy több számot tartalmaz, és mindegyik egy-egy „játékpontszámot” jelöl.
Az x86-64 assemblyben a tömb elemeihez egy bázismutatótól számított bájtos eltolásként férünk hozzá.
Ezt a bázismutatót egy regiszterben adjuk át, a System V AMD64 ABI hívási konvenció szerint.
Az első 3 argumentum átadása rdi, rsi, rdx regiszterekben történik, ebben a sorrendben.
Mivel a játékos pontszámai 32 bites egészekként vannak ábrázolva, amelyek 4 bájtot foglalnak el, ezért a következő helyekről olvashatók be:
rsi |
|---|
dword [rsi] |
dword [rsi + 4] |
| ... |
dword [rsi + 4*scores_count - 4] |
A personal_top_three() a játékos legjobb pontszámait egy pufferbe írja, amelyet szintén egy regiszterben adunk át, és ugyanúgy érünk el.
rdi |
|---|
dword [rdi] |
dword [rdi + 4] |
| ... |
Az egész értékeket a konvenció szerint a rax regiszterben adjuk vissza.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) x86-64 Assembly nyelvet 22 fogalom130 feladat segítségével, valódi emberi mentorálással, mindez ingyen.