16 units · 48 lessons
Computer Organization & Assembly Language
Computer Organization & Assembly Language from the first idea to exam level: every lesson builds on the one before, with a worked example, a step-through diagram where it helps, a quick check and practice that adapts to what you know. Follows Irvine, Assembly Language for x86 Processors (with Patterson & Hennessy for MIPS).
Computer Organization & Assembly Language at a glance
What does Computer Organization & Assembly Language cover?
Computer Organization Basics, x86 Architecture, Data & Directives, Data Transfer & Addressing, Arithmetic & Flags, Jumps & Loops, Stack & Procedures, Conditional Processing, Shifts, Multiply & Divide, Advanced Procedures, Strings & Arrays and Machine Code & RISC. It follows Irvine, Assembly Language for x86 Processors (with Patterson & Hennessy for MIPS).
How many lessons does the Computer Organization & Assembly Language course on Studious have?
16 units and 48 lessons, from "What assembly language is and why learn it" to "Simple MIPS programs". Each lesson has a worked example, a quick check and practice that adapts to what you know, and many have step-by-step diagrams.
Course outline
- Unit 1 · Week 1
Introduction to Assembly Language
- What assembly language is and why learn it
- The assemble-link-execute cycle
- Virtual machine levels
- Unit 2 · Week 2
Data Representation
- Binary, hexadecimal and integer storage sizes
- Signed integers and two's complement in x86
- Characters, strings and little-endian storage
- Unit 3 · Week 3
x86 Processor Architecture
- CPU, memory and the instruction cycle
- x86 registers and flags
- Modes of operation and memory models
- Unit 4 · Week 4
Assembly Language Fundamentals
- Literals, identifiers, directives and instructions
- A first program: adding integers
- Defining data and symbolic constants
- Unit 5 · Week 5
Data Transfer and Addressing
- MOV, MOVZX and MOVSX
- XCHG and direct-offset operands
- Operators: OFFSET, PTR, TYPE, LENGTHOF and SIZEOF
- Indirect and indexed addressing
- Unit 6 · Week 6
Arithmetic and Flags
- INC, DEC, ADD, SUB and NEG
- How arithmetic sets the flags
- Unit 7 · Week 7
Jumps and Loops
- JMP and the LOOP instruction
- Summing and copying arrays with loops
- Nested loops
- Unit 8 · Week 8
The Stack and Procedures
- The runtime stack, PUSH and POP
- Defining procedures: PROC, CALL and RET
- Passing values in registers and USES
- Unit 9 · Week 9
Conditional Processing
- AND, OR, XOR, NOT and TEST
- CMP and conditional jumps
- IF statements and compound conditions
- Unit 10 · Week 10
Conditional Loops and Structures
- LOOPZ, LOOPNZ and WHILE loops
- Table-driven selection and finite-state machines
- Unit 11 · Week 11
Shift and Rotate Instructions
- SHL, SHR, SAL and SAR
- ROL, ROR, RCL and RCR
- Shift applications
- Unit 12 · Week 12
Multiplication and Division
- MUL and IMUL
- DIV, IDIV and sign extension
- Extended addition and subtraction: ADC and SBB
- Unit 13 · Week 13
Advanced Procedures
- Stack parameters and stack frames
- Local variables, ENTER and LEAVE
- Recursion
- INVOKE, ADDR, PROC and PROTO
- Unit 14 · Week 14
Strings and Arrays
- String primitives with REP
- Two-dimensional arrays
- Searching and sorting arrays
- Unit 15 · Week 15
Machine Language
- Instruction formats and opcodes
- Encoding instructions by hand
- How an assembler works
- Unit 16 · Week 16
CISC, RISC and MIPS
- CISC vs RISC
- MIPS registers and instruction formats
- Simple MIPS programs
Study every lesson with diagrams, practice and Buddy, your AI tutor.
Start studying free