Fehler A2022: Anweisungsoperanden müssen gleich groß sein

Hey, ich erhalte diesen Fehler, wenn ich diesen Code ausführe:

1>------ Build started: Project: Project, Configuration: Debug Win32 ------
1>  Assembling [Inputs]...

1>assign2.asm(32): error A2022: instruction operands must be the same size

1>assign2.asm(33): error A2022: instruction operands must be the same size

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\masm.targets(49,5):

 error MSB3721: The command "ml.exe /c /nologo /Zi /Fo"Debug\assign2.obj" /Fl"Project.lst" 

/I "c:\Irvine" /W3 /errorReport:prompt  /Taassign2.asm" exited with code 1.

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Hier ist der folgende Code, der auftritt, wenn ich versuche, ml1337skillz von usPop zu subtrahieren und das Ergebnis in Difference zu speichern. (Denken Sie daran, ich fange gerade erst an, diesen Bereich zu lernen :))

TITLE Learning      (learning.asm)

INCLUDE Irvine32.inc

secondE = 00000000010001010000000000000000b

.data

myName BYTE "John Smith"

nameLen = ($ - myName)

nationalDebt QWORD 7975482431119.47d

usPop DWORD 313900000d

kindaNegative SDWORD -2147483648d

my1337Sk1LLz WORD 1337h

negUnit SBYTE -1

half BYTE 0.5d

Difference SWORD ?

starField BYTE 2000 DUP("*")

bigLoss SDWORD -50000

.code
main PROC

FillRegs:

    mov eax,usPop           ;store 3139000000d into eax
    sub eax,my1337Sk1LLz    ;subtracts 1337h from usPop in eax
    mov Difference, eax     ;stores eax into Difference

    mov edx,bigLoss         ;stores -50000 into edx

    mov eax,secondE         ;store 0E00 into eax
    mov ah,'A'              ;store string A into ah 
    mov al,'X'              ;store string X into al

    mov ebx,secondE         ;store 0E00 into ebx
    mov bh,'B'              ;store string B into bh
    mov bl,'X'              ;store string X into bl

    call DumpRegs           ;shows Registers

    exit                    ;exits
    main ENDP

END main

Antworten auf die Frage(1)

Ihre Antwort auf die Frage