# programming-ground-up **Repository Path**: mirrr/programming-ground-up ## Basic Information - **Project Name**: programming-ground-up - **Description**: https://github.com/foomur/programming-ground-up.git - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-10 - **Last Updated**: 2023-11-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Programming from the Ground Up Programming exercises from the book "Programming from the Ground Up" by Josh Bartlett. Grab a copy here (it's open source): [Programming from the Ground Up by Josh Bartlett](https://download-mirror.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf) ## Chapter 3 - Your first assembly program * [exit.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%203/exit.s) - a first assembly program showing the functionality of the exit() syscall * [maximum.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%203/maximum.s) - finding the largest number in a data index * [minimum.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%203/minimum.s) - finding the smallest number in a data index ## Chapter 4 - Functions * [power.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%204/power.s) - illustrating how functions work by solving 2^3 + 5^2 * [factorial.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%204/factorial.s) - solving a factorial by creating a function * [square.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%204/square.s) - solving a square x^2 = ? by creating a function ## Chapter 5 - Buffers & File Descriptors * [toupper.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%205/toupper.s) - using buffers and file descriptors to change all lowercase letters of a file to all uppercase letters ## Chapter 6 - Reading and Writing Simple Records: * [linux.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%206/linux.s) - common Linux definitions use .equ including syscalls, file descriptors, status codes, interrupts * [record-def.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%206/record-def.s) - record offsets * [add-year.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%206/add-year.s) - add a year to each record * [count-chars.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%206/count-chars.s) - function to count the number of characters in a record * [read-record.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%206/read-record.s) - function to read a record * [read-records.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%206/read-records.s) - final program to read all the records * [write-newline.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%206/write-newline.s) - function to write a newline to STDOUT * [write-record.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%206/write-record.s) - function to write in a record * [write-records.s](https://github.com/foomur/programming-ground-up/blob/master/chapter%206/write-records.s) - final program to write all the records