ray@ole.UUCP (Ray Berry) (06/29/89)
I'm trying to write an ASM function for the 386 to execute in the
pc environment in which register ecx is used as a loop counter - the count
explicitly being greater than 2^16. 386 asm references I've looked at say
that the loop instruction DOES use ecx. However, when I execute the func-
tion, the top half of ecx is ignored and the loop terminates prematurely.
I'm suspicious that the operating mode of the cpu has something
to do with this, and/or that ecx can be enabled explicitly by using the
'OPSIZ' prefix... Does anyone have a grip on this? Does masm support
this prefix? TASM?
--
Ray Berry KB7HT uucp: ...{sumax|thebes|quick}!ole!ray CIS 73407,3152
Seattle Silicon Corp. 3075 112th Ave NE. Bellevue WA 98004 (206) 828 4422bobmon@iuvax.cs.indiana.edu (RAMontante) (06/30/89)
My TASM manual indicates that Borland's TASM1.0 does support the extended form of the loop instruction (as well as other 80386-extended opcodes). The 32-bit or 16-bit form can be specified by using the "loopd" or "loopw" mnemonic as desired. The manual manages to imply that MASM doesn't do this... disclaimer: I don't know what I'm talking about.