FreeBSD Documentation - Hosted by Maarga Systems - the Notes Application Development

Chapter 16 x86 Assembly Language Programming

Table of Contents
16.1 Synopsis
16.2 The Tools
16.3 System Calls
16.4 Return Values
16.5 Creating Portable Code
16.6 Our First Program
16.7 Writing UNIX® Filters
16.8 Buffered Input and Output
16.9 Command Line Arguments
16.10 UNIX® Environment
16.11 Working with Files
16.12 One-Pointed Mind
16.13 Using the FPU
16.14 Caveats
16.15 Acknowledgements

This chapter was written by G. Adam Stanislav .

16.1 Synopsis

Assembly language programming under UNIX® is highly undocumented. It is generally assumed that no one would ever want to use it because various UNIX systems run on different microprocessors, so everything should be written in C for portability.

In reality, C portability is quite a myth. Even C programs need to be modified when ported from one UNIX to another, regardless of what processor each runs on. Typically, such a program is full of conditional statements depending on the system it is compiled for.

Even if we believe that all of UNIX software should be written in C, or some other high-level language, we still need assembly language programmers: Who else would write the section of C library that accesses the kernel?

In this chapter I will attempt to show you how you can use assembly language writing UNIX programs, specifically under FreeBSD.

This chapter does not explain the basics of assembly language. There are enough resources about that (for a complete online course in assembly language, see Randall Hyde's Art of Assembly Language; or if you prefer a printed book, take a look at Jeff Duntemann's Assembly Language Step-by-Step). However, once the chapter is finished, any assembly language programmer will be able to write programs for FreeBSD quickly and efficiently.

Copyright © 2000-2001 G. Adam Stanislav. All rights reserved.

This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

For questions about FreeBSD, read the documentation before contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.

FreeBSD Documentation - Hosted by Maarga Systems - the Lotus Notes Domino Custom Bespoke Application Programming