Building a Binary Search Tree – Insertion Tutorial

Building a Binary Search Tree – Insertion Tutorial

In this tutorial we build a binary search tree together by inserting the numbers 73, 98, 12, 45, 67, 10, 43, 11, 99, and 32 one by one. Starting from an empty tree, each number is placed according to binary search tree rules: smaller values go left, larger values go right. We let the nodes fall where they belong without any rearranging, resulting in a realistic (and slightly lopsided) BST. The video explains tree depth, height, and confirms the final structure maintains all BST properties with a properly sorted in-order traversal.
x86-64 Assembly: Local Variables, Stack Frames & Alignment Explained

x86-64 Assembly: Local Variables, Stack Frames & Alignment Explained

Learn how local variables are allocated on the stack in x86-64 assembly using YASM. See exactly how to reserve space, address variables with offsets, understand downward stack growth, and fix mysterious printf segfaults caused by 16-byte stack misalignment. Includes two alignment solutions and a complete working example with a local integer array.
The Call Stack Explained: Call Frames, Return Addresses, Local Variables

The Call Stack Explained: Call Frames, Return Addresses, Local Variables

The call stack is a special stack data structure that your computer uses to manage function calls. Every time a function is called, a call frame is pushed onto the stack containing the return address, function arguments (beyond what fits in registers), preserved registers, and space for local variables. When the function returns, its call frame is popped and execution jumps back to the return address - this is how your program knows exactly where to continue after a function finishes.
Mixed Function Arguments in x86-64 Assembly – Integers & Floats Explained

Mixed Function Arguments in x86-64 Assembly – Integers & Floats Explained

In the System V x86-64 ABI, integer and floating-point arguments use separate register assignment sequences. Integer arguments go into rdi, rsi, rdx, rcx, r8, r9 (then stack), while floating-point arguments use xmm0 through xmm7 independently. This means the first integer you see — even if it appears after several doubles — always goes into rdi, and the second float always goes into xmm1 regardless of how many integers came before it.
x86-64 Assembly Pointers & Dereferencing Explained – Hybrid C++/YASM Example

x86-64 Assembly Pointers & Dereferencing Explained – Hybrid C++/YASM Example

This video explains pointers and dereferencing in x86-64 YASM assembly and demonstrates passing pointers between assembly and C++ in a hybrid program. We show how to read a C string from assembly, modify a long via pointer dereference so the change is visible in C++, and send assembly-owned data (string, long, double) back to C++ using pointers.