Copyright (C) 2000-2012 |
GNU Info (nasm.info)Section B.1B.1. Key to Operand Specifications ================================== The instruction descriptions in this appendix specify their operands using the following notation: * Registers: `reg8' denotes an 8-bit general purpose register, `reg16' denotes a 16-bit general purpose register, and `reg32' a 32-bit one. `fpureg' denotes one of the eight FPU stack registers, `mmxreg' denotes one of the eight 64-bit MMX registers, and `segreg' denotes a segment register. In addition, some registers (such as `AL', `DX' or `ECX') may be specified explicitly. * Immediate operands: `imm' denotes a generic immediate operand. `imm8', `imm16' and `imm32' are used when the operand is intended to be a specific size. For some of these instructions, NASM needs an explicit specifier: for example, `ADD ESP,16' could be interpreted as either `ADD r/m32,imm32' or `ADD r/m32,imm8'. NASM chooses the former by default, and so you must specify `ADD ESP,BYTE 16' for the latter. * Memory references: `mem' denotes a generic memory reference; `mem8', `mem16', `mem32', `mem64' and `mem80' are used when the operand needs to be a specific size. Again, a specifier is needed in some cases: `DEC [address]' is ambiguous and will be rejected by NASM. You must specify `DEC BYTE [address]', `DEC WORD [address]' or `DEC DWORD [address]' instead. * Restricted memory references: one form of the `MOV' instruction allows a memory address to be specified _without_ allowing the normal range of register combinations and effective address processing. This is denoted by `memoffs8', `memoffs16' and `memoffs32'. * Register or memory choices: many instructions can accept either a register _or_ a memory reference as an operand. `r/m8' is a shorthand for `reg8/mem8'; similarly `r/m16' and `r/m32'. `r/m64' is MMX-related, and is a shorthand for `mmxreg/mem64'. automatically generated by info2www version 1.2.2.9 |