

ds:(e)bx and (e)ax are hardwired to the XLAT instruction, which is
a fetch of a one-byte table entry, like a one byte FETCH or
C unary *. Result is in al. `lookup' verb?

`amount'						
cl is the shift value for shifts and rolls.


`digit'
al is the victim of the AAA/DAA/DAS ascii digit insns


ax is where AAD, AAS and AAM occur. There are interesting notes on
these guys in BUGS.TXT.

`A'
(e)ax is the default reg for various ops

`source'  `dest'
esi and edi are auto-incremented source and dest of REP* constructs
	and pointers to CMPS* insns


The destination of a CMPS* and INS* is in es:

`double'
(e)dx is where (e)ax gets extended to by CWD/CDQ
(e)a(lx) combined with high-order in (e)d(x) is the only place to 
	DIV/IDIV


`incrementing' `decrementing' (verbs)
there is a direction flag in EFLAGS for REPs

`port'
port communication is to (e)a(xl) and the port addy may be immediate
 	or in dx
"Input byte from port DX into ES:(E)DI"    is it for port string input


`slammer'
int args are immediate only. Self-modifying code appeals here.
all jumps are relative and immediate. More fun with self-modifying code.



LEAVE        4       Set ESP to EBP, then pop EBP


Note on segments
   LGDT and LIDT appear in operating system software; they are not used
   in application programs. They are the only instructions that directly
   load a linear address (i.e., not a segment relative address) in 80386
   Protected Mode.

`count'
(e)cx is the countdown for LOOP*




NOP is an alias mnemonic for the XCHG (E)AX, (E)AX instruction 
	and eats 3 clocks


The "general registers" are defined vaguely by POPA
	POPA          24       Pop DI, SI, BP, SP, BX, DX, CX, and AX






