FIX: Warning A4057 Generated Instead of Error A2019Last reviewed: September 11, 1997Article ID: Q39373 |
5.10 | 5.10
MS-DOS | OS/2
kbtool kbfixlist kbbuglist
The information in this article applies to:
SYMPTOMSThe code below is correctly flagged as an error in the Microsoft Macro Assembler (MASM) versions 5.0, 6.0, 6.0a, 6.0b, but MASM 5.1 generates a warning and incorrect code. The following is the error generated by MASM 5.0
A2019: Wrong type of registerMacro Assembler Version 5.1 fails to generate an error on the MOV instruction using the 8-bit registers (AH, BH, CH, DH, AL, BL, CL, DL) with segment registers (CS, DS, ES, SS). Instead, the following warning is generated
A4057: Illegal size for operandThe code generated is also in error. Each of the (8-bit) byte registers maps to the set (SP, DI, BP, SI, AX, BX, CX, DX). The following is the error generated by MASM 6.0
A2024: invalid operand size for instruction STATUSMicrosoft has confirmed this to be a problem in MASM version 5.1. This problem was corrected in MASM version 6.0.
MORE INFORMATIONThe following sample code demonstrates the problem: Sample Code: ;Assemble options needed: none
_TEXT segment word public 'CODE' ; instruction in source Generated code shown in listing mov ds, ah ; mov ds, sp mov ds, bh ; mov ds, di mov ds, ch ; mov ds, bp mov ds, dh ; mov ds, si mov ds, al ; mov ds, ax mov ds, bl ; mov ds, bx mov ds, cl ; mov ds, cx mov ds, dl ; mov ds, dx mov ah, 4ch int 21h _TEXT ends end |
Additional reference words: 5.10 buglist5.10 fixlist6.00
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |