alt
Advertisement
Sponsored links
Online Training
Career Series
Exforsys
Exforsys arrow Tech Articles arrow UNIX arrow Linux Assembly Tutorial Step-by-Step Guide
Site Search


Linux Assembly Tutorial Step-by-Step Guide

Mainly, the reason for this tutorial is to make assembly programming easier, better and more practical by doing it in Linux instead of DOS. Also, it may teach you a bit of Linux while you're at it (unless you're already at home with it).

This tutorial is an introduction to coding assembly in Linux. There are two "versions" to accommodate various people:

  • The Step-by-Step Guide: This version explains everything in detail. It assumes that you have done at least a little bit of DOS assembly, and that you have Linux on your computer (although you may not have used it much yet). Since not everyone may know how to use Linux, there are links to sections where I explain how to do basic things like use the terminal and the DOS-equivalent commands.
  • The Quickstart: If you're in a hurry and just want to see a Linux assembly program, compile it and run it, this is for you. It assumes that you understand basic DOS assembly, and that you know how to use the terminal. Basically, it just points out the differences between a Linux and DOS assembly program with just enough explanation not to confuse you.

The assembler I'll be using is NASM (Netwide Assembler). Lots of the stuff in this tutorial came from other tuts and the NASM documentation – see the References section for more info.

Download as zipfile

Quickstart

1. Introduction

2. Why this Tutorial?

3. The Netwide Assembler (NASM)

3.1 A Note on Assemblers

3.2 Where do I get NASM?

4. Introduction to Linux Assembly

4.1 Main Differences Between DOS and Linux Assembly

4.2 The Parts of an Assembly Program

4.3 Linux System Calls

4.3.1 Reading the Manpages

4.4 "Hello World!" in Linux Assembly

4.5 Compiling and Linking

5. More Advanced Concepts

5.1 Command Line Arguments and the Stack

5.2 "Procedures" and Jumping

6. Conclusion

Appendix A. The terminal is your friend - how to use it

Appendix B. Installing NASM (and other stuff) on Linux

Appendix C. References

A book that covers both these topics and is a useful assembly reference is:

The Revolutionary Guide to Assembly Language
Vitaly Maljugin, Jacov Izrailevich et al
Wrox Press
ISBN: 1-874416-12-5

Table of Contents

Part I - Introduction to the hardware

Overview of the 80x86 Family · Representation of numbers in binary · Registers · Segments and offsets · The Stack

Part II - An Introduction to Assembly Instructions

Push and Pop: Two Instructions to use the Stack · Types of Operand · Some Instructions that you will need to know · Your first assembly program · Compilation Instructions

Part III - Input and Control Flow

Making things easier · Keyboard Input · Printing a Character · Control Flow · Jump on Condition Instructions · Example Program

Part IV - Procedures and Macros

Some instructions that you need to know · Introduction to Procedures · Procedures that pass parameters · What are "Memory Models"? · Macros · Macros with parameters

Part V - Files

File Functions · How to save the file handle · Using the FindFirst and FindNext Functions

Part VI - Strings, Shifts and Debuggers

String Instructions · How to find out the DOS Version · Multiple Pushes and Pops · The PUSHA/PUSHAD and POPA/POPAD Instructions · Using Shifts for faster Multiplication and Division · Loops · How to use a debugger

Part VII - Writing to the Screen

More output in text modes · Mode 13h · First check that mode 13h is possible · Setting the Video Mode · Some Optimizations


Trackback(0)
Comments (0)add comment

Write comment

busy
 
< Prev   Next >
Exforsys Offers
© 2008 Exforsys.com
Joomla! is Free Software released under the GNU/GPL License.
Page copy protected against web site content infringement by Copyscape