My ARMv7 Assembly code for CPSC 355 2016 Fall @ University of Calgary. Author: Cam Davies
There is a .pdf document in each corresponding folder with instructions. Additionally, these are short descriptions.
- Assignment 1 - Find the minimum value of y=2x^3 - 19x^2 + 9x + 45 with a given range. Demonstrates loops, arithmetic, if-else conditionals, and m4 macros.
- Assignment 2 - Given C code for an integer multiplication program, implement it into ARMv8. Demonstrates bitwise logical and shift operations, branching, condition code tests, hexadecimal, and binary.
- Assignment 3 - Given C code for an algorithm, implement it into ARMv8. Demonstrates use of stacks for local variables, addressing stack variables, assembler equates for stack variable offsets, and using/storing/addressing one-dimensional arrays on the stack.
- Assignment 4 - Given C code with multiple subroutine/structures, implement it into ARMv8. Demonstrates implementation of structs, nested structs, and subroutines; additionally returning structs by value from a function, as well as teh use of pointers as arguments to subroutines.
- Assignment 5 - Given C code implementing a stack data structure with an array, translate it to ARMv8. Demonstrates external variables, separate compilation, colling asm functions from main(), calling library functions from routines, and external arrays of pointers.
- Assignment 6 - Write a program to compute the functions of e^x and e^-x using series expansions. Using double precision floating-point numbers, read input, and product output. Additionally uses input/ouput with a text file.