FIX: Wrong Opcode For Far Call from USE16 Seg to USE32 SegLast reviewed: September 11, 1997Article ID: Q32811 |
5.10 | 5.10
MS-DOS | OS/2
kbtool kbfixlist kbbuglist
The information in this article applies to:
SYMPTOMSMASM will generate both an address-size and operand-size override for a far call from a USE16 segment to a USE32 segment. Only the operand-size override is necessary.
STATUSMicrosoft has confirmed this to be a problem in Version 5.10. This problem was corrected in MASM version 5.10a.
MORE INFORMATIONThe address-size prefix is 67h and the operand-size prefix is 66h. The following sample code demonstrates the problem:
Sample Code;Assemble options needed: none
.386 s32 SEGMENT USE32 assume cs:@CurSeg p PROC p ENDP s32 ENDS s16 segment USE16 assume cs:@CurSeg CALL far ptr p s16 ENDS ENDThe opcode generated for the far call by MASM 5.1 is as follows
67| 66| 9A 00000000The correct opcode (generated by MASM 5.10a) is as follows
66| 9A 00000000 |
Additional reference words: 5.10 buglist5.10 fixlist5.10a
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |