Jump to main content
MPLAB XC-DSC Assembler, Linker and Utilities User's Guide
Search
Notice to Development Tools Customers
1
Preface
1.1
GNU Free Documentation License Notice
1.2
Conventions Used in This Guide
1.3
Recommended Reading
2
Assembler Overview
2.1
Feature Set
2.2
Assembler Usage
2.3
Input/Output Files
3
Assembler Command Line Options
3.1
Command-Line Syntax
3.2
Options that Modify the Listing Output
3.3
Options that Control Informational Output
3.4
Options that Control Output File Creation
3.5
Other Options
4
MPLAB® XC-DSC
Assembly Language
4.1
Internal Processor
4.2
Source Code Format
4.3
Characters
4.4
Constants
4.5
Symbols
4.6
Expressions
4.7
Operators
4.8
Special Operators
5
Assembler Directives
5.1
Directives that Define Sections
5.2
Directives that Fill Program Memory
5.3
Directives that Initialize Constants
5.4
Directives that Declare Symbols
5.5
Directives that Define Symbols
5.6
Directives that Modify Section Alignment
5.7
Directives that Format the Output Listing
5.8
Directives that Control Conditional Assembly
5.9
Directives for Substitution/Expansion
5.10
Miscellaneous Directives
5.11
Directives for Debug Information
6
Assembler Listing File
6.1
Generation
6.2
Contents
7
Assembler Errors/Warnings/Messages
7.1
Fatal Errors
7.2
Errors
7.3
Warnings
7.4
Messages
8
Linker Overview
8.1
Feature Set
8.2
Linker Usage
8.3
Input/Output Files
9
Linker Command Line Options
9.1
Syntax
9.2
Options that Control Output File Creation
9.3
Options that Control Run-time Initialization
9.4
Options that Control Informational Output
9.5
Options that Modify the Link Map Output
9.6
Options that Specify CodeGuard™ Security Features - dsPIC33C/E/F Devices Only [DD]
9.7
Options that Control the Preprocessor
10
Linker Scripts
10.1
Overview of Linker Scripts
10.2
Command Line Information
10.3
Contents of a Linker Script
10.4
Creating a Custom Linker Script
10.5
Linker Script Command Language
10.6
Expressions in Linker Scripts
11
Linker Processing
11.1
Overview of Linker Processing
11.2
Memory Addressing
11.3
Linker Allocation
11.4
Global and Weak Symbols
11.5
Handles
11.6
Initialized Data
11.7
Read-only Data
11.8
Stack Allocation
11.9
Heap Allocation
11.10
Interrupt Vector Tables [DD]
11.11
Optimizing Memory Usage
11.12
Boot and Secure Segments - dsPIC33C/E/F Devices Only [DD]
11.13
Co-resident Application Linking
11.14
Linker Resolved Symbols
12
Linker Examples
12.1
Memory Addresses and Relocatable Code
12.2
Locating a Variable at a Specific Address
12.3
Locating a Function at a Specific Address
12.4
Using More than 32K of Constants [DD]
12.5
Locating a Constant at a Specific Address in Program Memory [DD]
12.6
Locating and Accessing Data in EEPROM Memory [DD]
12.7
Creating an Incrementing Modulo Buffer in X Memory
12.8
Creating a Decrementing Modulo Buffer in Y Memory
12.9
Locating the Stack at a Specific Address
12.10
Locating and Reserving Program Memory
13
Linker Map File
13.1
Generation
13.2
Contents
13.3
Representation of Constants in Program Memory
14
Linker Errors/Warnings
14.1
Errors
14.2
Warnings
15
MPLAB® XC-DSC
Object Archiver/Librarian
15.1
Archiver/Librarian and Other Development Tools
15.2
Feature Set
15.3
Input/Output Files
15.4
Syntax
15.5
Options
15.6
Scripts
16
Other Utilities
16.1
xc-dsc
-bin2hex Utility
16.2
xc-dsc
-nm Utility
16.3
xc-dsc
-objdump Utility
16.4
xc-dsc
-ranlib Utility
16.5
xc-dsc
-strings Utility
16.6
xc-dsc
-strip Utility
17
Document Revision History
17.1
Revision B (April 2024)
17.2
Revision A (October 2023)
18
GNU Free Documentation License
The Microchip Website
Product Change Notification Service
Customer Support
Product Identification System
Microchip Devices Code Protection Feature
Legal Notice
Trademarks
Quality Management System
Worldwide Sales and Service