JNasm Assembler
Document the JNasm Assembler JNode concept in the wiki.
Value: 5
Concept Summary
JNode's custom x86 assembler with macro preprocessing and instruction encoding. JNasm provides a high-level assembly language for JNode, enabling efficient x86 code generation with preprocessing and macro support.
Key Files
- builder/src/builder/org/jnode/jnasm/JNAsm.java
- builder/src/builder/org/jnode/jnasm/assembler/Assembler.java
Occurrences
~200 references in jnasm package
Wiki Status
Partially covered (JNasm-Assembler-Design.md)
Bridges
Build system, Assembly, Binary generation
Instructions
Skill to Use
Use the [[update-wiki|update-wiki skill]] (load with skill({ name: "update-wiki" })) for understanding JNode internals.
Context Research
Study JNAsm.java and Assembler.java to understand the assembler. Review how JNasm processes assembly source, how macros work, and how instructions are encoded. Research how JNasm integrates with the build system and generates binary output.
Update index.md
- Pages table: Add entry for JNasm-Assembler.md
- Concepts → Pages table: Add "JNasm Assembler" mapping to [[JNasm-Assembler]]
- Source Path → Pages table: Add mappings for
builder/src/builder/org/jnode/jnasm/
- Task Routing table: Add relevant task route(s)
Task Routing Suggestions
- Assembly development: JNasm is central to assembly work
- Macro development: Understanding macros is key for code generation
- Build integration: JNasm integrates with Ant build system
Wiki Page Structure
# JNasm Assembler
> JNode's custom x86 assembler with macro preprocessing and instruction encoding.
## Overview
2-3 paragraph explanation of JNasm, its role in the build system, and how it enables efficient assembly programming.
## Key Components
| Class / File | Role |
|---|---|
| `builder/src/builder/org/jnode/jnasm/JNAsm.java` | Main assembler entry point |
| `builder/src/builder/org/jnode/jnasm/assembler/Assembler.java` | Assembler implementation |
## How It Works
Explanation of how JNasm works, how assembly source is processed, how macros work, how instructions are encoded, and how binary output is generated.
## Gotchas & Non-Obvious Behavior
- JNasm syntax differs from standard NASM/YASM
- Macro expansion must be careful with scoping
- Instruction encoding must match x86 specifications
## Related Pages
- [[Build-System]]
- [[x86-Assembly]]
- [[Binary-Generation]]
Related Concepts: Assembler, Assembly, Build system, Macro, Instruction encoding
JNasm Assembler
Value: 5
Concept Summary
JNode's custom x86 assembler with macro preprocessing and instruction encoding. JNasm provides a high-level assembly language for JNode, enabling efficient x86 code generation with preprocessing and macro support.
Key Files
Occurrences
~200 references in jnasm package
Wiki Status
Partially covered (JNasm-Assembler-Design.md)
Bridges
Build system, Assembly, Binary generation
Instructions
Skill to Use
Use the [[update-wiki|update-wiki skill]] (load with
skill({ name: "update-wiki" })) for understanding JNode internals.Context Research
Study JNAsm.java and Assembler.java to understand the assembler. Review how JNasm processes assembly source, how macros work, and how instructions are encoded. Research how JNasm integrates with the build system and generates binary output.
Update index.md
builder/src/builder/org/jnode/jnasm/Task Routing Suggestions
Wiki Page Structure
Related Concepts: Assembler, Assembly, Build system, Macro, Instruction encoding