home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.arch
- Path: sparky!uunet!cs.utexas.edu!sun-barr!ames!pacbell.com!tandem!UB.com!quack!dfox
- From: dfox@quack.sac.ca.us (David Fox)
- Subject: Relatively long cycle time in 486 LOOP instruction
- Message-ID: <fWFHrqe@quack.sac.ca.us>
- Keywords: 486 LOOP instruction cycle
- Organization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.
- Date: 16 Dec 1992 06:02:51 UTC
- Lines: 25
-
- Hi. This is my first posting to this newsgroup.
-
- I and others on a different network have had an ongoing thread about
- 386/486 assembler programming in general. One has posted recently
- that the 486's LOOP and JMP [E]CX instructions seem to take an
- inordinately long time, compared to other instructions that branch.
-
- I don't have a 486 hardware manual, so I cannot be absolutely sure
- of the timings, but apparently the LOOP instruction seems to eat
- at least 3 cycles more than we think it should.
-
- At most, the various parts of a LOOP instruction (decrementing the
- ECX register, testing against zero) should only take maybe two
- clocks. However, the information I got on the clock timings for
- LOOP consumes about three cycles in addition to the time we think
- the decrement, test, and jump take.
-
- Is the 486 doing anything special in a LOOP instruction to justify
- these three extra cycles? Specifically, is it doing something extra
- with the flag register to ensure that the flags don't get modified
- in the process?
- --
- David Fox
- dfox@quack.sac.ca.us
-
-