
Learn what assembly language is and how it maps to machine language, write your program, assemble with the assembler and link with the linker, and run on Bochs in Linux.
Learn how assembly language relates to machine code and high-level languages. Write your first x86 assembly program in first.s, then prepare it to run on an emulator.
Install the GNU assembler (gas) on an Ubuntu desktop inside a VirtualBox VM, set up the hypervisor, and run your first assembly program.
Install VirtualBox on macOS by downloading from the official site, running the installer with default settings, and entering your password to complete installation.
Install Ubuntu 18.04 LTS on macOS using VirtualBox by downloading the image, creating and starting a VM named ubuntu18.04, installing, setting login automatically, and enabling Guest Additions for full screen.
Download the Windows version of VirtualBox from the official site, run the installer, accept default settings, complete installation, and open the VirtualBox Manager; next video covers installing Ubuntu.
Install Ubuntu desktop 18.04 LTS on Windows with VirtualBox by downloading from ubuntu.com, creating a new vm, then running the installer and setting up the user login.
Master the Ubuntu terminal and essential Linux commands, and learn to install and verify the GNU assembler (gas) as part of binutils for your first assembly program.
Translate your first assembly program into machine code on Ubuntu, create and inspect first.o object file, and explore binary, hexadecimal, and i8086 architecture through disassembly on an emulator.
Link assembly objects with ld to create an executable, placing the code at 0x7c00 with -Ttext, and review the boot process from POST to loading the 512-byte MBR into RAM.
Install bochs on ubuntu 18.04 from source, resolve X11 dependencies, configure and compile, load a pragmalinux disk image, and run the first program in bochs emulator.
Install and test the Bochs emulator, copy the a.img into the exercise folder, adjust the configuration to first, and run Bochs to display my first assembly program on screen.
Learn to write a first 16-bit assembly program with GAS directives, a global entry, and mov instructions; explore BIOS interrupts and IVT usage.
Translate first.s to first.o with the GNU assembler and link it with the GNU linker, then run it in bochs on Linux and show how to automate with a script.
In this short course, we will firstly introduce what is assembly language and machine language, the correspondence between them. Then we write our very first program in assembly language.
In order to run this program, we need a program called assembler to translate our assembly program to an object file, and then use another program called linker to transfer this object file to the executable file. We are going to do all of these on a Linux Distribution Ubuntu Desktop.
I will show you how to do all of these step by step. From installing the Linux Desktop, the most commonly used Linux commands, to the use of GNU assembler, GNU linker and objdump. And how to make a script file.
We also cover a bunch of concepts: hexadecimal, disassembly, instruction set architecture, booting, Power on Self Test, read only memory, legacy BIOS, master booting block, random access memory, interrupt and ASCII character etc..
We will see how to do the compilation of the source code of the Bochs and the installation, using the classical steps: configure, make, and make install. Eventually we will run our first program on Bochs.
I guarantee you will learn the basic usage of lots of Linux commands and programs, understand better over the low-level computer technical concepts. From there we have the ability to explore more over the computer operating system. See you.