Microsoft KB Archive/30385

= FIX: MOV with Type Operator Generates Incorrect Opcodes =

Article ID: 30385

Article Last Modified on 10/22/2003

-

APPLIES TO


 * Microsoft Macro Assembler 5.1 Standard Edition
 * Microsoft Macro Assembler 5.1a

-



This article was previously published under Q30385



SYMPTOMS
The MOV instruction, using indirect addressing, and the Type operator generate incorrect opcodes.



STATUS
Microsoft has confirmed this to be a problem in Microsoft Macro Assembler versions 5.1 and 5.1a. This problem was corrected in MASM version 6.0.



MORE INFORMATION
The first MOV instruction generates the opcode &quot;B8FFF4&quot;, which is a move-immediate instruction. The assembler should generate the opcode &quot;8B44F4&quot;. This opcode is generated on the second move instruction. MASM Version 5.00 generates the correct code for both MOV instructions.

The following code demonstrates the problem: seg_1 segment  para  public  'code' assume cs:seg_1 test_str struc test_f1 dw  ? test_f2 dw  ? test_f3 db  8 dup (?) test_str ends main_entry proc mov ax,word ptr [si] - type test_str mov ax,word ptr [ si - type test_str] main_entry endp seg_1 ends end
 * This alternate generation works
 * This alternate generation works

Additional query words: 5.10 5.10a buglist5.10 buglist5.10a fixlist6.00

Keywords: kbfix KB30385

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.