Next Previous Contents

1. INTRODUCTION

1.1 Legal Blurb

Copyright © 1999-2000 Konstantin Boldyshev.

Copyright © 1996-1999 François-René Rideau.

This document may be distributed only subject to the terms and conditions set forth in the LDP License. It may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that this license notice is displayed in the reproduction. Commercial redistribution is permitted and encouraged.

All modified documents, including translations, anthologies, and partial documents, must meet the following requirements:

1.2 Foreword

This document aims answering questions of those who program or want to program 32-bit x86 assembly using free software, particularly under the Linux operating system. It also points to other documents about non-free, non-x86, or non-32-bit assemblers, although this is not its primary goal.

Because the main interest of assembly programming is to build the guts of operating systems, interpreters, compilers, and games, where C compiler fails to provide the needed expressiveness (performance is more and more seldom as issue), we are focusing on development of such kind of software.

1.3 Important Note

This is an interactively evolving document: you are especially invited to ask questions, to answer questions, to correct given answers, to give pointers to new software, to point the current maintainer to bugs or deficiencies in the pages. In one word, contribute!

To contribute, please contact the Assembly-HOWTO maintainer. At the time of this writing, it is Konstantin Boldyshev and no more François-René Rideau. I (Faré) had been looking for some time for a serious hacker to replace me as maintainer of this document, and am pleased to announce Konstantin as my worthy successor.

How to use this document

This document contains answers to some frequently asked questions. At many places, Universal Resource Locators (URL) are given for some software or documentation repository. Please see that the most useful repositories are mirrored, and that by accessing a nearer mirror site, you relieve the whole Internet from unneeded network traffic, while saving your own precious time. Particularly, there are large repositories all over the world, that mirror other popular repositories. You should learn and note what are those places near you (networkwise). Sometimes, the list of mirrors is listed in a file, or in a login message. Please heed the advice. Else, you should ask archie about the software you're looking for...

The most recent official version of this document is available from Linux Assembly and LDP sites. If you are reading a few-months-old copy, please check the urls above for a new version.

Other related documents

1.4 History

Each version includes a few fixes and minor corrections, that need not to be repeatedly mentioned every time.

Version 0.5i 04 May 2000

Added HLA, TALC; rearrangements in RESOURCES, QUICK START, ASSEMBLERS; few new pointers

Version 0.5h 09 Apr 2000

finally managed to state LDP license on document, new resources added, misc fixes

Version 0.5g 26 Mar 2000

new resources on different CPUs

Version 0.5f 02 Mar 2000

new resources, misc corrections

Version 0.5e 10 Feb 2000

url updates, changes in GAS example

Version 0.5d 01 Feb 2000

RESOURCES (former POINTERS) section completely redone, various url updates.

Version 0.5c 05 Dec 1999

New pointers, updates and some rearrangements. Rewrite of sgml source.

Version 0.5b 19 Sep 1999

Discussion about libc or not libc continues. New web pointers and and overall updates.

Version 0.5a 01 Aug 1999

"QUICK START" section rearranged, added GAS example. Several new web pointers.

Version 0.5 25 July 1999

GAS has 16-bit mode. New maintainer (at last): Konstantin Boldyshev. Discussion about libc or not libc. Added section "QUICK START" with examples of using assembly.

Version 0.4q 22 June 1999

process argument passing (argc,argv,environ) in assembly. This is yet another "last release by Faré before new maintainer takes over". Nobody knows who might be the new maintainer.

Version 0.4p 6 June 1999

clean up and updates.

Version 0.4o 1 December 1998

*

Version 0.4m 23 March 1998

corrections about gcc invocation

Version 0.4l 16 November 1997

release for LSL 6th edition.

Version 0.4k 19 October 1997

*

Version 0.4j 7 September 1997

*

Version 0.4i 17 July 1997

info on 16-bit mode access from Linux.

Version 0.4h 19 Jun 1997

still more on "how not to use assembly"; updates on NASM, GAS.

Version 0.4g 30 Mar 1997

*

Version 0.4f 20 Mar 1997

*

Version 0.4e 13 Mar 1997

Release for DrLinux

Version 0.4d 28 Feb 1997

Vapor announce of a new Assembly-HOWTO maintainer.

Version 0.4c 9 Feb 1997

Added section "DO YOU NEED ASSEMBLY?"

Version 0.4b 3 Feb 1997

NASM moved: now is before AS86

Version 0.4a 20 Jan 1997

CREDITS section added

Version 0.4 20 Jan 1997

first release of the HOWTO as such.

Version 0.4pre1 13 Jan 1997

text mini-HOWTO transformed into a full linuxdoc-sgml HOWTO, to see what the SGML tools are like.

Version 0.3l 11 Jan 1997

*

Version 0.3k 19 Dec 1996

What? I had forgotten to point to terse???

Version 0.3j 24 Nov 1996

point to French translated version

Version 0.3i 16 Nov 1996

NASM is getting pretty slick

Version 0.3h 6 Nov 1996

more about cross-compiling -- See on sunsite: devel/msdos/

Version 0.3g 2 Nov 1996

Created the History. Added pointers in cross-compiling section. Added section about I/O programming under Linux (particularly video).

Version 0.3f 17 Oct 1996

*

Version 0.3c 15 Jun 1996

*

Version 0.2 04 May 1996

*

Version 0.1 23 Apr 1996

Francois-Rene "Faré" Rideau <fare@tunes.org> creates and publishes the first mini-HOWTO, because "I'm sick of answering ever the same questions on comp.lang.asm.x86"

1.5 Credits

I would like to thank following persons, by order of appearance:


Next Previous Contents