Copyright (C) 2000-2012 |
GNU Info (nasm.info)Chapter 8Chapter 8: Writing 32-bit Code (Unix, Win32, DJGPP) *************************************************** This chapter attempts to cover some of the common issues involved when writing 32-bit code, to run under Win32 or Unix, or to be linked with C code generated by a Unix-style C compiler such as DJGPP. It covers how to write assembly code to interface with 32-bit C routines, and how to write position-independent code for shared libraries. Almost all 32-bit code, and in particular all code running under `Win32', `DJGPP' or any of the PC Unix variants, runs in _flat_ memory model. This means that the segment registers and paging have already been set up to give you the same 32-bit 4Gb address space no matter what segment you work relative to, and that you should ignore all segment registers completely. When writing flat-model application code, you never need to use a segment override or modify any segment register, and the code-section addresses you pass to `CALL' and `JMP' live in the same address space as the data-section addresses you access your variables by and the stack-section addresses you access local variables and procedure parameters by. Every address is 32 bits long and contains only an offset part.
automatically generated by info2www version 1.2.2.9 |