Kurzusok
/
x86-64 Assembly
x86-64 Assembly
/
Feladatok
/
Legjobb pontszámok
Legjobb pontszámok

Legjobb pontszámok

Könnyű

Utasítások

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.

x86-64 assembly-specifikus megjegyzések

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.


Forrás

Tiszteletadás a nyolcvanas évek Frogger játéktermi játéka előtt
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
x86-64 Assembly Exercism

Készen állsz elkezdeni a(z) Legjobb pontszámok feladatot?

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.