Assembler See ::/Compiler/OpCodes.DD for opcodes. They're not standard. Some invalid insts are not flagged and some valid insts are not implemented. 16-bit asm support is limited. Here are example instruction formats: ADD RAX, I64 FS:DISP[RSI + RDI * 8] ADD RAX, I64 [DISP] $ Current compiler output pos (instruction pointer). Even works in ZealC expressions. $ works in classes. class MyFun { $ = -16; I64 local1; I64 local2; $ = $ + 256; I64 crazy; }; LABEL:: Defines an exported global label. LABEL: Defines an non-exported global label. @@LABEL: Defines a local label with scope valid between two global labels. DU8, DU16, DU32, DU64 Define BYTE, WORD, DWORD or QWORD. Can be used with DUP() and ASCII strings. For your convenience, the ASCII strings do not have terminating zeros. Define cmds must end with a semicolon. USE16, USE32, USE64 IMPORT sym1name, sym2name; LIST, NOLIST ALIGN num, fill_byte Align to num boundary and fill with fill_byte. ORG num Set code address for JIT or set module Load() address -- has 16-byte CZXE header and patch table trailing. BINLOAD "FileName.BIN"; See Assembly Language, ::/Demo/Asm/AsmAndC1.ZC, ::/Demo/Asm/AsmAndC2.ZC and ::/Demo/Asm/AsmAndC3.ZC.