This page has links to useful resources.
Information
This section has links to some information resources you might find useful.
x86-64 assembly programming resources
Exercises and practice problems
This section links to exercises, practice problems, and similar resources.
- Assembly language exercise, solution
- Assembly language exercise 2 (more challenging)
- Assembly language mini-exercises
Software
This section covers the software you’ll be using in working on programming assignments.
Linux
For the programming assignments, you will need to use a recent x86-64 (64 bit) version of Linux.
Any of the computers that are part of the Ugrad net will work reasonably well, although the compiler versions will not necessarily be the same ones that Gradescope uses. You can use ssh to connect to one of these computers via the network.
If you are planning to use your own computer for development, we highly recommend using some flavor of Ubuntu 18.04. If your computer is running Windows or MacOS, and you would still like to do development on your own machine, one excellent option is to install VirtualBox on your computer, and then download one of the following Virtual Machine images:
Ubuntu MATE 18.04 for CSF.ova (3.6 GB download: username
csf
, passwordcsf
)
Lubuntu 18.04 for CSF.ova (2.6 GB download: username
csf
, passwordcsf
)
The second (Lubuntu) image is configured with a smaller virtual hard disk, and might work better if your disk space is limited.
The above VM images have all of the software you will need to work on assignments in CSF, and they more or less exactly match the environment used by Gradescope autograders.
After you’ve downloaded one of the images above, use File → Import Appliance
within VirtualBox, select the .ova
file, wait for the import to complete,
then you should be able to start and run the VM. Note that VirtualBox will
require that your CPU’s hardware virtualization features are enabled.
If you see a message about CPU virtualization not being enabled, you should
be able to reboot your computer, enter the BIOS configuration, and enable
the CPU virtualization features.
Tools
Some of the tools you’ll want to have are:
- gcc
- g++
- make
- ruby
- valgrind
- git
All of these are available by default on the Ugrad computers.
To install on an Ubuntu-based system:
sudo apt-get install gcc g++ make ruby valgrind git
To install on a Fedora system:
sudo yum install gcc g++ make ruby valgrind git