From: "John M. Aldrich" Newsgroups: comp.os.msdos.djgpp Subject: Re: 32 bit registers Date: Fri, 20 Dec 1996 00:39:22 -0800 Organization: Two pounds of chaos and a pinch of salt Lines: 28 Message-ID: <32BA50BA.26B@cs.com> References: <59cs4f$58k AT nr1 DOT ottawa DOT istar DOT net> Reply-To: fighteer AT cs DOT com NNTP-Posting-Host: ppp211.cs.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: hotpulp AT netidea DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp hotpulp AT netidea DOT com wrote: > > are the 16 bit registers the lower 16 bits of their 32 bit equivalents > (ax and eax)? So if I load a value into ax am I really loading a value > in to eax? That's the meaning of "e"ax: "Extended" AX. The 'e' registers are all 32-bit extended versions of the standard registers; or, to be more precise, 'e?x' is the full register, and ?x is the lower 16 bits of it. Remember that 386s and higher are 32-bit processors! ;) 31 15 0 eax = XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX ax = XXXX XXXX XXXX XXXX ah = XXXX XXXX al = XXXX XXXX Before putting values in the word or byte registers, it is often a good idea to reset the whole register just to be safe. Unless, of course, you need the values in the high bits. -- --------------------------------------------------------------------- | John M. Aldrich, aka Fighteer I | fighteer AT cs DOT com | | "Starting flamewars since 1993" | http://www.cs.com/fighteer | | *** NOTICE *** This .signature is generated randomly. | | If you don't like it, sue my computer. | ---------------------------------------------------------------------