I have been learning assembly for not that long now, and I have been wondering what the "immed" abbreviation means and what significance it has in the "Intel Opcodes and Mnemnonics" help file
These are my assumptions, so please correct me if I'm wrong:
dest: destination (where the final values end up)
src: the second operand that's not modified
reg: register
mem: memory address
accum: accumulator register (EAX, AX, AH, AL)
immed: immediate? i don't know what it means though, does it mean a constant?
as for the ones that are listed like "immed8" or "reg16," I'm guessing the number after is the bit length?
thanks in advance!
immediate is a constant such a 123 or 123456
immed8 means limited to byte values, i.e. 0...255
accum is indeed eax (or ax in 16-bit code)
Quotesrc: the second operand that's not modified
source - normally not modified
there are exceptions, like XCHG, where both registers are modified
Quoteimmed: immediate? i don't know what it means though, does it mean a constant?
yes - and one thing JJ forgot to mention...
immediate also means the constant value is in the instruction code stream
Quoteas for the ones that are listed like "immed8" or "reg16," I'm guessing the number after is the bit length?
correct
you may find the first several chapters here very handy
http://www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/toc.html
thanks to both! dedndave, I've just started reading it now, it's really interesting, thanks!
The basic flow is..
Instruction Destination, Source =======> Destination = Destination(Instr)Source
If that makes any sense :green2
Just to add to the terminology, in assembler code you have 3 basic units for data,
1. An IMMEDIATE. This is a number in decimal, hex or binary
2. A memory operand. In MASM it can be named or done in a register. myvar or DWORD PTR [esi] for example
3. a REGISTER, this can be 8 bit (AL), 16 bit (AX) or 32 bit (EAX). In later 64 bit (RAX).