· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Префикс замены размера адреса

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Июл 23, 2003 10:53:46

PROFi,
К сожалению, у меня нет книжки Александрова
и в ближайшем книжном магазине(ах) её тоже не найти.
Приведи, пожалуйста, цитату оттуда касательно smsw.

По поводу "азбучности".
У меня около 30и книг посвящённых x86.
Ни в одной из них нет того описания smsw которое я привёл.
На сайте, ссылку которого ты дал, тоже очевидно не знают
эту азбучную истину.
Вероятно, книга Александрова выгодно отличается от других
источников. Но хотелось бы сначала увидеть точную цитату
из неё о smsw для полной ясности.


Дата: Июл 24, 2003 08:56:13

Bog_
Кстати вот по ходу дела и назрел вопрос: Каким тогда же образом AMD поддерживает loadall286/386, если на месте их опкодов находится syscall/sysret ?

Sysenter и Sysexit были введены Intel. AMD их тоже поддерживает. А вот Syscall/Sysret это уже придумала AMD специально для своего 64х-битного режима.


Дата: Июл 25, 2003 11:34:31

А вот Syscall/Sysret это уже придумала AMD специально для своего 64х-битного режима.

А откуда информация про 64 битный режим???
по моим данным эта инструкция уже есть в AMD-k6, который 64-битностью не отличается (а вот про совместимость с intel процессорами AMD для этого процессора заявляет)...


Дата: Авг 4, 2003 13:08:24 · Поправил: Black_mirror

Информация с сайта AMD. Я оттуда скачал описание процессора Opteron. Может эти комманды есть и в K6, но его описания у меня нету, а в описании Opteron'а я не нашел как эти команды работают в 32х битном режиме, поэтому и решил, что работают они только в 64х битном режиме.


Дата: Авг 5, 2003 11:27:20

Посмотрел я еще раз про AMDx86-64 и ужаснулся.
Sysenter делает следующее:
Загружает в CS:EIP значения MSR174h:MSR176h,
а в SS:ESP - MSR174h+8:MSR175h. При этом база CS и SS устанавливается в 0, а лимит 4Гб, CPL становится равен 0. Еще изменяются некоторые флаги.
Sysexit делает следующее:
Загружает в CS:EIP значение из MSR174h+16:EDX, а в SS:ECX - MSR174h+24:ECX. База=0, Лимит=4Гб, CPL=3.
Sysenter/Sysexit не обращаются к глобальной таблице дескрипторов, а предполагают что селекторам загруженным в CS и SS соответствуют дескрипторы в GDT с базой 0 и лимитом 4Гб. Еще как можно заметить, sysenter не сохраняет CS:EIP(!), что очень странно, так как эти команды были задуманы для ускорения вызовов операционной системы, а так придется сохранять адрес возврата программе, конечно, если она не ExitProcess вызывает 8)

С Syscall и Sysret я не совсем разобрался. Syscall сохраняет RIP(EIP) в RCX(ECX), а вот почему он не сохраняет RSP(ESP) я так и не понял.

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.096