Команда пересылает байт в слово или двойное слово, а также слово в двойное слово с заполнением старших разрядов нулями. В качестве первого операнда (приемника) может использоваться 16- или 32-разрядный регистр общего назначения, в качестве второго - 8- или 16-разрядный регистр общего назначения или ячейка памяти такого же размера. Недопустима пересылка из памяти в память, в или из сегментного регистра, а также непосредственного значения. Фактически команда movzx увеличивает размер числа, считая его числом без знака.

Пример 1


mov CL,5 ;CL=05h
movsxAX,CL ;AX=0005h

Пример 2


mov CL,-5 ;CL=FBh
movsxAX,CL ;AX=00FBh

Пример 3


mov BL,80h ;BL=80h
movsxECX,BL ;ECX=00000080h

Пример 4


;B полях данных
mem dw 0FFFFh ;mem=FFFFh
;B программном сегменте
movsxEBX,mem ;EBX=0000FFFFh