A collection of assignments written in ARMv8 Assembly Language.
For a more detailed instruction, please review the PDF document found inside the assignment repository.
- Create an ARMv8 A64 Assembly language program that computes the maximum of y = -5x3 - 31x2 +4x + 31 in the range -6 ≤ x ≤ 5.
- Create an ARMv8 Assembly Language program that implements Integer Multiplication using Add and Shift Operations.
- Create an ARMv8 Assembly Language program that implements an algorithm to sort a One-Dimensional Array.
- Create an ARMv8 Assembly Language program that implements the use of structures and subroutines.
- Create an ARMv8 Assembly Language program that implements a FIFO Queue Data Structure.
- Create an ARMv8 Assembly Language program that implements the use of External Pointer Arrays and Command-Line Arguments.
- Create an ARMv8 Assembly Language program that implements the use of File I/O and Floating-Point Numbers by creating a program that computes the cube root of a positive real number using Newton's method.
Assignment | ARMv8 (with Macros) : | ARMv8 (without Macros) |
---|---|---|
1 | Solution | Solution |
2 | Solution | DNE |
3 | Solution | DNE |
4 | Solution | DNE |
5A | Solution | DNE |
5B | Solution | DNE |
6 | Solution | DNE |
- Work with arithmetic, loops, and if-else constructs
- Optimization techniques
- Use gdb to debug assembly language programs
- Use of bitwise logical and shift operations
- Use of the stack to store local variables
- Addressing stack variables
- Use of m4 macros or assembler equates for stack variable offsets
- Storing and addressing one-dimensional/two-dimensional arrays on the stack
- Implementation of structs and nested structs
- Implementation of subroutines
- Use of pointers
- Use of external variables
- Separate compilation
- Mixing C with Assembly Language
- External Arrays of Pointers
- Command line arguments
- Use of System I/O
- Use of single, floating-point, and double formats