|
|
| Посл.отвђт | Сообщен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) я так и не понял. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.096 |