---
name: "asmc"
section: "1"
platform: "linux"
package: "asmc-linux"
version: "0.0~git20250329.4ee70bd+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/asmc"
---

# asmc(1)

Asmc Macro Assembler

## NAME

asmc - Asmc Macro Assembler

## SYNOPSIS

**asmc** \[*options*\] *filename* \[ \[*options*\] *filename*\] ... \[-link *link\_options*\]

## DESCRIPTION

Asmc Macro Assembler

## OPTIONS

- **-**{0\|1\|..\|10}\[p\]

  Set CPU: 0=8086 (default), 1=80186, 2=80286, 3=80386, 4=80486, 5=Pentium,6=PPro,7=P2,8=P3,9=P4,10=x86-64. "p" allows privileged instructions.

- **-arch:***option*

  Specifies the architecture for code generation. Valid *option*s are: IA32, SSE, SSE2, AVX, AVX2, and AVX512.

- **-assert**

  Generate .assert code.

- **-autostack**

  Calculate required stack space for arguments.

- **-bin**

  Generate plain binary file.

- **-Bl***filename*

  Selects an alternate linker in *filename*

- **-c**

  Assembles only. Does no linking.

- **-Cs**

  Push user registers before stack-frame is created in a proc.

- **-coff**

  Generate COFF format object file.

- **-C**{p\|u\|x}

  Set OPTION CASEMAP.

  - **-Cp**

    Preserves case of all user identifiers.

  - **-Cu**

    Maps all identifiers to upper case (default).

  - **-Cx**

    Preserves case in public and extern symbols.

- **-D***symbol*\[=*value*\]

  Defines a text macro with the given name. If *value* is missing, it is blank. Multiple tokens separated by spaces must be enclosed in quotation marks.

- **-dotname**

  Allows names of identifiers to begin with a period.

- **-e***number*

  Set error limit to *number*.

- **-elf**\[64\]

  Generate ELF object file.

  - **-elf**

    Generate 32-bit ELF object file.

  - **-elf64**

    Generate 64-bit ELF object file.

- **-endbr**

  Insert ENDBR at function entry.

- **-EP**

  Generates a preprocessed source listing (sent to STDOUT). See **-Sf**.

- **-eq**

  Don't display error messages.

- **-Fd**\[*file*\]

  Write import definition file.

- **-Fi***file*

  Force *file* to be included.

- **-Fl**\[*filename*\]

  Generates an assembled code listing. See **-Sf**.

- **-Fo***filename*

  Names an object file. In case of wildcard '\*' may be used for current file.

- **-fpc**

  Disallow floating-point instructions.

- **-FPi**

  Generates emulator fix-ups for floating-point arithmetic (mixed language only).

- **-FPi87**

  80x87 instructions (default).

- **-fpic**, **-fno-pic**

  Enables or disables the generation of position-independent code for ELF64. Default is **-fno-pic**.

- **-fp***n*

  Set FPU as *n*: 0=8087, 2=80287, 3=80387.

- **-frame**

  Auto generate unwind information.

- **-Fw***filename*

  Set errors file name.

- **-G**{c\|d\|z\|v\|s}

  Pascal, C, Std/Vector/Sys-call.

  - **-Gc**

    Specifies use of FORTRAN-style or Pascal-style function calling and naming conventions.

  - **-Gd**

    Specifies use of C-style function calling and naming conventions.

  - **-Gz**

    Specifies use of STDCALL-style function calling and naming conventions. Defines STDCALLSUPPORTED.

  - **-Gv**

    Specifies use of VECTORCALL-style function calling and naming conventions.

  - **-Gs**

    Specifies use of SYSCALL (System V)-style function calling and naming conventions.

- **-Ge**

  Emit a conditional \_chkstk() inside the prologue.

- **-help**

  Displays a summary of Asmc command-line syntax and options.

- **-homeparams**

  Forces parameters passed in registers to be written to their locations on the stack upon function entry.

- **-I***pathname*

  Sets *pathname* for include file.

