Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту


 
Опции темы
Непрочитано 03.03.2017, 12:45  
JonRembo
Частый гость
 
Регистрация: 11.01.2017
Сообщений: 22
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
JonRembo на пути к лучшему
По умолчанию Кто подскажет что делают подобные ассемблерные вставки?

Кто подскажет что делают подобные ассемблерные вставки?

И какую книжку полистать можно на эту тему?

Вот сама вставка
Код:
asm volatile("btsts.w %0,#0 \n bra nz,spi_busy_exit"::"U"(dac_flags.u2));
В датащите на dsPIC33F. Эта программа именно для него.
Например есть команды
BTSTS
BTSTS.C
BTSTS.Z
которые похожи на btsts.w но все же не она.
Да и остальное в этой вставке. Ни знаю где искать описание.

Или расскажите что и зачем.
Реклама:
JonRembo вне форума  
Непрочитано 03.03.2017, 13:11  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,523
Сказал спасибо: 160
Сказали Спасибо 1,529 раз(а) в 800 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Кто подскажет что делают подобные ассемблерные вставки?

.w это значит работа с 16-битными данными(word mode режим по умолчанию и .w не обязательно указывать)
Есть еще .b это значит работа с 8-битными данными(byte mode).

Можете глянуть 16-bit MCU and DSC Programmer’s Reference Manual по инструкциям и что они делают.

Последний раз редактировалось realid; 03.03.2017 в 13:25.
realid на форуме  
Непрочитано 03.03.2017, 17:12  
JonRembo
Частый гость
 
Регистрация: 11.01.2017
Сообщений: 22
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
JonRembo на пути к лучшему
По умолчанию Re: Кто подскажет что делают подобные ассемблерные вставки?

Сообщение от realid Посмотреть сообщение
Можете глянуть 16-bit MCU and DSC Programmer’s Reference Manual по инструкциям и что они делают.
В этом мануале нету ни слова об "spi_busy_exit" точнее даже самого слова нету.
Также #0 отсутствует. Есть только %0 \n на одной страничке в Example 6-1:
Additional Inline Functions. Но там ни слов зачем они там.
Абсолютно нигде в этом мануале нету :: и "U".

Короче книжечка большая но информация не полная.

Описано кое как bra nz и btsts.

Но из за отсутствия информации об упомянутых выше инструкциях. Разобрать что все таки делает эта вставка не представляется возможным.
JonRembo вне форума  
Непрочитано 03.03.2017, 17:25  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Кто подскажет что делают подобные ассемблерные вставки?

Вы чё, прикалываетесь? Дались вам эти на никому не нужные вставки. Вы чё, не отличаете ассемблерные команды от меток и прочей шалупони? Кусок асмовой вставки сродни надписи на заборе, не более. Хотите разобраться, грузите прогу полностью и пошагово разбирайтесь.
STM32F0 вне форума  
Непрочитано 03.03.2017, 18:48  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,523
Сказал спасибо: 160
Сказали Спасибо 1,529 раз(а) в 800 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Кто подскажет что делают подобные ассемблерные вставки?

Сообщение от JonRembo Посмотреть сообщение
В этом мануале нету ни слова об "spi_busy_exit" точнее даже самого слова нету.
Также #0 отсутствует. Есть только %0 \n на одной страничке в Example 6-1:
Additional Inline Functions. Но там ни слов зачем они там.
Абсолютно нигде в этом мануале нету :: и "U".

Короче книжечка большая но информация не полная.

Описано кое как bra nz и btsts.

Но из за отсутствия информации об упомянутых выше инструкциях. Разобрать что все таки делает эта вставка не представляется возможным.
Бегло пробежали? Все там нормально расписано по формату инструкций ассемблера и сами инструкции подробно расписаны, даже примеры есть. #0 это номер бита в регистре по адресу %0.
Цитата:
Bit ‘bit4’ in file register ‘f’ is tested and the complement of the tested bit is stored to the Zero flag in the STATUS register.
А вот по формату вставок в си смотрите мануал на компилятор, потому что в асме "U" нет.

То что во вставке на ассемблере будет выглядеть
btsts.w 0x0,#0 - проверка бита 0 в регистре 0
bra nz, spi_busy_exit - если флаг zero в статусном регистре не 0, то переход к метке spi_busy_exit
\n это просто перевод на новую строку

Последний раз редактировалось realid; 03.03.2017 в 18:58.
realid на форуме  
Сказали "Спасибо" realid
Dmitry_ (03.03.2017)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблерные вставки yellow87 Embedd С 22 22.10.2012 01:23


Часовой пояс GMT +4, время: 10:21.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot