Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2011, 14:54   #11
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
Ладно.
В real-mode есть досту к ресурсам в рамках 8086 архитектуры (16-битные регистры, сегментная адресация, 1Мб памяти). Это режим в котором оказывается процессор после reset или power-on.
Да.
Цитата:
Сообщение от f.hump Посмотреть сообщение
Фичи - это защищенные режимы 32/64-bit;
Мы говорим о реальном режиме. Мне не надо защищенный.
Цитата:
Сообщение от f.hump Посмотреть сообщение
кеши процессора; расширения MMX, SSE, AVX.. И для того чтобы ими воспользоваться их нужно продетектировать и включить,
Кеш работает сразу после reset или power on. Он вообще всегда работает и крайне трудно отключаем, особенно кеш комманд. Имхо - вообще не отключаем программно. Детектировать его не надо, если только не пишем тулзу типа CPU-Z.

Чтобы воспользоваться MMX.SSE не нужно ничего включать. Вот такая программа, будучи запущенная под голым дос на процессоре, поддерживающим набор этих инструкций, не вызовет мне illegal operation, а вполне себе отработает и выйдет в дос:
Код:
mov al,1                         ; 16-битный регистр
movaps  xmm1, xmm0       ; команда SSE
mov ebx,666                   ; 32-разрядный регистр
int 20h                           ; выход в DOS
Детектить да, надо, если не ведомо на каком проце будет запускаться. Например, вышеприведенная программа не запуститься на 80486 камне.
Но включать ничо не надо.

Цитата:
Сообщение от f.hump Посмотреть сообщение
для этого есть CPUID и управлющие регистры CR0-CR4. И тут важно знать, что в real-mode нет доступа к расширениям.
А я говорю, что есть.
Цитата:
Сообщение от f.hump Посмотреть сообщение
Точно также как protected-32 имеет лишь ограниченный доступ к SSE, AVX.
[/QUOTE]
А я говорю что имеет полный доступ к SSE, AVX и чему ваще захочет.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 19.07.2011, 15:15   #12
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
А я говорю что имеет полный доступ к SSE, AVX и чему ваще захочет.
Код:
addps xmm9, xmm0
vaddps ymm12, ymm0, ymm1
неужели такое сработает в protected-32?


Относительно всего остального читаем "Intel System Programming Guide", особенно главу 9: PROCESSOR MANAGEMENT AND INITIALIZATION.

Ну, и да под ДОС кое-что будет работать, потому-что ДОС сделал кое-что из того, что описано в главе 9 "Intel System Programming Guide".
f.hump вне форума Ответить с цитированием
Старый 22.07.2011, 23:34   #13
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
Код:
addps xmm9, xmm0
vaddps ymm12, ymm0, ymm1
неужели такое сработает в protected-32?
А я не знаю. А почему не должно сработать?
Цитата:
Сообщение от f.hump Посмотреть сообщение
Ну, и да под ДОС кое-что будет работать, потому-что ДОС сделал кое-что из того, что описано в главе 9 "Intel System Programming Guide".
Ну да? Вот прям дос v6.22 сделал что-то с регистрами SSE? Что же он такое сделал? Хотите код бут сектора, в котором допустим считаеться что-то с помощью MMX и выводиться результат на экран. И черт его дери, считается правильно без всяких инициализаций.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 23.07.2011, 00:21   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
так как в реальном ему не приходиться отвлекаться на переключение страниц дескрипторов
ему не придется делать это и в защищенном если не заставите
Цитата:
контролировать границы памяти (кода/даннах)
по сути они контролируются всегда.
Цитата:
и заниматься еще многим всем
это все многое включается самой ОС.
Цитата:
Из того что в real-mode можно изменить состояние управляющих регистров, не следует, что все разрешенные фичи будут доступны для real-mode софта.
а причем тут управляющие регистры? которые так же легко меняются на нулевом кольце в защищенном режиме.
Цитата:
Фичи - это защищенные режимы 32/64-bit
и что за бред? это не фича, это именно режим работы процессора.
Цитата:
Точно также как protected-32 имеет лишь ограниченный доступ к SSE, AVX.
имеет обычный доступ, не надо тут бред нести.
в нулевом кольце ограничений нет.
Цитата:
и включить
не нужно, они либо есть, либо нет.
обычно нужно инициализировать регистры данными и все.
Цитата:
если трансляция адресов есть, то скорость понизится.
если не включать страничность то и не будет её
Цитата:
А почему не должно сработать?
будет работать.
как в чистом защищенном на нулевом кольце, там и в винде на третьем.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 23.07.2011 в 00:28.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.07.2011, 00:57   #15
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
и что за бред?
наверно, люблю нести бред.

