GNU Info

Info Node: (nasm.info)Section 10.1.3

(nasm.info)Section 10.1.3


Next: Section 10.1.4 Prev: Section 10.1.2 Up: Section 10.1
Enter node , (file) or (file)node

10.1.3. `ORG' Doesn't Work
--------------------------

   People writing boot sector programs in the `bin' format often
complain that `ORG' doesn't work the way they'd like: in order to place
the `0xAA55' signature word at the end of a 512-byte boot sector, people
who are used to MASM tend to code

             ORG 0
     
             ; some boot sector code
     
             ORG 510
             DW 0xAA55

   This is not the intended use of the `ORG' directive in NASM, and will
not work. The correct way to solve this problem in NASM is to use the
`TIMES' directive, like this:

             ORG 0
     
             ; some boot sector code
     
             TIMES 510-($-$$) DB 0
             DW 0xAA55

   The `TIMES' directive will insert exactly enough zero bytes into the
output to move the assembly point up to 510. This method also has the
advantage that if you accidentally fill your boot sector too full, NASM
will catch the problem at assembly time and report it, so you won't end
up with a boot sector that you have to disassemble to find out what's
wrong with it.


automatically generated by info2www version 1.2.2.9