- **-idd**\[t\]

  Assemble as binary data \[or text\].

  - **-idd**

    Assemble source as binary data.

  - **-iddt**

    Assemble source as text file.

- **-logo**

  Print logo string and exit.

- **-m**{t\|s\|c\|m\|l\|h\|f}

  Set memory model.

- **-mz**

  Generate DOS MZ binary file.

- **-MD**\[d\]

  Use for dynamic linking. Defines \_MSVCRT. Also defines \_DEBUG if "d" is added.

- **-MT**\[d\]

  Use for static linking. Defines \_MT. Also defines \_DEBUG if "d" is added.

- **-nc***name*

  Set class name of code segment as *name*.

- **-nd***name*

  Set name of data segment as *name*.

- **-nm***name*

  Set name of module as *name*.

- **-nt***name*

  Set name of text segment as *name*.

- **-nolib**

  Ignore INCLUDELIB directive.

- **-pe**{c\|g\|d}

  Generate PE binary file, 32/64-bit. c=CUI(default), g=GUI, d=DLL.

- **-q**

  Suppresses messages for successful assembly.

- **-nologo**

  Suppress copyright message.

- **-r**

  Recurse subdirectories with use of wildcards.

- **-Sa**

  Turns on listing of all available information.

- **-safeseh**

  Marks the object as either containing no exception handlers or containing exception handlers that are all declared with SAFESEH.

- **-Sf**

  Adds first-pass listing to listing file.

- **-Sg**

  Turns on listing of assembly-generated code.

- **-Sn**

  Turns off symbol table when producing a listing.

- **-Sp***n*

  Set segment alignment as *n*.

- **-stackalign**

  Align stack variables to 16-byte.

- **-sysvregs**

  Ignore RDI and RSI in USES for Linux64.

- **-Sx**

  Turns on false conditionals in listing.

- **-w**

  Same as **-W0** **-WX**.

- **-W***level*

  Sets the warning level, where level = 0, 1, 2, or 3.

- **-win64**

  Generate 64-bit COFF object. Defines \_WIN64.

- **-ws***CodePage*

  Store quoted *CodePage* as Unicode. Defines \_UNICODE.

- **-WX**

  Treat all warnings as errors.

- **-X**

  Ignore INCLUDE environment path.

- **-Z7**

  Add full symbolic debugging information.

- **-zcw**

  No decoration for C symbols.

- **-Zd**

  Generates line-number information in object file.

- **-Zf**

  Make all symbols public.

- **-zf**{0\|1}

  Set FASTCALL type: MS/OW.

- **-Zg**

  Generate code to match Masm.

- **-Zi**{0\|1\|2\|3}{\|5\|8}

  Add symbolic debugging information.

- **-zlc**

  No OMF records of data in code.

- **-zld**

  No OMF records of far call.

- **-Zm**

  Enable MASM 5.10 compatibility.

- **-Zv8**

  Enable Masm v8+ PROC visibility.

- **-Zne**

  Disable syntax extensions not supported and enable syntax supported by Masm.

- **-zl**{f\|p\|s}

  Suppress items in COFF

  - **-zlf**

    Suppress items in COFF: No file entry.

  - **-zlp**

    Suppress items in COFF: No static procs.

  - **-zls**

    Suppress items in COFF: No section aux entry.

- **-Zp**\[*alignment*\]

  Packs structures of the specified byte boundary by *alignment*.

- **-Zs**

  Perform syntax check only.

- **-zt**{0\|1\|2}

  Set STDCALL decoration: FULL (default), NONE, and HALF.

- **-zze**

  No export symbol decoration.

- **-zzs**

  Store name of start address.

## COPYRIGHT

Copyright (C) 2011-2025 The Asmc Contributors.

## SEE ALSO

- Online manual

  ⟨https://github.com/nidud/asmc/blob/master/readme.md⟩

- asmc\_linux

  ⟨https://github.com/nidud/asmc\_linux⟩

- asmc

  ⟨https://github.com/nidud/asmc⟩
