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 4422
bobmon@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.