Name: [1836] Neil Dickson
Member: 108 months
Authored: 10 videos
Description: Hi, I'm a performance optimization enthusiast with an interest for many sorts of tough challenges. I've started Code Cortex, a group working to make software performance easier to improve. My sites are: ...

Assembly Language Tutorial [ID:320]

a series of video-tutorials by Neil Dickson

This tutorial teaches x86 assembly language from the ground up using the context of writing code for basic graphics operations.

After a brief introduction, it starts off with filling an image with colour, moving to more advanced operations like rotating images. Most videos begin with an explanation of concepts or details about assembly, and then show how to apply that information to implement the given algorithms.

Programming shown is done with Inventor IDE, available from The tutorial assumes that you have a decent grasp of C.

Video Tutorials

1. Assembly Language Tutorial: Episode 0: Some Background

This video introduces the tutorial and some basic concepts about the CPU and RAM before actually looking at any assembly language. It also explains what assembly language is and when one might want to use it. It doesn't actually require much prior knowledge, but I would recommend that you have a decent grasp of C before delving into assembly. No special software is needed for this video.

2. Assembly Language Tutorial: Episode 1: Jumping in Head First

This video covers the very basics of assembly language, just enough to write a simple loop that fills an image with colour. It is quite lengthy because a lot of information is needed to get started and understand what's going on. The basic data types and the parts of a line of code are shown. Then the instructions mov, add, and briefly cmp and jne are explained. Addressing is covered, and then [...]

3. Assembly Language Tutorial: Episode 2: Images, Flags, and Functions

This video explains how image buffers are structured, how the condition flags are used, and then we draw a rectangle into our image. To show some of the thought process, the implementation part of the video doesn't skip right to the final version, but rather shows some progression from a single hardcoded function to multiple functions. It's quite long in order to do this, but hopefully it's wort [...]

4. Assembly Language Tutorial: Episode 3: The Stack and Looking Back

This video explains how parameters can be passed to functions using the stack or registers, and gives a more detailed look at the available general registers. After this, we try out the stack, implementing recursive flood fill. Note that although local variables aren't shown in the flood fill implementation, these can be allocated by subtracting from esp (making space on the stack) after mov ebp [...]

5. Assembly Language Tutorial: Episode 3.5: More on the Stack

This video explains a variation of the C calling convention as an example of a different way of managing parameters on the stack. In this way, we can have ebp free for other uses, put parameters on the stack using mov instead of push, and postpone clearing parameters from the stack to save time. Inventor IDE Alpha 5 is introduced, which should make the rest of the tutorial go much more smoothly, [...]

6. Assembly Language Tutorial: Episode 4: A Simple Structure

This video explains a simple structure, namely a colour, and shows a simple way to implement a Gaussian blur to clean up noise in the image using the structure's definition. It uses the new Inventor IDE Alpha 5b, which no longer requires MASM to assemble, and should be much easier to use.

7. Assembly Language Tutorial: Episode 5: Identifying Cases

This video looks more closely at an example of doing different things under different conditions. Specifically, we identify pixels that look orange and pixels that look red in our map photo to make the orange path and the red You Are Here sign stand out clearly.

Showmedo is a peer-produced video-tutorials and screencasts site for free and open-source software (FOSS)- with the exception of some club videos, the large majority are free to watch and download.

how to help » about » faq »

Educating the Open-source Community With Showmedo

Although as important as the software it supports, education and documentation are relatively neglected in the Open-source world. Coders love to code, and explaining how best to use or improve the software tends to be deferred or even sidelined.

At Showmedo we believe the community can play a vital role here and also say thanks for the tools and software that make our lives easier. If you have a piece of software you love or a programming langugage you are enthusiastic about, why not make a screencast showing others how to use it? All the stuff you wish you'd been told, the tips, tricks, insights that would have saved you time and frustration.

Screencasting is easier than you think, and we're happy to help you. You can emailus for advice or just use some of the how-to screencasts on the site. This screencasting learning-pathis a good place to start.

Kudos and Thanks for Neil

Assembly Language Tutorial: Episode 0: Some Background

70 months ago


Showmedo's development is fairly rapid and bugs will inevitably creep in. If you have any problems please drop us a line using the contact address below. Likewise, any suggestions for improvements to the site are gratefully received.