реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Коственно-регистровая адресация в асме....
SasaVitebsk
сообщение Jan 25 2007, 13:00
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(IgorKossak @ Jan 25 2007, 12:08) *
Достаточно посмотреть листинг после компиляции с С или того же С++, чтобы убедиться насколько компактнее и быстрее получается код если применять косвенную адресацию.
При помощи этого типа адресации реализован метод оптимизации известный как "кластеризация переменных". В этом методе рядом расположенные переменные (в общем случае разных типов) рассматриваются как непрерывный массив (кластер) и доступ к ним организовывается косвенной адресацией с однократной установкой адреса начала кластера и дальнейшим доступом к переменным командами ldd/std. Преимущества этого метода перед lds/sts очевидны.
Фокус в том, что кластеризацию переменных полноценно может реализовать только компилятор, вручную писать таким образом чревато коварными ошибками, т. к. придётся опять же вручную отслеживать взаиморасположение переменных.


Я по первости когда просматривал листинг накак въехать не мог. smile.gif Дело в том, что при длительном программировании на ASMе НИ РАЗУ НЕ ИСПОЛЬЗОВАЛ данные инструкции (std/ldd) и смотрел на них с непониманием. Их использование у видел только в листинге компилятора и по первости не мог понять зачем.

Сейчас на Точке Опоры ветка есть "побайтное программирование на IAR", там один вопрос задаёт. Ну я написал ответ в виде одной строки на си. Ну и все пробуют эту строку под разными компиляторами. Изворачиваются, переменные переставляют. biggrin.gif Но такого кода по эффективности как IAR - ни один компилятор не предоставил. Ближайший - Image craft вроде. Выигрыш за счёт применения STD и MOVW. Да и вручную лучше не напишешь. smile.gif
Go to the top of the page
 
+Quote Post
dxp
сообщение Jan 25 2007, 13:22
Сообщение #17


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Potter @ Jan 25 2007, 04:24) *
Дело в том.... Что я практически в совершенстве владею прагроммированием МК на С++.

Ой, как удачно. Я давно хотел понять особенности реализации частичной специализации шаблонов указателей на МК, да все не у кого было спросить, а по книжкам сам не догоняю. Не поможете в этом? cheers.gif wink.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jan 25 2007, 13:54
Сообщение #18


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(dxp @ Jan 25 2007, 12:22) *
Цитата(Potter @ Jan 25 2007, 04:24) *

Дело в том.... Что я практически в совершенстве владею прагроммированием МК на С++.

Ой, как удачно. Я давно хотел понять особенности реализации частичной специализации шаблонов указателей на МК, да все не у кого было спросить, а по книжкам сам не догоняю. Не поможете в этом? cheers.gif wink.gif

Да будет Вам издеваться wink.gif
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th August 2025 - 16:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01407 секунд с 7
ELECTRONIX ©2004-2016