![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
![]()
На MASM пишу не очень давно, но уже узрел насущную проблему - любая процедура так или иначе гадит после себя и за собой не убирает, приходится сохранять ESP EAX EBX ECX EDX перед каждым вызовом, неудобно, неприятно, и безумно путает код, но я не об этом. Иногда стандартных регистров почти не хватает для всего что нужно удержать в процессоре на момент вызова. Можно ли использовать вышеописанные регистры и команды, скажем для адресации по памяти, или хотя бы что б хранить в них значения базовых регистров?
PS: Так же интересует возможность сохранения EAX,EBX,ECX,EDX,ESP одной командой, 25 вызовов функций * 5 push *2 pop итого 250 лишних или не очень команд...
"Тяжело в учении, легко в бою" - А.В. Суворов
|
![]() |
![]() |
![]() |
#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 в конце. |
![]() |
![]() |
![]() |
#3 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
![]()
Недавно решил свою проблему: MMX - оказался именно тем что нужно, 8 64-битных регистров это просто подарок
![]() Такой вопрос, где найти внятную рускооязычную литературу по работе с SSE1-3 SSSE3 и самое важное - SSSE4.1 (процессор имеет поддержку этих команд, хочется опробовать)? На WASM-е нет, там только маленькая статья про SSE/SSE2.
"Тяжело в учении, легко в бою" - А.В. Суворов
|
![]() |
![]() |
![]() |
#4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
внятной русскоязычной литературы нет. есть только официальный мануал от Intel и AMD, но они на английском.
|
![]() |
![]() |
![]() |
#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 |