Инструкции преобразования типов конвертируют байты в слова, слова в двойные слова и двойные слова в четверные слова. Эти преобразования можно совершить, используя знаковое или нулевое расширение. Знаковое расширение заполняет дополнительные биты большего операнда значением знакового бита (старшего бита) меньшего операнда, нулевое расширение просто заполняет их нулями.
Инструкции cwd и cdq удваивают размер регистра ax или eax соответственно, и сохраняют дополнительные биты в регистре dx или edx. Конвертация осуществляется с помощью знакового расширения. Эти инструкции не имеют операндов.
Инструкция cbw копирует знаковый бит (старший бит) байта al во все биты старшего байта регистра ax (регистр ah), а инструкция cwde копирует знаковый бит слова ax во все биты старшего слова регистра eax. Эти инструкции также не имеют операндов.
Инструкция movsx преобразует байт в слово или в двойное слово, а слово в двойное слово, используя знаковое расширение. Инструкция movzx делает то же самое, но используя нулевое расширение. Операндом-источником может быть регистр общего назначения или память, в то время как операнд-назначение должен быть только регистр общего назначения. Например:
movsx ax,al ; байт регистра в слово регистра
movsx edx,dl ; байт регистра в двойное слово регистра
movsx eax,ax ; слово регистра в двойное слово регистра
movsx ax,byte [bx] ; байт памяти в слово регистра
movsx edx,byte [bx] ; байт памяти в двойное слово регистра
movsx eax,word [bx] ; слово памяти в двойное слово регистра