CS351 - Computer Organization
This is the website for CS351 - Computer Organization taught by Steve Baker
Click on the links on the left for information about the course.
- Binary 1
Review of number systems and Boolean logic, Binary operators and basic bit operations, Two's compliment, Adding and subtracting in Binary
- Binary 2
Binary multiplication, Conversion of integers <-> ASCII, Endianness.
- The C programming Language:
- C Lesson 1 - Data Literals, Comments, Variables and Expressions
Covers data literals, code comments, variables, assignment, expressions and basic operators, and basic input/output (printf and scanf)
- C Lesson 2 - Comparisons and Conditional statements
Covers comparison operations, basic Boolean operators, compound statements, the if, if-else and nested if statements.
- C Lesson 3 - Looping
for loops and the control statements:
- C Lesson 4 - Functions
Covers the functions: defining and prototyping, parameters and return values and scope: visibility of functions and variables in functions.
- C Lesson 5 - Arrays and Strings
Covers basic arrays and strings.
- C Lesson 6 - 2D Arrays
Covers 2+ dimensional arrays and introduction to pointers.
- C Lesson 7 - Structured data
Covers structured data (
struct) and structure constants.
- C Lesson 8 - File Input/Output
Covers opening and reading from files, using
fgets functions and writing to files using fputc and fputs.
- GDB Howto
GDB Command overview for debugging assembly programs using the TUI interface
- Asm Lesson 1 - The Central Processing Unit (CPU)
Introduction to the CPU, registers, the flag register, assembly instructions and address/values.
- Asm Lesson 2 - Registers, Memory layout, System calls and NASM
Parts of a register, Linux process memory layout, Register usage during system calls and the Netwide Assembler (NASM)
- Asm Lesson 3 - Machine Language / Instructions (part 1)
Comparing data and jumps, C to Assembly translations
- Asm Lesson 4 - Machine Language / Instructions (part 2)
Copying data, Looping, Functions and the stack, Arithmetic operations
- Asm Lesson 5 - The hardware stack
Using the stack for temporary local variables.
- Asm Lesson 6 - The C library, The heap, C pointers in assembly
Using the C library from assembly, The C dynamic memory heap allocation functions and C pointers to assembly guide
- Curses 1 - Intro
Introduction to the curses library (non-required material)
- Curses 1 - Character attributes and colors
Applying character attributes and colors (non-required material)