diff --git a/README.md b/README.md index fbf1d881..5532d4dc 100644 --- a/README.md +++ b/README.md @@ -222,7 +222,7 @@ git repository. - MASM and NASM directives sourced from the [asm-dude](https://github.com/HJLebbink/asm-dude) Visual Studio extension project. Additions sourced from [Microsoft](https://learn.microsoft.com/en-us/cpp/assembler/masm/directives-reference?view=msvc-170) - and [NASM](https://www.nasm.us/xdoc/2.13.03/html/nasmdoc0.html) documentation. + and other [NASM](https://www.nasm.us/xdoc/2.13.03/html/nasmdoc0.html) [documentation](https://www.nasm.us/xdoc/2.16.03/html/nasmdoc7.html). - ARM instruction documentation builds on top of ARM's official [Exploration tools documentation](https://developer.arm.com/Architectures/A-Profile%20Architecture#Downloads) diff --git a/docs_store/directives/nasm.xml b/docs_store/directives/nasm.xml index 7fc8b0f0..febb46b5 100644 --- a/docs_store/directives/nasm.xml +++ b/docs_store/directives/nasm.xml @@ -336,17 +336,25 @@ switch to AT&T syntax + + + + EXTERN is similar to the MASM directive EXTRN and the C keyword extern: it is used to declare a symbol which is not defined anywhere in the module being assembled, but is assumed to be defined in some other module and needs to be referred to by this one. Not every object-file format can support external variables: the bin format cannot. + + + GLOBAL is the other end of EXTERN: if one module declares a symbol as EXTERN and refers to it, then in order to prevent linker errors, some other module must actually define the symbol and declare it as GLOBAL. Some assemblers use the name PUBLIC for this purpose. + + + + + + + - - - - - -