This project is read-only.

Instruction Formats

Each instruction consists of the following parts:
PREFIXes OPCODE ARG1 ARG2 ...

PREFIXes is a list of instruction prefixes separated by space characters.
OPCODE is an operation opcode.

Arguments

Registers
Assembler currently supports only general purpose registers. Moreover, it doesn't support accessing high parts of registers. E.g. AH is not recognized.
New registers in AMD64 architecture are named by letters (instead of indexes). E.g. R8 R9 RA e.t.c.
Examples: AL BX EDI RF
Memory
This assembler supports all memory addressing modes available in long mode.
Examples of memory addressing:
Instruction Description
MOV (RAX + RBP*2).BYTE 0 defines a byte-sized memory location with absolute address RAX + RBP*2
MOV (RIP + 500) RAX defines an unsized memory location with RIP-relative address
MOV (0xFF) RDX defines an unsized memory location with absolute address

Labels

Each label must be placed on it's own line. They are defined by special syntax:
~- "LABEL"
Here LABEL can contain escape sequences supported by F# (and maybe C#).

Last edited May 3, 2008 at 9:30 AM by LostTheBlack, version 3

Comments

No comments yet.