Skip to content

Collection of assignments written in ARMv8 A64 Assembly Language

Notifications You must be signed in to change notification settings

DanielContreras/Computing-Machinery-I

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computing Machinery I

A collection of assignments written in ARMv8 Assembly Language.

Assignments Overview

For a more detailed instruction, please review the PDF document found inside the assignment repository.

Assignment 1:

  • Create an ARMv8 A64 Assembly language program that computes the maximum of y = -5x3 - 31x2 +4x + 31 in the range -6 ≤ x ≤ 5.

Assignment 2:

  • Create an ARMv8 Assembly Language program that implements Integer Multiplication using Add and Shift Operations.

Assignment 3:

  • Create an ARMv8 Assembly Language program that implements an algorithm to sort a One-Dimensional Array.

Assignment 4:

  • Create an ARMv8 Assembly Language program that implements the use of structures and subroutines.

Assignment 5A:

  • Create an ARMv8 Assembly Language program that implements a FIFO Queue Data Structure.

Assignment 5B:

  • Create an ARMv8 Assembly Language program that implements the use of External Pointer Arrays and Command-Line Arguments.

Assignment 6:

  • 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.

Links to solutions

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

Things learned

  • 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

About

Collection of assignments written in ARMv8 A64 Assembly Language

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published