Articles count is : 879
Practical Examples and Debugging: Building Step-by-Step with Makefiles.
When developing an x86-64 assembler in C/C++, managing the build process effectively is essential to streamline compilation, facilitate incremental bu...
Practical Examples and Debugging : Writing a Full Sample Assembler in C/C++
Designing and implementing a full assembler in C or C++ is an excellent practical exercise to consolidate the understanding of assembler architecture,...
Assembler Internals: Design Decisions -> Custom Directives and Instruction Macros
1. Introduction Custom directives and instruction macros are powerful features within assembler design that enhance expressiveness, flexibility, and...
Assembler Internals: Design Decisions -> Label Resolution and PC-Relative Addressing
1. Overview Label resolution and PC-relative addressing are critical components in the design of an x86-64 assembler, deeply affecting code generati...
Assembler Internals: Design Decisions -> Symbol Resolution Strategies
1. Introduction Symbol resolution is a fundamental process within an assembler responsible for mapping symbolic names—such as labels, variables, a...
Assembler Internals: Design Decisions -> Macro Processors and Performance Tradeoffs
1. Introduction Macro processing is a powerful feature in assemblers that allows programmers to define reusable code templates or macros, which can ...
Assembler Internals: Design Decisions -> One-pass vs Two-pass Assemblers
1. Introduction A fundamental design decision when creating an assembler is choosing between a one-pass or two-pass architecture. This choice signif...
Object File Generation : Creating Relocatable Object Files -> Using Libraries (e.g., libelf, LLD) to Assist
Introduction Developing a complete assembler capable of producing valid relocatable object files compliant with ELF specifications involves signific...
Object File Generation : Creating Relocatable Object Files -> ELF32 vs ELF64 Differences
1. Introduction When designing an assembler targeting x86-64 architectures, understanding the distinctions between the 32-bit ELF (ELF32) and 64-bit...
Object File Generation: ELF Format Deep Dive -> Section Headers: .text, .data, .bss
In the ELF object file format, section headers define the organization of the binary’s data into logically distinct regions. Each section header pro...
Architecture of an Assembler: Data Structures in Assembler Design -> Relocation Table
The relocation table is a fundamental data structure in assembler and linker design, responsible for recording references to symbols or addresses that...
Architecture of an Assembler: Data Structures in Assembler Design -> Instruction Table
The instruction table is the core reference structure that an assembler uses to map mnemonic representations of machine instructions to their correspo...