Был ли снижен лимит документов AutoML на естественном языке?

Это вызвано комбинацией неопределенного поведения в C и фактом, что код, созданный для процессоров IA-32, имеет 5-битную маску, применяемую к счету сдвига. Это означает, что на процессорах IA-32 диапазон смещения рассчитывается только 0-31. 1

Из Язык программирования C 2

Результат не определен, если правый операнд отрицательный, или больше или равно количеству бит в типе левого выражения.

blockquote>

Из IA-32 Руководство разработчика программного обеспечения Intel Architecture 3

8086 не маскирует количество сдвигов. Однако все остальные процессоры IA-32 (начиная с процессора Intel 286) маскируют счетчик сдвига до 5 бит, что приводит к максимальному счету 31. Эта маскировка выполняется во всех режимах работы (включая режим виртуального 8086) до уменьшите максимальное время выполнения инструкций.

blockquote>

1 http://codeyarns.com/2004/12/20/c- shift-operator-mayhem /

2 A7.8 Операторы сдвига, Приложение A. Справочное руководство, Язык программирования C

3 SAL / SAR / SHL / SHR - Shift, глава 4. Справочник по набору инструкций, Руководство разработчика программного обеспечения для архитектуры Intel IA-32

-1
задан Johel Alvarez 30 March 2019 в 21:24
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: