
Discover how assembly reveals what happens inside a processor and why this historic language matters for understanding any programming language, plus a simple absolute-value program example.
Explore assembly programming through video tutorials and exercise-rich articles, guiding you from basics to practical skills. Engage with the questions section to get help and solidify concepts.
Begin programming in assembly and acknowledge its complexity, with plans to cover detailed concepts later.
Adopt a problem-first strategy to solve tasks in assembly by understanding and solving the problem with algorithms, not translating from C or C++, using only constructs convertible to assembly.
Learn why the first assembly program computes the absolute value. Explore inline assembly and inserting code into C++ or C with its strings and printing limits.
Explore how inline assembly embeds assembly within C++ functions to perform an absolute value computation, using registers and operands, with constraints like no functions and no direct return.
this lecture covers first instructions in assembly, with move-based assignment, case-insensitive syntax, and how registers in the processor—eax, ebx, ecx, edx—speed computation through an example a = b + c.
Use inline assembly to implement a power function: load x into a register, multiply by itself, and move the result back to x, illustrating registers and return behavior.
Practice assembly operations by implementing area calculations for rectangle, square, and triangle using registers, moves, adds, multiplies, and memory access, while handling constants and validating results.
Explore assembly constructs that mirror C++, including comments to prevent confusion, jump instructions like jmp, memory addressing with offsets and brackets, and type conversions using byte and dword forms.
Assembly uses byte size, with byte, word, and dword types, zero or sign extension via move as X, and access to low and high bytes of registers.
Explore how assembly instructions define operand types and how move instructions use registers, memory, and numbers in examples like move e x 20.
Learn about conditional and unconditional jumps in assembly; conditional jumps use a label and execute only if a condition is true, while unconditional jumps go to the label.
Explore assembly exercises computing the average of three integers and three short values, implement signum, find the minimum of unsigned numbers, and check all positives with a register-based cycle.
Learn the basics of structured programming, its clarity and error reduction in languages like C++ and C Sharp, and contrast it with assembly’s jumps to apply structured rules.
Explore how processor registers vary in size and use, from the accumulator to 32-bit e-prefixed registers, including ip as the instruction pointer and the flags register.
Explore addressing modes in assembly language, including direct and indirect addressing, using registers and square brackets, and apply indexing and scale for array access.
Explore memory access in assembly by building and indexing int and short arrays, using pointers, and performing power-of-two calculations and divisions to store and retrieve data efficiently.
Explore how the stack manages memory, using push to store 4-byte values and pop to retrieve them. See how the stack pointer and square-bracket addressing access top and subsequent values.
Explore how processor hardware and machine code shape assembly language through 32-bit flag registers. Learn how arithmetic and control flags influence conditional jumps by reading and setting flags during execution.
Explore conditional jumps in assembly by examining jump instructions, how conditions in instruction names determine branches, and the distinction between unsigned and side conditional jumps in low-level programming.
Explore instructions that affect flags, including compare and test on two operands, learn how adc and other add or subtract operations influence the carry flag, and examine bit test bt.
Explore optimization techniques to speed up assembly code by avoiding conditional jumps, using binary operations like sar, shifting to set the carry flag, and rotating through carry to preserve values.
Explore how branching works in assembly by translating high-level if and else into conditional jumps, using cmp instructions to decide the jump targets and execute the correct code path.
Explore cycles in assembly programming, including loop instructions and iterations controlled by a counter A. Implement do-while and while cycles with labels and conditional/unconditional jumps.
Explore how recursion uses the program stack, a last-in, first-out data structure, with push, pop, and the call instruction to manage function calls and the instruction pointer.
Explore recursion in assembly by computing the sum from 1 to n with a recursive call. Push the argument, check base case n ≤ 1, return the sum in eax.
Master function calls in assembly, covering stack manipulation and argument passing. Learn string duplication with malloc, compute Fibonacci and factorial, and print results using a format string.
Create a pure assembly hello world using an online compiler, detailing constants, data and text sections, and the entering point that starts execution via system calls.
Assembly is a historic programming language, but when you write a program in Java, C# or any other programming language it is translated into Assembly and then Assembly code runs on the processor. So even though Assembly Language is not commonly used programming language. It is still important to know How Assembly works and How you car write programs in Assembly.
In this course, you will learn How Assembly works ( if you learn how assembly works, you understand how the microcontroller works ) and that is useful even if you program in Java or C#. We start off with Inline Assembly, and that is Assembly code wrote inside C/C++. I choose to do so because I want to start simple and then move on to real Assembly.
I Explain Important Concepts such as Registers, Stack, Memory Access, Jumps, Conditional Jumps. And inside this course are plenty of exercises on which you can practice and improve your skills. And if you get stuck or if you don't understand something You can always reach out to me and ask, mostly I respond the same day.