token1993 0 28 апреля, 2021 Опубликовано 28 апреля, 2021 · Жалоба Здравствуйте. Не могу понять что означает команда _ASM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Smen 3 28 апреля, 2021 Опубликовано 28 апреля, 2021 · Жалоба Вероятно ассемблерную вставку (точнее, без исходных данных, ничего сказать нельзя). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
token1993 0 28 апреля, 2021 Опубликовано 28 апреля, 2021 · Жалоба Ну например вот команда что тут обозначает _ASM? _ ASM ("MOV RO, #0x05"); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Smen 3 28 апреля, 2021 Опубликовано 28 апреля, 2021 · Жалоба 16 минут назад, token1993 сказал: что тут обозначает ПО ВСЕЙ ВИДИМОСТИ: запись константы в регистр R0 (а не RO). Ещё раз повторяю: давайте полные исходные данные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 28 апреля, 2021 Опубликовано 28 апреля, 2021 · Жалоба 28 минут назад, token1993 сказал: Ну например вот команда что тут обозначает _ASM? _ ASM ("MOV RO, #0x05"); Зависит от того - на каком заборе вы это прочитали. И почему "команда"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrBearManul 0 28 апреля, 2021 Опубликовано 28 апреля, 2021 · Жалоба 57 минут назад, token1993 сказал: Не могу понять что означает команда _ASM. Это не команда. Это директива, позволяющая в текст на ЯВУ вставить строки на языке низкого уровня. Сами команды, такие, как MOV/MOW/LDR и т.п. описаны в технической документации на архитектуру и микроархитектуру процессора, вставленного в ваш микроконтроллер. Для справки: микроконтроллер = микропроцессор + память + ввод/вывод. Сама документация ищется на сайте arm.com. / 45 минут назад, token1993 сказал: Ну например вот команда что тут обозначает _ASM? _ ASM ("MOV RO, #0x05"); Занести в регистр константу 0x05. И, в зависимости от архитектуры, обновить слово состояния процессора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Smen 3 28 апреля, 2021 Опубликовано 28 апреля, 2021 · Жалоба 1 час назад, MrBearManul сказал: на сайте arm.com С чего Вы взяли, что речь об АРМах? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
forummailandlogin 0 28 апреля, 2021 Опубликовано 28 апреля, 2021 · Жалоба 5 минут назад, Smen сказал: С чего Вы взяли, что речь об АРМах? Связь прослеживается между темами автора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrBearManul 0 28 апреля, 2021 Опубликовано 28 апреля, 2021 · Жалоба 16 минут назад, Smen сказал: С чего Вы взяли, что речь об АРМах? Интуиция. Я ей верю. А вы своей? Ну, а если проще, то я просто предположил, что это ARM. Уж слишкмо часто для них сейчас пишут. Это раз. Мимоходом видел другие топики автора. Это два. И... да, снова интуиция. Это три. Учитывая, что автор задаёт такой простой вопрос, и неудосужился почитать первое же попавшееся объяснение в инете, ему всё равно. Могу сказатьь, что на ум придёт. Это четыре. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Smen 3 28 апреля, 2021 Опубликовано 28 апреля, 2021 · Жалоба 12 минут назад, MrBearManul сказал: Могу сказатьь, что на ум придёт Ну, да, тема "тянет" на флудовую. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 28 апреля, 2021 Опубликовано 28 апреля, 2021 · Жалоба 30 минут назад, Smen сказал: С чего Вы взяли, что речь об АРМах? Явно не об ARM-ах, потому что в ARM-ах нет регистра RO, в ARM-ах есть только R0. 2 часа назад, token1993 сказал: _ ASM ("MOV RO, #0x05"); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mosagepa 0 26 апреля, 2022 Опубликовано 26 апреля, 2022 · Жалоба _ASM (normally you'd find it lowercase) delimits a region (bunch of lines) within your C code or such, in which you write code in the form known as "inline assembler". This means using the assembly instruction set of the underlying architecture, chip, microprocessor or microcontroller. The syntax used to do that, as well as the addressing modes and such details, will be found in the reference guide/s (if any) for the programming environment, the compiler, the (C) language reference, or a combination of those sources for the environment you're using. From a practical point of view, inline assembler helps optimizing sections of critical code, and in summary you are getting the "best of both worlds" when mixing C and assembly. Give it a try whenever you find an application or routine that would benefit from it. Better off, write a couple of assembly programs (meaning 100% in assembler) thus learning in the process the details of both ASM and the system tools involved (assembler, linker, library management, and these tools' interactions with each other). You'll never regret! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ДЕЙЛ 31 24 мая, 2022 Опубликовано 24 мая, 2022 · Жалоба On 4/28/2021 at 9:25 AM, token1993 said: Ну например вот команда что тут обозначает _ASM? _ ASM ("MOV RO, #0x05"); Обычная вставка в код ассемблерной инструкции. Применяется в критических участках программ, где требуется максимальное быстродействие, например в тех участках кода, которые используются чаще всего. Это было актуально в стародавние времена, а сейчас компиляторы сами всё хорошо понимают и оптимизируют. Есть смысл применять данные инструкции при написании драйверов для работы непосредственно с железом, но и здесь тоже лучше использовать язык Си. Про ассемблер хорошо написано здесь. Для ознакомления самое то. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться