Lab 5: Exploring Assembly Language on x86_64 and AArch64 Architectures
Introduction In this blog post, I’ll share my experience working with assembly language on both x86_64 and AArch64 architectures as part of the SPO600 lab. This lab was an eye-opening journey into the low-level world of programming, where I got to write, debug, and optimize assembly code. I’ll walk you through the steps I took, the challenges I faced, and my thoughts on working with different assembly languages. 1. Getting Started with the Lab The lab began with unpacking the provided archive containing example programs in both C and assembly language. The directory structure was well-organized, with separate folders for x86_64 and AArch64 assembly code, as well as portable C versions for comparison. Using the tar command, I extracted the archive and explored the files. The first step was to build and run the C versions of the "Hello World" program on both architectures. This helped me understand the differences in the generated binaries and the underlying system calls. Using...