Here is the TOC template, few changes are possible as work goes on (new chapters, rearrangement), but in general it is complete. It is fairly possible that book will have some chapter on assembly programming under *BSD and BeOS as well. Source code examples will use NASM Intel syntax and new IA-64 syntax.
Preface
1. Linux OS
(short introduction and characteristics)2. Linux and Assembly
.1 Why using assembly?
.2 Common myths about unix and assembly language
.3 When assembly is needed
.4 When assembly is useless
3. Assemblers
(quick overview).1 nasm
.2 gas
.3 other tools you need (ld, strace, gdb, etc)
4. Assembly programming
.1 Two ways to go (libc or not libc)
.2 Source code layout (sections, etc)
.3 Compiling a program
.4 Debugging
5. System calls
.1 What is a system call
.2 View from the kernel side
.3 View from the userland
.4 Using system calls
6. Assembly fun
(going in depth)[ Linux specific ]
.1 Startup process details
.2 Treating command line
.3 Hey, how to... (Q & A)
[ general 32 bit assembly ]
.4 Writing in a portable way: is it possible?
.5 Tips and tricks
7. IA-64 Architecture and Programming
.1 Introduction to IA-64 Architecture
.2 Introduction to IA-64 Programming
.3 Memory reference
.4 Prediction and Control Flow
.5 Loops
.6 Floating point
.7 Mixing 32 and 64 bit code [explain chapter 6 in a 64 bit way]
8. Fit it in a hand
(building a pure assembly Linux distribution)[ This chapter will include a lot of source code examples, and is intended to be a tour on Linux IA-32 and IA-64 assembly programming ]
.1 Description of distribution parts (kernel, libc, utils)
.2 Tutorial on creating small executables
.3 Rewriting usual utils in assembly
.4 Implementing libc in assembly (rather big chapter)
Appendix A - system call list
Appendix B - ELF structure and memory layout
Appendix C - tutorial on porting DOS code to Linux
References