Ассемблерная вставка в FLProg
-
- Сержант
- Сообщения: 195
- Зарегистрирован: 07 янв 2024, 12:43
- Имя: Дмитрий
- Благодарил (а): 23 раза
- Поблагодарили: 35 раз
Ассемблерная вставка в FLProg
Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:01, всего редактировалось 1 раз.
- fefar51702
- Сержант
- Сообщения: 248
- Зарегистрирован: 26 июн 2022, 07:35
- Имя: Валера
- Благодарил (а): 1 раз
- Поблагодарили: 5 раз
Re: Ассемблерная вставка в FLProg
так компилит
Код: Выделить всё
bool I1_264253028_1 = false;
bool I2_264253028_1 = false;
bool O_264253028_1 = false;
void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, OUTPUT);
}
void loop() {
I1_264253028_1 = digitalRead(2);
I2_264253028_1 = digitalRead(3);
asm volatile (
"lds r24, %[input1] \n\t"
"lds r25, %[input2] \n\t"
"and r24, r25 \n\t"
"sts %[output], r24 \n\t"
:
: [input1] "m" (I1_264253028_1),
[input2] "m" (I2_264253028_1),
[output] "m" (O_264253028_1)
: "r24", "r25"
);
digitalWrite(4, O_264253028_1);
}
-
- Сержант
- Сообщения: 195
- Зарегистрирован: 07 янв 2024, 12:43
- Имя: Дмитрий
- Благодарил (а): 23 раза
- Поблагодарили: 35 раз
Re: Ассемблерная вставка в FLProg
Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:01, всего редактировалось 2 раза.
-
- Сержант
- Сообщения: 195
- Зарегистрирован: 07 янв 2024, 12:43
- Имя: Дмитрий
- Благодарил (а): 23 раза
- Поблагодарили: 35 раз
Re: Ассемблерная вставка в FLProg
Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:01, всего редактировалось 1 раз.
- fefar51702
- Сержант
- Сообщения: 248
- Зарегистрирован: 26 июн 2022, 07:35
- Имя: Валера
- Благодарил (а): 1 раз
- Поблагодарили: 5 раз
Re: Ассемблерная вставка в FLProg
это снова решили поднять вопрос о вдохнуть жизнь больших проектов в маленькие мк ?
ну на асемблере вы может и понаделаете блоки которые пошустрее будут и полегче но они же спецефичные под мк заточены будут
а экоинс борется за многоплатформеность и ваша тематика как и предыдущие останется попытки других
обьём тот же потомучто это не чистый асемблер а лиш вставки без всяких регистров и оптимизаций
ну на асемблере вы может и понаделаете блоки которые пошустрее будут и полегче но они же спецефичные под мк заточены будут
а экоинс борется за многоплатформеность и ваша тематика как и предыдущие останется попытки других
обьём тот же потомучто это не чистый асемблер а лиш вставки без всяких регистров и оптимизаций
-
- Сержант
- Сообщения: 195
- Зарегистрирован: 07 янв 2024, 12:43
- Имя: Дмитрий
- Благодарил (а): 23 раза
- Поблагодарили: 35 раз
Re: Ассемблерная вставка в FLProg
Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:01, всего редактировалось 1 раз.
Re: Ассемблерная вставка в FLProg
а для чего это нужно?dstrufanov писал(а): 20 мар 2025, 10:53Попробовал. Да, компилируется. Объем получается почти такой же, как у штатного блока 2И. Надо пробовать еще сделать входы и выход на ассемблере, только разобраться бы в этом китайском синтаксисе![]()
в чем профит?
-
- Сержант
- Сообщения: 195
- Зарегистрирован: 07 янв 2024, 12:43
- Имя: Дмитрий
- Благодарил (а): 23 раза
- Поблагодарили: 35 раз
Re: Ассемблерная вставка в FLProg
Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:01, всего редактировалось 1 раз.
- fefar51702
- Сержант
- Сообщения: 248
- Зарегистрирован: 26 июн 2022, 07:35
- Имя: Валера
- Благодарил (а): 1 раз
- Поблагодарили: 5 раз
Re: Ассемблерная вставка в FLProg
асемблер это несовсем ко мне
я с ним знаком самоучкой во времена когда нам ещё пытались в голову запихать мёртвый бейсик когда в других технарях уже паскаль крутили
мне больше с++ но и то по интересующей меня тематики какого нить проекта углубиться
вы выдернули кусок асемблера связь переменных с памятью
м потомучто лежит в памяти если было р то в регистре
в конце потомучто структура такая написания
пустое потомучто туда надо было запихать выходной операнд из входных
я с ним знаком самоучкой во времена когда нам ещё пытались в голову запихать мёртвый бейсик когда в других технарях уже паскаль крутили
мне больше с++ но и то по интересующей меня тематики какого нить проекта углубиться
вы выдернули кусок асемблера связь переменных с памятью
м потомучто лежит в памяти если было р то в регистре
в конце потомучто структура такая написания
пустое потомучто туда надо было запихать выходной операнд из входных
-
- Сержант
- Сообщения: 195
- Зарегистрирован: 07 янв 2024, 12:43
- Имя: Дмитрий
- Благодарил (а): 23 раза
- Поблагодарили: 35 раз
Re: Ассемблерная вставка в FLProg
Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:02, всего редактировалось 3 раза.
-
- Сержант
- Сообщения: 195
- Зарегистрирован: 07 янв 2024, 12:43
- Имя: Дмитрий
- Благодарил (а): 23 раза
- Поблагодарили: 35 раз
Re: Ассемблерная вставка в FLProg
Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:02, всего редактировалось 1 раз.
- Phazz
- Полковник
- Сообщения: 3109
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 228 раз
- Поблагодарили: 107 раз
Re: Ассемблерная вставка в FLProg
Занимают байт.dstrufanov писал(а): 20 мар 2025, 13:38 Кстати, кто-нибудь в курсе как в FLProg хранятся булевы переменные? Они занимают байт, слово? Хранятся в младшем бите?
- fefar51702
- Сержант
- Сообщения: 248
- Зарегистрирован: 26 июн 2022, 07:35
- Имя: Валера
- Благодарил (а): 1 раз
- Поблагодарили: 5 раз
Re: Ассемблерная вставка в FLProg
в чистом после ставится
тут перед
а поповоду уменьшить память то я делал себе блок на меморифри и он мне слал в монитор порта оставшуюся память оперативы
и так контролируя её после каждого именения кода выбирал альтернативные участки которые менее её пожирают ну или старался их обойти
у меня была задумка как то большой текст хранить в епроме всё таки 1кб халявы а вызывать его только помере необходимости и в моменты несильно нагруженой памяти но пока не до неё но в процессе обдумывания находится
тут перед
а поповоду уменьшить память то я делал себе блок на меморифри и он мне слал в монитор порта оставшуюся память оперативы
и так контролируя её после каждого именения кода выбирал альтернативные участки которые менее её пожирают ну или старался их обойти
у меня была задумка как то большой текст хранить в епроме всё таки 1кб халявы а вызывать его только помере необходимости и в моменты несильно нагруженой памяти но пока не до неё но в процессе обдумывания находится
- fefar51702
- Сержант
- Сообщения: 248
- Зарегистрирован: 26 июн 2022, 07:35
- Имя: Валера
- Благодарил (а): 1 раз
- Поблагодарили: 5 раз
Re: Ассемблерная вставка в FLProg
да и вообще подумываю создать блок который бы следил за утечкой оперативной памяти из за дырявого кода а там уже решать обход что вызвало её
- Phazz
- Полковник
- Сообщения: 3109
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 228 раз
- Поблагодарили: 107 раз
Re: Ассемблерная вставка в FLProg
Сделать такой блок не сложно совсем. А вот найти почему утекает, это задача посложнееfefar51702 писал(а): 20 мар 2025, 15:41 да и вообще подумываю создать блок который бы следил за утечкой оперативной памяти из за дырявого кода а там уже решать обход что вызвало её
- fefar51702
- Сержант
- Сообщения: 248
- Зарегистрирован: 26 июн 2022, 07:35
- Имя: Валера
- Благодарил (а): 1 раз
- Поблагодарили: 5 раз
Re: Ассемблерная вставка в FLProg
но подождите мы же говорим о постепенном написании кода и постоянным мониторингом
и как всё поплыло то откатываемся и проверям по новой и пробуем обойти этот момент альтернативой
там вроде как от стринга она начинает дырявиться упоминалось что лучшим решением использовать чар вместо стринг ибо фиксировано будет чем динамически да ещё с фрагментацией
и как всё поплыло то откатываемся и проверям по новой и пробуем обойти этот момент альтернативой
там вроде как от стринга она начинает дырявиться упоминалось что лучшим решением использовать чар вместо стринг ибо фиксировано будет чем динамически да ещё с фрагментацией
-
- Сержант
- Сообщения: 195
- Зарегистрирован: 07 янв 2024, 12:43
- Имя: Дмитрий
- Благодарил (а): 23 раза
- Поблагодарили: 35 раз
Re: Ассемблерная вставка в FLProg
Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:02, всего редактировалось 1 раз.
- Phazz
- Полковник
- Сообщения: 3109
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 228 раз
- Поблагодарили: 107 раз
Re: Ассемблерная вставка в FLProg
А как меняется расход памяти при увеличении количества блоков?dstrufanov писал(а): 21 мар 2025, 19:22 Сделал блоки входов и выхода на ассемблере:
asm_and.png
Схема 2И на асме занимает 534 байта памяти программ и 15 байт ОЗУ, схема 2И на штатных блоках занимает 942 байта памяти программ и 9 байт ОЗУ:
flp_and.png
-
- Сержант
- Сообщения: 195
- Зарегистрирован: 07 янв 2024, 12:43
- Имя: Дмитрий
- Благодарил (а): 23 раза
- Поблагодарили: 35 раз
Re: Ассемблерная вставка в FLProg
Сообщение удалено
Последний раз редактировалось dstrufanov 13 июн 2025, 23:21, всего редактировалось 1 раз.
Кто сейчас на конференции
Сейчас этот форум просматривают: mrGoReC и 4 гостя