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

  1. Unit 1 · Week 1

    Introduction to Assembly Language

    1. What assembly language is and why learn it
    2. The assemble-link-execute cycle
    3. Virtual machine levels
  2. Unit 2 · Week 2

    Data Representation

    1. Binary, hexadecimal and integer storage sizes
    2. Signed integers and two's complement in x86
    3. Characters, strings and little-endian storage
  3. Unit 3 · Week 3

    x86 Processor Architecture

    1. CPU, memory and the instruction cycle
    2. x86 registers and flags
    3. Modes of operation and memory models
  4. Unit 4 · Week 4

    Assembly Language Fundamentals

    1. Literals, identifiers, directives and instructions
    2. A first program: adding integers
    3. Defining data and symbolic constants
  5. Unit 5 · Week 5

    Data Transfer and Addressing

    1. MOV, MOVZX and MOVSX
    2. XCHG and direct-offset operands
    3. Operators: OFFSET, PTR, TYPE, LENGTHOF and SIZEOF
    4. Indirect and indexed addressing
  6. Unit 6 · Week 6

    Arithmetic and Flags

    1. INC, DEC, ADD, SUB and NEG
    2. How arithmetic sets the flags
  7. Unit 7 · Week 7

    Jumps and Loops

    1. JMP and the LOOP instruction
    2. Summing and copying arrays with loops
    3. Nested loops
  8. Unit 8 · Week 8

    The Stack and Procedures

    1. The runtime stack, PUSH and POP
    2. Defining procedures: PROC, CALL and RET
    3. Passing values in registers and USES
  9. Unit 9 · Week 9

    Conditional Processing

    1. AND, OR, XOR, NOT and TEST
    2. CMP and conditional jumps
    3. IF statements and compound conditions
  10. Unit 10 · Week 10

    Conditional Loops and Structures

    1. LOOPZ, LOOPNZ and WHILE loops
    2. Table-driven selection and finite-state machines
  11. Unit 11 · Week 11

    Shift and Rotate Instructions

    1. SHL, SHR, SAL and SAR
    2. ROL, ROR, RCL and RCR
    3. Shift applications
  12. Unit 12 · Week 12

    Multiplication and Division

    1. MUL and IMUL
    2. DIV, IDIV and sign extension
    3. Extended addition and subtraction: ADC and SBB
  13. Unit 13 · Week 13

    Advanced Procedures

    1. Stack parameters and stack frames
    2. Local variables, ENTER and LEAVE
    3. Recursion
    4. INVOKE, ADDR, PROC and PROTO
  14. Unit 14 · Week 14

    Strings and Arrays

    1. String primitives with REP
    2. Two-dimensional arrays
    3. Searching and sorting arrays
  15. Unit 15 · Week 15

    Machine Language

    1. Instruction formats and opcodes
    2. Encoding instructions by hand
    3. How an assembler works
  16. Unit 16 · Week 16

    CISC, RISC and MIPS

    1. CISC vs RISC
    2. MIPS registers and instruction formats
    3. Simple MIPS programs

Study every lesson with diagrams, practice and Buddy, your AI tutor.

Start studying free