Перейти к содержанию
    

Что означает _ASM в коде

Вероятно ассемблерную вставку (точнее, без исходных данных, ничего сказать нельзя).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 минут назад, token1993 сказал:

что тут обозначает

ПО ВСЕЙ ВИДИМОСТИ: запись константы в регистр R0 (а не RO).

Ещё раз повторяю: давайте полные исходные данные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

28 минут назад, token1993 сказал:

Ну например вот команда что тут обозначает _ASM? 

 _ ASM ("MOV RO, #0x05"); 

Зависит от того - на каком заборе вы это прочитали. И почему "команда"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

57 минут назад, token1993 сказал:

Не могу понять что означает команда _ASM. 

Это не команда. Это директива, позволяющая в текст на ЯВУ вставить строки на языке низкого уровня. Сами команды, такие, как MOV/MOW/LDR и т.п. описаны в технической документации на архитектуру и микроархитектуру процессора, вставленного в ваш микроконтроллер. Для справки: микроконтроллер = микропроцессор + память + ввод/вывод. Сама документация ищется на сайте arm.com.

/

45 минут назад, token1993 сказал:

Ну например вот команда что тут обозначает _ASM? 

 _ ASM ("MOV RO, #0x05"); 

Занести в регистр константу 0x05. И, в зависимости от архитектуры, обновить слово состояния процессора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, MrBearManul сказал:

на сайте arm.com

С чего Вы взяли, что речь об АРМах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, Smen сказал:

С чего Вы взяли, что речь об АРМах?

Связь прослеживается между темами автора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 минут назад, Smen сказал:

С чего Вы взяли, что речь об АРМах?

Интуиция. Я ей верю. А вы своей?

Ну, а если проще, то я просто предположил, что это ARM. Уж слишкмо часто для них сейчас пишут. Это раз. Мимоходом видел другие топики автора. Это два. И... да, снова интуиция. Это три. Учитывая, что автор задаёт такой простой вопрос, и неудосужился почитать первое же попавшееся объяснение в инете, ему всё равно. Могу сказатьь, что на ум придёт. Это четыре.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 минут назад, MrBearManul сказал:

Могу сказатьь, что на ум придёт

Ну, да, тема "тянет" на флудовую. :yes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 минут назад, Smen сказал:

С чего Вы взяли, что речь об АРМах?

Явно не об ARM-ах, потому что в ARM-ах нет регистра RO, в ARM-ах есть только R0.   :wink:

2 часа назад, token1993 сказал:

_ ASM ("MOV RO, #0x05");

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

_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!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 4/28/2021 at 9:25 AM, token1993 said:

Ну например вот команда что тут обозначает _ASM? 

 _ ASM ("MOV RO, #0x05"); 

Обычная вставка в код ассемблерной инструкции. Применяется в критических участках программ, где требуется максимальное быстродействие, например в тех участках кода, которые используются чаще всего. Это было актуально в стародавние времена, а сейчас компиляторы сами всё хорошо понимают и оптимизируют. Есть смысл применять данные инструкции при написании драйверов для работы непосредственно с железом, но и здесь тоже лучше использовать язык Си. Про ассемблер хорошо  написано здесь. Для ознакомления самое то. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...