Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SP_MET_1.DOC
Скачиваний:
2
Добавлен:
25.08.2019
Размер:
595.97 Кб
Скачать

2.3.10. Загрузка сегментных регистров

• Команда: LDS приемник,источник

• Назначение: Загрузить адрес, используя DS

• Процессор: 8086

• Команда: LES приемник,источник

• Назначение: Загрузить адрес, используя ES

• Процессор: 8086

• Команда: LFS приемник,источник

• Назначение: Загрузить адрес, используя FS

• Процессор: 80386

• Команда: LGS приемник,источник

• Назначение: Загрузить адрес, используя GS

• Процессор: 80386

• Команда: LSS приемник,источник

• Назначение: Загрузить адрес, используя SS

• Процессор: 80386

Второй операнд (источник) для всех этих команд — переменная в па­мяти размером в 32 или 48 бит (в зависимости от разрядности операндов). Первые 16 бит из этой переменной загружаются в соответствующий сег­ментный регистр (DS для LDS, ES для LES и т. д.), а следующие 16 или 32 — в регистр общего назначения, указанный в качестве первого операнда. В защищенном режиме значение, загружаемое в сегментный ре­гистр, всегда должно быть правильным селектором сегмента (в реальном режиме любое число может использоваться как селектор).

2.3.11. Другие команды

• Команда: NOP

• Назначение: Отсутствие операции

• Процессор: 8086

NOР — однобайтная команда (код 90h), которая не выполняет ничего, только занимает место и время. Код этой команды фактически соответствует команде XCHG AL,AL. Можно многие команды записать так, что они не будут приводить ни к каким действиям, например:

mov ах,ах ; 2 байта

xchg ах,ах ; 2 байта

lea bx,[bх+0] ; 3 байта (8Dh, 5Fh, 00h, но многие ассемблеры,

; встретив такую команду, реально используют более

; короткую команду lea bx [bх] с кодом 8Dh 1Fh)

shl еах,0 ; 4 байта

shrd еах,еах,0 ; 5 байт

• Префикс: LOCK

• Назначение: Префикс блокировки шины данных

• Процессор: 8086

На все время выполнения команды, снабженной таким префиксом, будет заблокирована шина данных, и если в системе присутствует дру­гой процессор, он не сможет обращаться к памяти, пока не закончится выполнение команды с префиксом LOCK. Команда XCHG автоматически всегда выполняется с блокировкой доступа к памяти, даже если префикс LOCK не указан. Этот префикс можно использовать только с командами ADD, ADC, AND, BTC, BTR, BTS, CMPXCHG, DEC, INC, NEG, NOT, OR, SBB, SUB, XOR, XADD и XCHG.

• Команда: UD2

• Назначение: Неопределенная операция

• Процессор: Р6

Эта команда всегда вызывает ошибку «неопределенная операция» (исключение #UD). Впервые она описана как таковая для Pentium Pro, но во всех предыдущих процессорах эта команда (код 0Fh 0Bh) не была определена и, естественно, приводила к такой же ошибке. UD2 предназ­начена для тестирования программного обеспечения, в частности опе­рационных систем, которые должны уметь корректно обрабатывать та­кую ошибку. Название команды происходит от команды UD (код 0Fh 0FFh), которая была определена AMD для процессоров AMD K5.

• Команда: CPUID

• Назначение: Идентификация процессора

• Процессор: 80486

CPUID сообщает информацию о производителе, типе и модифика­ции процессора, о наличии и поддержке различных расширений. Коман­да CPUID поддерживается Intel, начиная с процессоров Intel 80486DX/SX/DX2 SL, UMC U5S, Cyrix Ml, AMD 80486DX4. Процессор поддерживает эту команду, если возможна установка флага ID в 1 (бит 21 в peгистpe EFLAGS).

Результат работы CPUID зависит от значения регистра ЕАХ. Если ЕАХ = 0, CPUID возвращает в ЕАХ максимальное значение, с которым ее можно вызывать (2 для Р6, 1 для Р5), а регистры EBX:ECX:EDX со­держат 12-байтную строку — идентификатор производителя (табл. 8).

Например, для процессоров Intel регистр ЕВХ содержит «Genu» (756E6547h), ЕСХ содержит «ineI» (49656E69h), a EDX — «ntel» (6C65746Eh).

Если ЕАХ = 1, CPUID возвращает в ЕАХ информацию о версии про­цессора, а в EDX — информацию о поддерживаемых расширениях, относящихся к работе процессора в защищен­ном режиме. Значения битов EAX следующие: биты 3 – 0 — модификация; биты 7 – 4 — модель; биты 11 – 8 — семейство (3 для 386, 4 для 486, 5 для Pentium, 6 для Pentium Pro); биты 13 – 12 — тип (0 — OEM, I — Overdrive, 2 — Dual); биты 31–14 зарезервированы и равны нулю.

Таблица 8. Строки производителей в CPUID

Производитель

Строка в EBX:ECX:EDX

Intel

GenuineIntel

UMC

UMC UMC UMC

Cyrix

CyrixInstead

AMD

AuthenticAMD

NexGen

NexGenDriven

Centaur Technology

CentaurHalls

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]