Команда пересылает байт в слово или двойное слово, а также слово в двойное слово с расширением знака. В качестве первого операнда (приемника) может использоваться 16- или 32-разрядный регистр общего назначения, в качестве второго - 8- или 16-разрядный регистр общего назначения или ячейка памяти такого же размера. Недопустима пересылка из памяти в память, в или из сегментного регистра, а также непосредственного значения. Фактически команда movsx увеличивает размер как положительного, так и отрицательного числа, ни изменяя ни его значения, ни знака.
Пример 1
mov CL,-5 ;CL=FBh
movsxAX,CL ;AX=FFFBh
Пример 2
mov CL,+5 ;CL=05h
movsxAX,CL ;AX=0005h
Пример 3
mov BL,-128 ;BL=80h
movsxECX,BL ;ECX=FFFFFF80h
Пример 4
; В полях данных
mem dw -3 ;mem=FFFDh
;В программном сегменте
movsxEB-X,mem ; EBX=FFFFFFFDh