Tee-отладчик разбирает 32-битный код (вы сказали ассемблеру генерировать 32-битный код с псевдооперацией use32
) как 16-битный код.Таким образом, инструкция mov ax, 10h
интерпретируется как mov eax, d88e0010h
, где часть d88e
в действительности является кодом операции для следующей инструкции, mov ds,ax
.
Аналогично для mov esp, 0xffff
, что интерпретируется как mov sp, 0xffff
и два дополнительных нулевых байта отображаются как ложные инструкции add byte ptr...
.
То, что процессор фактически выполняет, зависит от его текущего состояния - в защищенном режиме, в реальном режиме, в плоском режиме и т. д. Посмотрите нарегистры статуса выяснить.Возможно, вы можете сказать отладчику интерпретировать код по-другому.