Copyright ©2005, 2006 Jonathan Kraut
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.

 

Contents

    1  Overview

    2  Installation
        2.1  Supported Schemes
        2.2  Installing
            2.2.1  Chicken
            2.2.2  Scheme48
            2.2.3  Other Schemes
            2.2.4  Caveats
        2.3  Sassy and GNU Emacs
        2.4  Porting Sassy

    3  Usage
        3.1  Basic Syntax
        3.2  Escaping to Scheme

    4  Directives
        4.1  Label Definitions and Lexical Scoping
            4.1.1  Defining Labels
            4.1.2  Lexical Scoping
        4.2  The align special form
        4.3  Sections
        4.4  Descriptions of directives
            4.4.1  heap
            4.4.2  data
            4.4.3  text
            4.4.4  include
            4.4.5  import
            4.4.6  export
            4.4.7  entry
            4.4.8  org
            4.4.9  bits
            4.4.10  macro
            4.4.11  begin

    5  The Text Section
        5.1  Instructions
            5.1.1  Immediates
            5.1.2  Addressing
            5.1.3  Operand Sizes
            5.1.4  Jumps and Calls
            5.1.5  Prefixes
        5.2  Assertions
        5.3  Control Primitives
            5.3.1  The COMFY core
            5.3.2  Sassy Extensions
            5.3.3  A Note on Branch Optimization
        5.4  Raw text data

    6  Custom Relocations

    7  Output
        7.1  Record-types
            7.1.1  sassy-output
            7.1.2  sassy-symbol
            7.1.3  sassy-reloc
        7.2  Additional procedures for sassy-output
        7.3  push-stacks
        7.4  Utilities

    8  Output Modules
        8.1  Flat Binaries
        8.2  ELF Output

    A  Macro Expansions
            A.0.1  Supplied macros
            A.0.2  Comparisons
            A.0.3  More Control Primitives
            A.0.4  ELF helpers
            A.0.5  Explicit Continuation Versions

    B  GNU Free Documentation License
        B  1. APPLICABILITY AND DEFINITIONS
        B  2. VERBATIM COPYING
        B  3. COPYING IN QUANTITY
        B  4. MODIFICATIONS
        B  5. COMBINING DOCUMENTS
        B  6. COLLECTIONS OF DOCUMENTS
        B  7. AGGREGATION WITH INDEPENDENT WORKS
        B  8. TRANSLATION
        B  9. TERMINATION
        B  10. FUTURE REVISIONS OF THIS LICENSE

    C  Extended Sassy Examples
        C  1. 16-bit x86 boot sector

    D  News