Использование регистров pentium
- Часть 1
- | 2
В процессорах Pentium обычные регистры расширены до 32-х разрядов (рис 3.3). Конечно, благодаря программной совместимости можно использовать все 16-разрядные регистры по-прежнему, но дополнительно к этому можно использовать каждый из 32-разрядных регистров общего назначения, причём в любом режиме (не только защищённом). Например:
mov ax,[ebx] ; Поместить в AX значение из памяти
; по адресу DS:EBX
mov dx,[ecx] ; Поместить в DX значение из памяти
; по адресу DS:ECX
mov cx,es:[eax] ; Поместить в CX значение из памяти
; по адресу ES:EAX
Дополнительно к этой возможности введены следующие:
- Использование константы и регистра:
mov eax,[ecx + 1]
mov bl,[edx + 12345678h]
- Сумма двух регистров:
mov ebp,[ebx + edi]
mov eax,[ecx + edx]
- Сумма двух регистров и константы:
mov bl,[edx + eax + 12345678h]
- Масштаб - автоматическое умножение на 2, 4 или 8 одного из регистров, участвующих в образовании адреса:
mov ax,[ebx * 2]
mov cl,[edx + ebp * 4]
mov esi,[edi + eax * 8 + 12345678h]
При использовании 32-разрядных регистров для адресации в режиме реальных адресов, следует учитывать, что размер сегмента фиксирован и равен 64 Кб. Если процессор сформирует адрес, больший 64 Кб, то процессор зависнет. Например:
mov eax,1234h
mov bl,[eax] ; В регистр BL будет произведена загрузка
предыдущаяследующая© Copyright, 2009.
Для связи: info@dgs-srl.com.