<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Программирование на ассемблере в файлах си - Разное				            </title>
            <link>https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/</link>
            <description>Обсуждение вопросов, посвященных программированию микроконтроллеров, разработке электроники и не только.</description>
            <language>ru-RU</language>
            <lastBuildDate>Tue, 15 Sep 2026 09:31:27 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>НА: Программирование на ассемблере в файлах си</title>
                        <link>https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2857</link>
                        <pubDate>Wed, 10 Jul 2024 07:34:49 +0000</pubDate>
                        <description><![CDATA[@eduard-3 Доброго времени!
Пропустил последнее сообщение, только увидел. Самый надежный вариант - в исходниках поиском найти ассемблерные вставки (в файлах HAL или CMSIS, например), там по ...]]></description>
                        <content:encoded><![CDATA[<p>@eduard-3 Доброго времени!</p>
<p>Пропустил последнее сообщение, только увидел. Самый надежный вариант - в исходниках поиском найти ассемблерные вставки (в файлах HAL или CMSIS, например), там по сути можно реальные примеры использования увидеть.</p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/raznoe/">Разное</category>                        <dc:creator>Aveal MT</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2857</guid>
                    </item>
				                    <item>
                        <title>НА: Программирование на ассемблере в файлах си</title>
                        <link>https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2849</link>
                        <pubDate>Fri, 05 Jul 2024 08:28:43 +0000</pubDate>
                        <description><![CDATA[@aveal  Конечно это не принципиально каким способом из двух последних что Вы предложили, но первый транслируется ассемблером в две инструкции а второй в три. Ваш ответ заработал, я проверил ...]]></description>
                        <content:encoded><![CDATA[@aveal  Конечно это не принципиально каким способом из двух последних что Вы предложили, но первый транслируется ассемблером в две инструкции а второй в три. Ваш ответ заработал, я проверил по листингу первый предложенный вариант, ассемблер вставил правильно адрес переменной. Спасибо Вам большое!!! Но где все эти премудрости, про смешанное программирование , можно прочитать чтобы не мыкаться впредь? Еще раз огромное спасибо!!!]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/raznoe/">Разное</category>                        <dc:creator>Эдуард</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2849</guid>
                    </item>
				                    <item>
                        <title>НА: Программирование на ассемблере в файлах си</title>
                        <link>https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2848</link>
                        <pubDate>Thu, 04 Jul 2024 12:20:03 +0000</pubDate>
                        <description><![CDATA[Если из принципиальных соображений надо сделать через адрес, то же самое:
uint32_t u32Value = 0x11223344;
uint32_t* address = &amp;u32Value;

__asm(&quot;LDR R4, %0 &quot; :: &quot;m&quot; (address));
__as...]]></description>
                        <content:encoded><![CDATA[<p>Если из принципиальных соображений надо сделать через адрес, то же самое:</p>
<pre contenteditable="false">uint32_t u32Value = 0x11223344;
uint32_t* address = &amp;u32Value;

__asm("LDR R4, %0 " :: "m" (address));
__asm("LDR R3, ");</pre>
618
<p> </p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/raznoe/">Разное</category>                        <dc:creator>Aveal MT</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2848</guid>
                    </item>
				                    <item>
                        <title>НА: Программирование на ассемблере в файлах си</title>
                        <link>https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2847</link>
                        <pubDate>Thu, 04 Jul 2024 12:10:37 +0000</pubDate>
                        <description><![CDATA[@eduard-3 Ну вот, объявил переменную в C:
uint32_t u32Value = 0x11223344;
Поместил ее значение в R3:
__asm(&quot;LDR R3, %0 &quot; :: &quot;m&quot; (u32Value));
В R3 значение 0x11223344, адрес не нужен.]]></description>
                        <content:encoded><![CDATA[<p>@eduard-3 Ну вот, объявил переменную в C:</p>
<pre contenteditable="false">uint32_t u32Value = 0x11223344;</pre>
<p>Поместил ее значение в R3:</p>
<pre contenteditable="false">__asm("LDR R3, %0 " :: "m" (u32Value));</pre>
<p>В R3 значение 0x11223344, адрес не нужен.</p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/raznoe/">Разное</category>                        <dc:creator>Aveal MT</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2847</guid>
                    </item>
				                    <item>
                        <title>НА: Программирование на ассемблере в файлах си</title>
                        <link>https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2846</link>
                        <pubDate>Thu, 04 Jul 2024 11:54:53 +0000</pubDate>
                        <description><![CDATA[@aveal Это что-то не то. В смотрите пример:
uint32_t  U_sr;                                //  определил переменную в си
__asm( &quot; ADR R4,#U_sr&quot; );             // загрузить в R4 адрес перем...]]></description>
                        <content:encoded><![CDATA[<p>@aveal Это что-то не то. В смотрите пример:</p>
<p>uint32_t  U_sr;                                //  определил переменную в си</p>
<p>__asm( " ADR R4,#U_sr" );             // загрузить в R4 адрес переменной U_sr. здесь компилятор дает ошибку он не понимает записи #U_sr ни &amp;U_sr  ни  _U_sr</p>
<p>__asm( " LDR R3,  " );         // загрузить в R3 значение находящуюся по адресу в R4</p>
<p>Вопрос: Как объявить переменную U_sr ,чтобы компилятор увидел метку U_sr в ассемблерной строке? Или может быть в ассемблере эту метку объявить так чтобы доступ к ней был и из ассемблера и из си?</p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/raznoe/">Разное</category>                        <dc:creator>Эдуард</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2846</guid>
                    </item>
				                    <item>
                        <title>НА: Программирование на ассемблере в файлах си</title>
                        <link>https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2845</link>
                        <pubDate>Thu, 04 Jul 2024 10:14:23 +0000</pubDate>
                        <description><![CDATA[@eduard-3 Приветствую! Так, а если такой вариант, навскидку:
uint32_t u32Value = 0x11223344;
__asm(&quot;LDR R3, %0 &quot; :: &quot;m&quot; (u32Value));]]></description>
                        <content:encoded><![CDATA[<p>@eduard-3 Приветствую! Так, а если такой вариант, навскидку:</p>
<pre contenteditable="false">uint32_t u32Value = 0x11223344;
__asm("LDR R3, %0 " :: "m" (u32Value));</pre>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/raznoe/">Разное</category>                        <dc:creator>Aveal MT</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2845</guid>
                    </item>
				                    <item>
                        <title>НА: Программирование на ассемблере в файлах си</title>
                        <link>https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2844</link>
                        <pubDate>Thu, 04 Jul 2024 06:49:38 +0000</pubDate>
                        <description><![CDATA[@aveal Спасибо! Сделал но не работает. Чтобы обратиться к переменной определенной в си из ассемблера необходимы две строки, поскольку 32-битное слово прямой загрузкой в рабочий регистр можно...]]></description>
                        <content:encoded><![CDATA[<p>@aveal Спасибо! Сделал но не работает. Чтобы обратиться к переменной определенной в си из ассемблера необходимы две строки, поскольку 32-битное слово прямой загрузкой в рабочий регистр можно осуществить только двумя инструкциями:</p>
<p>int32_t   U_sr_av;</p>
<p>__asm( " MOV  R0, #0x0248 " );               // загрузить в R0 младшие 16 бит адреса</p>
<p>__asm( " MOVT R0, #0x2000 " );              // загрузить в R0 старшие 16 бит адреса</p>
<p>__asm( " LDRH R3,  " );               // теперь загружаем в R3 переменную по адресу R0 с смещением ноль</p>
<p>Bместо числа #20000248 необходимо как-то вставить имя переменной которая определена в си, допустим  U_sr_av.</p>
<p>Я работаю в STM32CubIDE</p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/raznoe/">Разное</category>                        <dc:creator>Эдуард</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2844</guid>
                    </item>
				                    <item>
                        <title>НА: Программирование на ассемблере в файлах си</title>
                        <link>https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2843</link>
                        <pubDate>Fri, 21 Jun 2024 07:49:03 +0000</pubDate>
                        <description><![CDATA[Доброго времени суток! Так должно работать:
uint32_t myVariable = 0;
__asm volatile(&quot;MSR   PSPLIM, %0&quot; :: &quot;r&quot; (myVariable));]]></description>
                        <content:encoded><![CDATA[<p>Доброго времени суток! Так должно работать:</p>
<pre contenteditable="false">uint32_t myVariable = 0;
__asm volatile("MSR   PSPLIM, %0" :: "r" (myVariable));</pre>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/raznoe/">Разное</category>                        <dc:creator>Aveal MT</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2843</guid>
                    </item>
				                    <item>
                        <title>Программирование на ассемблере в файлах си</title>
                        <link>https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2842</link>
                        <pubDate>Fri, 21 Jun 2024 06:07:45 +0000</pubDate>
                        <description><![CDATA[Друзья! кто знает CubeIDE ?.. как можно обратиться в ассемблере к переменной определенной в си?...    Я вставляю куски программ написанные построчно на ассемблере в си файлы. Приходится посл...]]></description>
                        <content:encoded><![CDATA[<p>Друзья! кто знает CubeIDE ?.. как можно обратиться в ассемблере к переменной определенной в си?...    Я вставляю куски программ написанные построчно на ассемблере в си файлы. Приходится после компиляции программы смотреть в файле xxxx.map адрес переменной, куда ее расположил линк, и вставлять в ассемблерный код. И всякий раз после изменения программы, если добавляются переменные, линк по другому располагает их в памяти и приходится снова смотреть xxxx.map и снова корректировать в ассемблере место где обращение к этой переменной. Кто знает как обратиться к переменной определенной в си, из inline ассемблера?</p>
<p> </p>]]></content:encoded>
						                            <category domain="https://microtechnics.ru/community/raznoe/">Разное</category>                        <dc:creator>Эдуард</dc:creator>
                        <guid isPermaLink="true">https://microtechnics.ru/community/raznoe/programmirovanie-na-assemblere-v-fajla-si/#post-2842</guid>
                    </item>
							        </channel>
        </rss>
		