тут вспомнился анекдот:

Выходят три богатыря на холм и видят перед собой стотысячное войско.
Алеша Попович говорит: "Да, я сейчас своим мечом махну и половина войска ляжет".
Добрыня Никитич продолжает: "А свое копье метну и второй половины не станет".
Илья Муромец смотрит на все это дело и говорит: "Ну, что пацаны, попи3#4и? А теперь пора съеб#$ь отсюда".
f.hump вне форума Ответить с цитированием
Старый 23.07.2011, 01:37   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

кстати, насчет Intel System Programming Guide:
Цитата:
Intel® 64 and IA-32 Architectures Software Developer's Manual
Volume 3A: System Programming Guide, Part 1


Describes the operating-system support environment of an IA-32 and Intel 64 Architectures, including: memory management, protection, task management, interrupt and exception handling, multi-processor support, and thermal and power management features. This volume also contains the table of contents for both Volumes 3A and 3B.

Intel® 64 and IA-32 Architectures Software Developer's Manual
Volume 3B: System Programming Guide, Part 2


Continues the coverage on system programming subjects begun in Volume 3A. Volume 3B covers debugging, performance monitoring, system management mode, and Intel® VT. This volume also contains the appendices and indexing support for Volumes 3A and 3
9-ая глава я так понимаю к task management относится
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 23.07.2011 в 01:40.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.07.2011, 00:34   #17
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

task management - это глава 7.

глава 9 называется "PROCESSOR MANAGEMENT AND INITIALIZATION".
На всякий случай просмотрел текст между заголовками. Как я пониманию, в тектсте намекали на софтверную инициализацию, и в целом похоже на установку хинтов процессору, а не на включение/отключение разного, о котором я мечтал в начале.

Про нерабочий код, это я намекал на то, что архитектурно (IA64/amd64) xmm/ymm регистров 16, но в 32-битном (или реальном) режиме доступны только 8.
f.hump вне форума Ответить с цитированием
Старый 26.07.2011, 15:26   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Describes the operating-system support environment
это из описания.
Цитата:
Про нерабочий код, это я намекал на то, что архитектурно (IA64/amd64) xmm/ymm регистров 16, но в 32-битном (или реальном) режиме доступны только 8.
ну мне сейчас pdf оффициальный не открыть с инструкциями, потому не знаю доступен или нет.
но если недоступен, то оно не скомпилится тогда.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.07.2011, 15:52   #19
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

По-моему камень сам по себе тупой и чисто как АЛУ будет работать хоть с SSE, хоть с MMX - засунул число, получил результат, надо бы потестить.

Цитата:
не скомпилится
Ассемблером всё скомпилится
пыщь
JTG вне форума Ответить с цитированием
Старый 26.07.2011, 15:57   #20
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Ассемблером всё скомпилится
если инструкция недоступна в текущем режиме(16/32/64) то нет.
по крайней мере у FASM.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Самый быстрый браузер Marsel737 Софт 31 30.08.2010 01:09
Самый быстрый способ получить изображение в заданном прямоугольнике? TwiX Мультимедиа в Delphi 4 04.04.2010 10:08
Самый быстрый способ проверить прокси? TwiX Работа с сетью в Delphi 6 15.02.2010 22:41
Самый быстрый вид сортировки массива Warnes Свободное общение 42 06.12.2009 16:02
Предложите самый быстрый алгоритм! Gambler Общие вопросы Delphi 6 26.12.2006 22:44