From the course: Advanced C Programming: Integrating C and Assembly Language

Course requirements

- [Instructor] I assume you already know a small bit about Assembly language, or you are familiar enough to recognize basic operations. Otherwise, this course doesn't teach Assembly language. Ditto for C. This course assumes that you know how to code in C, though you may not know how to integrate Assembly into your C code and vice versa. Assembly language is specific to a single processor family. For this course, Intel x86-64 Assembly language is used in the Linux environment. Even then with this information, some programs may not run as shown, depending on your computer hardware and software configuration. Assembly language can be persnickety. You can use a Linux computer directly, or you can obtain the Ubuntu bash shell for Windows 10. The goal is to create the Linux command line environment, the bash shell, at which you can compile, assemble, link, and run the exercises. To obtain the Ubuntu bash shell for Windows, visit the Microsoft Store app and search for Ubuntu Linux, which is available free. Follow the onscreen directions to install. Also note that you must activate the Windows Subsystem for Linux to complete the installation. For a C compiler, I prefer LLVM's clang. For assembly, I use nasm, the netwide assembler. These programs are free and can be installed by using your Linux package manager, such as apt in the Ubuntu shell in Windows 10. For some examples, I use the standard command line linker ld, though I also use clang to link. The Exercise Files are available from this course's webpage. Click the link to download and follow along with me as I work through the code. You can use the Exercise Files on your own, or you're free to experiment as you work through the course to help enhance your understanding of C and Assembly. With everything in its place, it's time to get started integrating C with Assembly language.

Contents