We are migrating the bug tracker to github Issues. This is now the preferred way to report NASM bugs.
Self-registration is disabled due to spam issue (mail gorcunov@gmail.com or hpa@zytor.com to create an account)
I wanted to note this down here just in case it isn't known yet. Perhaps the developers could add a test case for this to the repo? I discovered this use in the Insight debugger application, at https://hg.pushbx.org/ecm/insight/file/73e1b07abd73/src/insight.asm#l103 to quote: udata_start: absolute udata_start resb WINDOW_BUF_SIZE - SHARED_DATA_SIZE code_mark_buff resw 10 * 4 What they do is to feed the "absolute" directive a label (equivalently, could use the dollar sign '$' here-position-indicator) so that they can then continue with nobits space reservation directives (resb and friends) at the exact address that the progbits section ended at. This is the easiest way I've seen of doing that. The second-easiest, equally-or-more powerful way is to utilise NASM's bin format multi-section support, to make an explicit nobits section that follows the progbits section(s). However, this is more complex for users to understand and prepare. (My own debugger application, lDebug, employs this. However, its sectioning is very complex all in all anyway, featuring 9 different sections in the same assembly source.) The remaining ways would involve labels and equates after the end of the progbits data, which becomes unwieldy very quickly if there's more than two or three variables (so to say). Here's a small test case. The construct appears to work on at least two different NASM versions: $ cat test2.asm org 256 mov ax, buffer retn absolute $ buffer: resb 100 $ nasm -v NASM version 2.16rc0 compiled on Sep 6 2022 $ nasm test2.asm -l /dev/stderr -o /dev/null 1 org 256 2 00000000 B8[0400] mov ax, buffer 3 00000003 C3 retn 4 5 absolute $ 6 00000004 <res 64h> buffer: resb 100 $ oldnasm -v NASM version 2.14.03rc2 compiled on Aug 31 2019 $ oldnasm test2.asm -l /dev/stderr -o /dev/null 1 org 256 2 00000000 B8[0400] mov ax, buffer 3 00000003 C3 retn 4 5 absolute $ 6 00000004 <res 00000064> buffer: resb 100 $ Additionally, here is a use case in the wild that reminded me of how this feature is used in Insight: https://stackoverflow.com/questions/73618421/replace-one-character-with-string-in-assembly-language-8086#comment130109622_73679742
I made use of the ''absolute $'' feature in a different program: https://hg.pushbx.org/ecm/ldosmbr/rev/0bf55528bbac
I also make use of absolute with a progbits label in some of my Extensions for lDebug (ELDs), for example in aformat.asm: https://hg.pushbx.org/ecm/ldebug/file/ab4b2313e537/source/eld/aformat.asm#l487
Used absolute $ in x2b2 as well: https://hg.pushbx.org/ecm/x2b2/rev/6467945b362c