# Assembler Documentation

**URL:** <https://forum.embeetle.com/t/assembler-documentation/1051>\
**Category:** Uncategorized\
**Tags:** priority-low\
**Created:** [November 16, 2025, 4:44pm UTC](https://forum.embeetle.com/t/assembler-documentation/1051 "2025-11-16T16:44:36Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Papabravo](https://forum.embeetle.com/letter_avatar_proxy/v4/letter/p/cab0a1/32.png) [@Papabravo](https://forum.embeetle.com/u/Papabravo)\
**Post date:** [November 16, 2025, 4:44pm UTC](https://forum.embeetle.com/t/assembler-documentation/1051/1 "2025-11-16T16:44:36Z")

</div>

Getting used to the architecture of RISC-V, I’m trying various experiments in a known working project to test my understanding of the instructions in both the long and the copressed form. I’m having no problem understanding how the assembler converts a long form (32-bit) instruction into a compressed form, but I’m puzzled by the errors, e.g. “Illegal Operand” when using compressed instructions.

Specifically, c.addi16sp and c.lwsp

Is there any chance that there is a document somewhere that explains what the compiler/assembler is complaining about?
