----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || ||0F A3 BT r/m16,r16 3/8 Сохранение бита во флаге || переноса ||0F A3 BT r/m32,r32 3/8 Сохранение бита во флаге || переноса ||0F BA/ BT r/m16,imm8 3/3 Сохранение бита во флаге || переноса ||0F BA/4 ib BT r/m32,imm8 3/3 Сохранение бита во флаге || переноса |---------------------------------------------------------------- Работа команды CF <- BIT[LeftSRC,RightSRC]; ОписаниеКоманда BT сохраняет значение бита, задаваемого базой (первый операнд) исмещением бита (второй операнд), во флаг CF. Изменяемые флагиФлаг CF содержит значение выбранного бита. Исключения защищенного режима#GP(0) в случае недопустимого исполнительного адреса операнда памяти всегментах CS, DS, ES, FS или GS; #SS(0) в случае недопустимого адреса всегменте SS; #PF(код сбоя) в случае страничного сбоя; #AC дляневыравненной ссылки к памяти при текущем уровне привилегированности,равном 3. Исключения режима реальных адресовПрерывание 13, если какая-либо часть операнда лежит вне пространстваисполнительных адресов от 0 до 0FFFFH. Исключения виртуального режима 8086Те же исключения, что и для режима реальных адресов: #PF (код сбоя) длястраничных сбоев; #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3. ПримечанияИндекс выбранного бита может быть задан непосредственной константой вкоманде или значением в регистре общего назначения. В команде может бытьиспользовано только 8-разрядное непосредственное значение. Этот операндберется по модулю 32, так что диапазон непосредственных смещений битасоставляет 0...31. Это позволяет выбор любого бита в регистре. Для строкбитов в памяти это непосредственное поле задает только смещение бита вслове или двойном слове. Непосредственные смещения битов, превышающие 31,поддерживаются использованием поля непосредственного смещения бита вкомбинации с полем смещения в операнде памяти. Младшие от 3 до 5 битынепосредственного смещения бита записываются в поле непосредственногосмещения бита, а старшие биты от 27 до 29 сдвигаются и объединяются сосмещением байта в режиме адресации.При доступе к биту в памяти процессор может выполнить доступ к четырембайтам, начиная с адреса памяти, заданного как Исполнительный адрес + (4 * (BitOffset DIV 32))для размера операнда 32 бита , либо два байта, начиная с адреса памяти,заданного как Исполнительный адрес + (2 * (BitOffset DIV 16))для размера операнда 16 битов. Процессор может поступать таким образомдаже когда для доступа к заданному биту достаточно выполнить доступ всегок одному байту. Следовательно, вы можете избежать ссылок к областямпамяти, близко к разрывам адресного пространства. В частности, избегайтессылок к регистрам ввода/вывода, управляемого памятью. Вместо этого длязагрузки и сохранения в эти адреса используйте команды MOV, а дляманипулирования данными используйте регистровые формы этих команд.