Skip to content

Latest commit

 

History

History
1446 lines (1428 loc) · 128 KB

instructions.md

File metadata and controls

1446 lines (1428 loc) · 128 KB

Instruction set (wip)

Operand types

  • rel8 (8 bits, signed. Represents a relative address from -128 to +127).
  • rel16, rel32 (16 / 32-bit, signed. Represents a relative address from –32,768 to +32,767 / –2,147,483,648 to +2,147,483,647 according to the operand size).
  • imm8 (8-bit, signed, Represents an immediate value. It is sign-extended to form a 16 or 32-bit immediate if it's combined with a 16 or 32-bit operand).
  • imm16, imm32 (16 / 32-bit, signed. Immediate value).
  • r/m8 (8-bit register or a byte from memory).
  • r/m16, r/m32 (16 / 32-bit register or value in memory, according to the operand size).
  • m, m8, m16, m32, m64, m128 (an operand in memory, expressed as a variable or array name, but pointed to by the DS:(E)SI or ES:(E)DI registers).
  • m16int, m32int, m64int (integer operand in memory).
  • ST(i) (the i'th element from the top of the FPU register stack (0 to 7), 0 by default).
  • m32fp, m64fp, m80fp or m32real, m64real, m80real) (floating-point operand in memory)
  • m16:16, m16:32, m16:64 (an operand in memory, segment:offset)

See the summarized table in JSON here.