Newsgroups: comp.os.msdos.djgpp From: Eder James Subject: ASM and graphics Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: Sender: news AT doc DOT ntu DOT ac DOT uk Organization: The Nottingham Trent University, DOC. Mime-Version: 1.0 Date: Tue, 28 Oct 1997 09:58:04 GMT Lines: 38 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Hi, all. Got a quick question that I'm sure somebody can help me out with. I have implemented some graphics (mode 13h) functions using AT&T asm, an example being a pixel plot function. To calculate the offset of the pixel to be drawn, the maths needed is along the lines of : Offset = (Y * 320) + X The bit I'm interested in here is the (Y * 320) part of the equation. Which of the outlined partial implementations would prove the fastest in terms of execution ? Using multiply.... movl _Y_Pos, %eax imull $320, %eax ...or using shift... movl _YPos, %eax movl %eax, %ebx shl $6, %ebx shl $8, %eax addl %ebx, %eax I would like to know which is the quicker as I believe the mul and div are slow on the Intel Pentium processors. Any help appreciated. Regards, Andy