コードの一部(元々C ++で記述された関数)を手動で調整しようとすると、アセンブラーが次のエラーをスローします:エラーA2022:命令オペランドは同じサイズである必要があります
'movq'命令を使用する行で。
コード:
.686P
.mmx
.xmm
.MODEL flat, stdcall
.STACK 4096
.data
packedbytes db 10, 20, -30, 40, 50, 60, -70, 80
packedwords dw 10, 20, 30, 40
packeddwords dd 10, 20
.code
main PROC
movq mm0, packedbytes ; <== error thrown here
movq mm1, packedwords ; <== here
movq mm2, packeddwords ; <== and here
mov a0, 04d
mov al, 0d
int 21h
main ENDP
END main
32ビットボックスでmasmを使用しています。