[comp.sys.intel] I80386 String Operations

campbell@sauron.Columbia.NCR.COM (Mark Campbell) (07/20/87)

Could someone out there explain or point to literature explaining the I80386
string manipulation operations?  What I'm wondering is why the I80386 string
operations are so efficient.  For example, the sequence*

		slodb
		scab

in a string compare loop appears to be much faster than the corresponding
MC68020 load and compare instructions, even if the MC68020 can access memory
more quickly in all (byte, word, and longword) normal cases.

The only theory I have is that these instructions are somehow using the
memory bus more efficiently than you would think, given that they are byte
operations.

Thanks.

* INTERACTIVE I80386 assembler
-- 
						Mark Campbell
						{}!ncsu!ncrcae!sauron!campbell

bobc@.UUCP (Robert Cain) (07/25/87)

In article <917@sauron.Columbia.NCR.COM>, campbell@sauron.Columbia.NCR.COM (Mark Campbell) writes:
> Could someone out there explain or point to literature explaining the I80386
> in a string compare loop appears to be much faster than the corresponding
> MC68020 load and compare instructions, even if the MC68020 can access memory
> more quickly in all (byte, word, and longword) normal cases?
> 
> 						Mark Campbell
> 						{}!ncsu!ncrcae!sauron!campbell

	Its all qutie simple. I am suprised you hadnt figured it out by now.
The reason that the I386 is so much faster at moving stings is because it 
makes it cant add 32 bits correctly.  If the damn thing couldnt atleast
move bytes, no one would even consider using it for anything but a place
to store gold and silicon until needed in a more useful device.

..!dlb!Eridani!LBI!bobc