x86 Assembly Language Programming Masters Course
What you'll learn
- How to use Emu8086 to create assembly programs for the 8086 processor
- All about registers in a processor and how they can be useful for storing temporary information
- All about segmentation in Intel processors
- All about interrupts
- Subroutines and return addresses
- The stack
- Talking with a C program using assembly
- Talking with an assembly program using C
- Understanding disassembly
- Understanding how GCC compiler can create machine code that can call our assembly functions
- How to use NASM Assembler
- Basic C knowledge is recommended if not C then at least some experience in another programming language
- A drive to solve problems. Assembly is nothing like any other language, I will teach you what I know but you have to be willing to pay attention and try again if you mess up
This course is intended to teach you x86 assembly programming. This course teaches you how processors work and how machine code is possible. We start the course using an emulator for the legacy Intel 8086 processor where we learn all about registers and the memory segmentation model.
Since we start the course with an emulator it allows me to pause the machine at any moment in time and show you exactly what is going on.
After you learn all about the legacy 8086 processor and how to program assembly for it we then move to the modern processors of today and start writing assembly for those. You are taught how to write 32 bit programs for Windows machine's and most importantly how to communicate with C programs using assembly language. You are shown how to access variables, structures and arrays through just assembly code. We also call C functions and they call our assembly routines.
This course recommends that you have some prior experience in the C programming language or at the very least some programming experience in another language. The reason for this is because part two of the course when I teach modern assembly I reference the C programming language quite a lot since we write assembly that can talk with C.
Royalty Free Music from Bensound
Who this course is for:
- Beginner Assembly Programmers
- People interested in how the processor works
- People wishing to pursue a career in embedded development
Daniel McCarthy is a seasoned software engineer, boasting an impressive career spanning over 14 years in the industry. Holding a Master's Degree in Advanced Computer Science from Cardiff Metropolitan University, his broad spectrum of experience encompasses everything from web development to complex compiler and kernel design.
Daniel has honed his skills in bootloader and kernel development. In testament to his proficiency in the field, he has designed two proprietary programming languages: Craft, a general-purpose language, and Marble, a web-focused language akin to PHP. Moreover, he has successfully developed compilers for the C programming language.
His professional portfolio also includes the development of Linux kernel modules, a task he has executed with proficiency in a professional context. Currently, Daniel is channeling his wealth of experience and expertise into the education sector, with the aim of nurturing the next generation of professional software engineers.