Ну, во-первых, я понимаю (или думаю, что понимаю) проблемы неправильного выравнивания стека.
Но я знаю (как и определение), что перемещение 16-битного значения в 32-битный стек может привести к смещению стека.
Но что я не понимаю, так это то, как это могло произойти ... поскольку PUSH
и POP
проверяют флаг D в дескрипторе сегмента (то есть 1 увеличение / уменьшение 32 бита и 0 16 бит). *
Предположим, что D flag = 1, должен ли PUSH AX
уменьшаться на 32 бита? так как я "пропускаю" 16 бит в стеке?
Я не уверен, что понимаю эту проблему