Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Assembly Language Programming
Rating: 4.4 out of 5(32 ratings)
905 students

Assembly Language Programming

Code The Machine
Created byRoss McGowan
Last updated 8/2025
English
English [Auto],

What you'll learn

  • Assembly Language Programming
  • Mathematics Library (Vectors , Matrices , Complex Numbers)
  • Graphics Library (Points , Lines , Circles)
  • String Library (Copy , Concatenate , Length)
  • Fourier Series (Square Wave)
  • Basic Arithmetic

Course content

1 section31 lectures5h 38m total length
  • Setup and Files12:19

    Set up the assembly environment by installing Visual Studio Code, downloading code-the-machine files, and configuring paths and tasks for Windows or Mac; then load the assembled code in Logisim.

  • Add 2 Numbers9:03

    Learn to add two numbers in assembly by loading literals into registers R0 and R1, performing add, and ending the program at 8000 hexadecimal, with assembly and machine code steps.

  • Basic Arithmetic8:42

    Learn basic arithmetic in assembly by coding add, subtract, multiply, and divide routines for registers r0 and r1, using a memory origin and validating with a logic sim.

  • Loops and Labels15:19

    Explore how to implement loops in assembly language using labels to jump back and increment r0, with cmp and jump if equal to stop.

  • Memory and Stack22:41

    Learn how memory and registers interact in assembly language, using data, load, store, and the stack with push and pop.

  • Instruction Set8:00

    Explore the assembly language instruction set with examples of load, store, jump, push, pop, move, and boolean operations; learn addressing modes, subroutines, and a pixel-based graphics starter for shapes.

  • Directives8:43

    Explore dc and origin directives to define constants, allocate data memory at a start address, define storage with rds, then load values into registers and add them together.

  • Subroutines 113:38

    Develop and test a simple add subroutine using jsr and ret, compare it with gmp jump, and examine stack-based return addresses in a memory model.

  • Subroutines 219:20

    Split the subroutine from the calling function, place the subroutine in rom (bios) and the caller in ram, and demonstrate passing by value or by reference via the stack.

  • Libraries14:38

    Explore how assembly libraries group subroutines into graphics, string, mathematics, and fixed-point libraries stored in ROM, accessed via a calling function and stack-based arguments.

  • Pixel and Plot10:44

    Explore the ROM graphics library, starting with the pixel command to plot pixels and build lines, triangles, and circles, then use the plot subroutine for easy on-screen plotting.

  • Lines and Circles13:26

    Explore how to call graphics subroutines and push coordinates and colors on the stack. Apply Bresenham-based line and circle algorithms to render lines, circles, triangles, and rectangles.

  • Mathematics Library6:05

    Learn the basic mathematics library with integer-only functions: power, modulo, factorial (recursive), and square root, implemented as subroutines that pass values via the stack and return results to memory.

  • Vectors12:42

    Learn to generate and manipulate vectors using arrays, perform addition, subtraction, scalar multiplication, dot and cross products, and store results in dedicated memory arrays.

  • Matrices15:28

    Learn to generate and manipulate matrices in the assembly language, including addition, subtraction, determinants, transpose, and multiplication, with practical on-machine demonstrations.

  • Complex Numbers8:54

    Represent complex numbers as a two-element array (real and imaginary parts) and perform add, subtract, conjugate, and multiply (scalar and complex) via subroutines in a stack-based assembly workflow.

  • String Library8:19

    Explore the string library in assembly language, including string literals in double quotes, the string delimiter, and ascii conversion. Demonstrates length calculation, concatenation, and copy via stack and subroutines.

  • Fixed Point Library14:30

    Explore the fixed point library, using fixed point numbers with F, add, subtract, multiply, divide, and a power function, then derive sine, cosine, tangent, and exponential via Taylor series.

  • Sine Curve13:34

    Explore the sine function by generating and comparing values from 0 to 2 pi radians in 0.1 radian steps, using an 8.8 fixed-point system and analyzing small systematic errors.

  • Integer Calculator8:44

    Explore building an assembly language integer calculator that performs add, subtract, multiply, divide, and modulo for positive and negative integers.

  • Fourier Series Square Wave8:10

    Demonstrate a three-term Fourier series in assembly language to approximate square wave, using 4/pi sin x, 4/(3 pi) sin 3x, 4/(5 pi) sin 5x, evaluated from 0 to 2 pi.

  • Fourier Series Triangular Wave5:45

    Develop a three-term Fourier series approximation of a triangular wave and implement it in assembly language, loading into ROM and RAM for a CPU simulation and result comparison.

  • Linear Regression7:29

    Demonstrate least-squares linear regression on the CPU, using five points to derive the gradient and intercept of y = mx + c and plot the result via Bresenham's algorithm.

  • Numerical Integration Rectangular Rule10:08

    Apply the rectangular rule to numerical integration with dx and n rectangles. Explore center-point heights and an assembly language implementation using floating point calculations for area under a curve.

  • Numerical Integration Trapezoidal Rule11:32

    Explains the trapezoidal rule for numerical integration of y = x^2 from 1 to 3 using four subintervals, showing height averaging, dx, and a result of 8.75 in assembly language.

  • Numerical Differentiation Central Difference9:30

    Explore numerical differentiation using central difference, forward and backward differences, and implement the simple algorithm for f(x)=x^2 at x=1 with h=0.1 to obtain the derivative of 2.

  • Newton Raphson Method13:05

    Apply the Newton-Raphson method to approximate roots of x squared minus two, starting from the initial guess of two, using tangent lines to converge toward 1.414.

  • Newton Raphson Square Root5:51

    Use the Newton-Raphson method to compute the square root of c by iterating I_next = (I + c/I)/2, with an initial guess, mirroring the Babylonian approach in assembly.

  • Coding Challenge 17:57

    Tackle a coding challenge to compute the sum of the first n terms of an arithmetic progression, illustrated by 1 to 100, yielding 5050, with assembly language implementation.

  • Coding Challenge 1 Solution13:58

    This lecture demonstrates summing the first ten terms with fixed-point arithmetic to handle odd n, contrasts integer and fixed-point methods, and presents a stack-based assembly approach showing zero cross 3700.

  • Bonus Lecture0:27

Requirements

  • No Experience Required

Description

Welcome to the exciting world of Assembly Language Programming! If you've ever wondered what happens at the lowest level of computer operation or sought a deeper understanding of the intricate dance between hardware and software, this course is your gateway. Get ready to embark on a journey that demystifies the binary realm and empowers you to write code that speaks directly to the heart of the machine.

Our comprehensive course is designed for both beginners and intermediate programmers eager to delve into the realm of assembly language. Starting with the fundamentals, we guide you through the essential concepts like adding two numbers and basic arithmetic operations, gradually building a solid foundation for your programming prowess.

Delve into the intricacies of the instruction set, uncovering the power and efficiency of direct commands that manipulate data at the most fundamental level.

But that's just the beginning. Brace yourself for a thrilling exploration of graphics programming as we dive into our Graphics Library segment. From drawing lines to crafting intricate circles, and even plotting vectors and matrices, you'll transform simple lines of code into visual masterpieces on the screen.

As you advance through the course, you'll encounter complex challenges involving real-world applications. Manipulate complex numbers with finesse, create dynamic strings with our String Library, and witness the convergence of art and logic in the realm of assembly language programming.

Embark on this thrilling journey with us, and by the end of the course, you'll not only be fluent in the language of assembly but also equipped with the skills to unleash your creativity in the digital realm. Join us and unravel the secrets of assembly language programming, where code meets machine in a symphony of logic and precision.

Who this course is for:

  • Everyone interested in understanding assembly language programming