Если вам нужно изменить (E)SP
вместе с SS
(и обычно вам это нужно), то, если прерывания разрешены, это должно быть сделано либо с помощью одной LSS (E)SP, ...
инструкции, либо двух инструкций MOV SS, ...
+ MOV (E)SP, ...
(именно в этом порядке). Если вы сначала измените (E)SP
, а затем SS
, или если вы сначала измените SS
, затем выполните некоторые другие инструкции и только затем измените (E)SP
, вы должны делать все это с отключенными прерываниями (например, с CLI
) потому что в противном случае у вас будет окно, в котором пара SS:(E)SP
будет неправильной / непоследовательной, и любое прерывание, которое произойдет в это время, может повредить память.
Об этом можно прочитать в руководствах по intel и AMD .