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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2014, 16:17   #1
AlexVI
Пользователь
 
Регистрация: 25.11.2006
Сообщений: 40
По умолчанию переделать с С++ на ассм. вставку

есть кусок когда на С++ как организовать правильно (ту часть где цикл) его как ассемблеровская вставка


Код:
 
int N; N = 4080; //целое число
float llrp1[4080]; // флоат массив
struct parent_node {
    int size; // имеет целочисленное значения допустим 22
    int index[22];                     // indexes of children
    float pi1[22];             // messages "pi" to children
    };
struct parent_node code_node[4080];


for (i=0; i<N; i++)                         // run over code nodes
 {
    for (j=0; j<code_node[i].size; j++)       // run over check nodes
    {
      code_node[i].pi1[j] = llrp1[i];
    }
 }

Последний раз редактировалось AlexVI; 18.07.2014 в 16:30.
AlexVI вне форума Ответить с цитированием
Старый 18.07.2014, 19:10   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

1) Запустить компилятор с опцией генерации ASM
2) Profit

А смысл в чем? Думаете будет работать быстрее?
waleri вне форума Ответить с цитированием
Старый 18.07.2014, 21:56   #3
AlexVI
Пользователь
 
Регистрация: 25.11.2006
Сообщений: 40
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
1) Запустить компилятор с опцией генерации ASM
2) Profit

А смысл в чем? Думаете будет работать быстрее?
Да, хочу переделать декодер. Заменить более медленные (в плане арифметики и переборов) участки кода.

1. А что такое Profit ?
AlexVI вне форума Ответить с цитированием
Старый 19.07.2014, 00:37   #4
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

структура parent_node впечатляет.

это не вставка, просто мысль, никаких гарантий

Код:
LEA rbx, [code_node]
LEA rsi, [llrp1]
MOV edx, [N]

n_loop:
    LODSD

    MOV ecx, [rbx]

    LEA rdi, [rbx+22*4+4]
    LEA rbx, [rbx+22*8+4]

    REP STOSD

DEC rdx
JNZ n_loop

Последний раз редактировалось f.hump; 19.07.2014 в 00:42.
f.hump вне форума Ответить с цитированием
Старый 19.07.2014, 00:41   #5
AlexVI
Пользователь
 
Регистрация: 25.11.2006
Сообщений: 40
По умолчанию

еще варианты есть, коллеги ?
AlexVI вне форума Ответить с цитированием
Старый 19.07.2014, 08:08   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от AlexVI Посмотреть сообщение
Заменить более медленные (в плане арифметики и переборов) участки кода.
Плохой алгоритм написанный на микрокоде не становится хорошим алгоритмом.
Единственное место, где вы сможете добиться существенного ускорения это там, где можно применить SIMD инструкции но даже и для них не нужен ассемблер - у современных компиляторов есть intrinsic функции.

@f.hump
Надо загружать в EAX что будем записывать - сейчас у вас загружается адрес от куда надо взять данные.
waleri вне форума Ответить с цитированием
Старый 19.07.2014, 09:34   #7
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

2waleri неужели
Цитата:
LODSD: For legacy mode, Load dword at address (E)SI into EAX. For 64-bit mode load dword
at address (R)SI into EAX.
f.hump вне форума Ответить с цитированием
Старый 19.07.2014, 12:10   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

my bad
Не увидел LODSB в начало...
waleri вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрет на вставку, на специальную вставку Аслан Абдрахманов Microsoft Office Excel 11 11.02.2014 10:21
Макрос на вставку строк dirih Microsoft Office Excel 7 28.06.2013 16:19
макрос на вставку строк hakervanya Microsoft Office Excel 11 25.09.2012 19:30
И опять про вставку картинок Even Microsoft Office Excel 8 27.10.2010 11:47
ассм Александе еть я Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 04.04.2010 19:44