|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.11.2008, 03:41 | #1 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Регистры и команды i486 i586 i686 SSE MMX SSE2 etc в качестве альтернативы памяти.
На MASM пишу не очень давно, но уже узрел насущную проблему - любая процедура так или иначе гадит после себя и за собой не убирает, приходится сохранять ESP EAX EBX ECX EDX перед каждым вызовом, неудобно, неприятно, и безумно путает код, но я не об этом. Иногда стандартных регистров почти не хватает для всего что нужно удержать в процессоре на момент вызова. Можно ли использовать вышеописанные регистры и команды, скажем для адресации по памяти, или хотя бы что б хранить в них значения базовых регистров?
PS: Так же интересует возможность сохранения EAX,EBX,ECX,EDX,ESP одной командой, 25 вызовов функций * 5 push *2 pop итого 250 лишних или не очень команд...
"Тяжело в учении, легко в бою" - А.В. Суворов
|
28.11.2008, 15:33 | #2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
прочитай сначала это http://pblog.ru/?p=241 там написано про обычные команды работы с FPU, но с SSE MMX и прочим аналогично.
по идее можно в них сохранять данные, а зачем? Во-первых, они имеют другую размерность и внесении в них значений они конвертируются к нужный формат. например, в формат расширенной точности. Допустим у теюя в eax указатель в EAX, при внесении какого либо значения в такие регистры оно принимается как вещественное число и конвертируется. Например, значение EAX 012345678h будет не 305419896, а чем-то другим и притом дробным, например 5689.1603 в третьих есть замечательные команды pushad и popad, команда сохраняет/берёт все регистры из стека, и не надо 8 раз Push в начале и 8 раз pop в конце. |
30.05.2009, 04:57 | #3 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Недавно решил свою проблему: MMX - оказался именно тем что нужно, 8 64-битных регистров это просто подарок Все же быстрее чем вытаскивать из какой то там дальней памяти.
Такой вопрос, где найти внятную рускооязычную литературу по работе с SSE1-3 SSSE3 и самое важное - SSSE4.1 (процессор имеет поддержку этих команд, хочется опробовать)? На WASM-е нет, там только маленькая статья про SSE/SSE2.
"Тяжело в учении, легко в бою" - А.В. Суворов
|
30.05.2009, 08:24 | #4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
внятной русскоязычной литературы нет. есть только официальный мануал от Intel и AMD, но они на английском.
|
02.06.2009, 00:30 | #5 | |
Форумчанин
Регистрация: 02.04.2008
Сообщений: 358
|
Цитата:
удобно только если вы на них будите писать вычисления, а сохранять туда регистры это только через память, проще уж через стек
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666 mail: airyashov(а)inbox.ru |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Регистры символов | rexec | Microsoft Office Excel | 11 | 02.02.2009 13:15 |
Регистры | Манжосов Денис :) | Помощь студентам | 8 | 28.07.2008 12:48 |
Регистры | RealSHELS | Общие вопросы Delphi | 3 | 28.03.2008 18:56 |
Регистры | Elm0 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 13 | 10.02.2008 19:49 |