The MASM Forum Archive 2004 to 2012

General Forums => The Campus => Topic started by: MrCodeBlok on April 20, 2011, 08:08:48 PM

Title: Opcode documentation abbreviations
Post by: MrCodeBlok on April 20, 2011, 08:08:48 PM
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!
Title: Re: Opcode documentation abbreviations
Post by: jj2007 on April 20, 2011, 08:19:29 PM
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)
Title: Re: Opcode documentation abbreviations
Post by: dedndave on April 20, 2011, 08:29:37 PM
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
Title: Re: Opcode documentation abbreviations
Post by: MrCodeBlok on April 20, 2011, 08:37:19 PM
thanks to both! dedndave, I've just started reading it now, it's really interesting, thanks!
Title: Re: Opcode documentation abbreviations
Post by: vanjast on April 20, 2011, 11:35:18 PM
The basic flow is..

Instruction    Destination, Source  =======> Destination = Destination(Instr)Source

If that makes any sense  :green2
Title: Re: Opcode documentation abbreviations
Post by: hutch-- on April 21, 2011, 12:21:05 AM
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).