Translate the tasks, reading material and guides of this lab to the x86_64 architecture:
- Use the extended 64-bit ISA in the reading material and guides together with the newly added registers
r8 - r15. Keep in mind that esp and ebp aren't accessible in 64-bit mode, only rsp and rbp. push-ing and pop-ing less than 8 bytes is unsupported, either. Do point this out.
- For tasks, replace
printf32.asm with print64.asm [3] and the compilation toolchain with those in this makefile [4]. Use the code in this repo as a guide. Convert each task to 64 bits including its README.md which most likely refers 32-bit addresses and esp and ebp.
- Verify that the checker infrastructure still works and fix it if it doesn't.
Make your PR target the upstream x86_64 branch.
Read the contributor guidelines before making contributions [5].
Add Fixes #81 at the end of your commit message to automatically link your PR with this issue.
[1] https://github.com/cs-pub-ro/hardware-software-interface/tree/main/labs/lab-02/tasks/iterate
[2] https://github.com/cs-pub-ro/hardware-software-interface/blob/main/labs/lab-02/reading/memory-operations.md#pointer-operations-and-pointer-arithmetic
[3] https://github.com/iocla/hello64/blob/main/utils/printf64.asm
[4] https://github.com/iocla/hello64/blob/main/Makefile
[5] https://github.com/cs-pub-ro/hardware-software-interface/blob/main/CONTRIBUTING.md