Я немного кодировал 8086 обучающий комплект. По какой-то причине SHR,SHL,SAL,SAR,ROL,ROR
операции на нем не работают. если я напишу заявление вроде
MOV AX,16
SHR AX,2
он застрянет в строке SHR AX,2
, как если бы произошла синтаксическая ошибка. То же самое и с другими операциями сдвига и поворота.
единственный способ заставить его работать - использовать регистр CL.
когда я изменил код на
MOV AX,16
MOV CL,2
SHR AX,CL
он выполнил, но значение в AX
должно было быть 4
вместо 5
.
также для этого кода
MOV AX,32
MOV CL,2
SHR AX,CL
Значение в AX
было 12
, но должно было быть 8
.
что здесь происходит? Я что-то не так делаю?
ПРИМЕЧАНИЕ: пожалуйста, не говорите мне использовать DIV & MUL вместо операции сдвига, потому что это становится очень сложным при использовании в больших программах.
cl
. - person Michael   schedule 03.04.2019