The information in this article applies to:
SYMPTOMSThe Microsoft Macro Assembler (MASM) version 6.0 will generate incorrect code when the IMUL instruction contains an operand that is a constant value from 128 to 255. No errors or warnings are displayed while assembling. CAUSEThe assembler incorrectly treats the constant as an 8-bit signed value rather than a signed word. In converting from a signed byte to a signed word, it extends the sign bit through the upper byte. Thus, 255 (0ffh) becomes -1 (0ffffh). RESOLUTIONTo work around this problem, qualify the constant as a word. For example:
STATUSMicrosoft has confirmed this to be a problem in MASM version 6.0. This problem was corrected in MASM version 6.0a. MORE INFORMATIONThe sample code below demonstrates this problem. The result of the IMUL instruction is -1. Sample Code
Additional query words: 6.00 buglist6.00 fixlist6.00a
Keywords : |
Last Reviewed: January 13, 2000 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |