aboutsummaryrefslogtreecommitdiff
path: root/crates/nasm/README.md
Commit message (Collapse)AuthorAgeFilesLines
* Add a warning for unknown cross-mapping referencesMiquel Sabaté Solà2026-07-081-1/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some segments, like the 'vectors' one, will reference code that is outside of its mapping. But in some other configurations, segments cannot make these cross-mapping references so happily. Imagine: .segment "SWAPPABLE" .proc foo rts .endproc .segment "FIXED" jsr foo Here the assembler will properly detect the address of 'foo' in the context of the 'SWAPPABLE' segment. But what this assembler doesn't know is that this segment is swappable (e.g. UNROM chip). Hence, if the bank being mapped right now is not the one containing the 'SWAPPABLE' segment, then the address computed for 'foo' and used in that 'jsr' instruction will point to something else entirely. This would be similar to a use-after-free bug. This is something that can only be inspected at runtime, and so the assembler cannot be of much help here. Hence, this commit adds a warning so the programmer can understand the potentially dangerous operation. All of that being said, this commit also adds support for "asan:safe" or "check:safe", which is a magic comment that the programmer can write to re-assure the assembler that this operation is fine (e.g. there is a guarantee that the mapped bank is that one we are expecting). Hence, the code above could now be written like so: jsr foo ; check:safe Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Rename "raw address" to "label"Miquel Sabaté Solà2026-04-301-1/+1
| | | | | | This is much clearer to the programmer. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* nasm: add documentation to the 'unused' checksMiquel Sabaté Solà2026-04-301-0/+23
| | | | Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* nasm: add documentation on the exit status codeMiquel Sabaté Solà2026-04-281-0/+9
| | | | | | | I apparently never bothered to do so. It's a good idea to have this as it might not be all that expected. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* nasm: add a description on the README.md fileMiquel Sabaté Solà2026-04-251-0/+14
| | | | Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Add documentation for asan:stackMiquel Sabaté Solà2026-04-081-0/+23
| | | | Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Fix small typoMiquel Sabaté Solà2026-02-271-1/+1
| | | | Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Document the __NASM__ and __fallthrough__ featuresMiquel Sabaté Solà2026-02-031-0/+138
| | | | Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* nasm: Better wording on the README fileMiquel Sabaté Solà2025-09-191-5/+19
| | | | | | | | | Instead of only bringing up the pedantic nature of nasm, also note on some of its improvements over ca65. Also, some minor grammar fixes here and there. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
* Update README on asan:ignore also affecting instructionsMiquel Sabaté Solà2025-09-041-9/+6
| | | | Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
* Move and expand the README on nasmMiquel Sabaté Solà2025-09-041-0/+174
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>