Jump to content

Расширение знака

(Перенаправлено с Sign-extension )

Расширение знака (иногда сокращенно секст , особенно в мнемонике ) — это операция в компьютерной арифметике увеличения количества бит двоичного числа при сохранении знака числа (положительного/отрицательного) и значения. Это делается путем добавления цифр к наиболее значимой стороне числа в соответствии с процедурой, зависящей от конкретного используемого представления числа со знаком .

Например, если для представления числа используются шесть битов " 00 1010" (десятичное положительное 10) и операция расширения знака увеличивает длину слова до 16 бит, тогда новое представление просто " 0000 0000 0000 1010Таким образом, сохраняется и значение, и тот факт, что значение было положительным.

Если для представления значения используются десять битов " 11 1111 0001" (десятичное отрицательное 15) с использованием дополнения до двух , и это знак, расширенный до 16 бит, новое представление " 1111 1111 1111 0001«. Таким образом, дополняя левую часть единицами, сохраняется отрицательный знак и значение исходного числа.

Например, в наборе инструкций Intel x86 есть два способа расширения знака:

  • используя инструкции cbw, cwd, cwde, и cdq: преобразовать байт в слово, слово в двойное слово, слово в расширенное двойное слово и двойное слово в четверное слово соответственно (в контексте x86 байт имеет 8 бит, слово — 16 бит, двойное слово и расширенное двойное слово — 32 бита, а четверное слово — 64 бита). биты);
  • используя один из знаковых расширенных ходов, выполняемый movsx («перемещение с расширением знака») — семейство инструкций.

Нулевое расширение

[ редактировать ]

Аналогичная концепция — нулевое расширение (иногда сокращенно zext ). В операции перемещения или преобразования нулевое расширение означает установку старших битов назначения в ноль, а не установку их в копию старшего бита источника. Если источником операции является беззнаковое число, то нулевое расширение обычно является правильным способом переместить его в поле большего размера, сохраняя при этом его числовое значение, тогда как знаковое расширение подходит для чисел со знаком.

В наборах команд x86 и x64 movzx инструкция («перемещение с нулевым расширением») выполняет эту функцию. Например, movzx ebx, al копирует байт из al зарегистрироваться в младшем байте ebx а затем заполняет оставшиеся байты ebx с нулями.

В x64 большинство инструкций, которые записывают все младшие 32 бита любого из регистров общего назначения, обнуляют старшую половину регистра назначения. Например, инструкция mov eax, 1234 очистит старшие 32 бита rax[ а ] зарегистрироваться.

См. также

[ редактировать ]
  • Мано, Моррис М.; Кайм, Чарльз Р. (2004). Основы логики и компьютерного дизайна (3-е изд.), стр. 453. Пирсон Прентис Холл. ISBN   0-13-140539-X .

Примечания

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e9f79b7283f894363b834449a3ea3de5__1717420200
URL1:https://arc.ask3.ru/arc/aa/e9/e5/e9f79b7283f894363b834449a3ea3de5.html
Заголовок, (Title) документа по адресу, URL1:
Sign extension - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)