8086 использует до 16 битных регистров.Когда вы попытались присвоить 16-битное значение 32-битной переменной, emu8086 предполагает, что ваша переменная является 16-битной.
Другие ассемблеры, использующие тот же синтаксис (MASM и TASM), требуют явного переопределения размера word ptr
, еслиВы хотите хранить только младшее слово именованного местоположения, которое вы определили как dword.например, mov word ptr [var], ax
.
Для emu8086 это необходимо только при сохранении одного байта в переменной слова.
Поведение MASM / TASM более соответствует разрешению имени символа подразумевать размер, когдасохранение немедленного, например, mov var, 1
подразумевает word ptr
, если вы определили его с помощью dw
, даже если в инструкции нет регистров для указания размера.