Easyelectronics.ru

Электроника для всех
Текущее время: 01 ноя 2020, 06:38

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Непонятная команда на Асемблере
СообщениеДобавлено: 29 янв 2010, 01:31 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 27 янв 2010, 18:02
Сообщения: 108
Разбираю по кусочкам асемблерный код первой учебной программы DI-HALTа. Наткнулся на вот этот
кусок:

; Собственно код начинается отсюда
.CSEG
.ORG 0x0000

Не могу понять, что оно делает. Встроеная справка AVR Studio молчит по поводу слов CSEG и ORG.
Что они делают, зачем.
Обьясните пожалуйста.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Непонятная команда на Асемблере
СообщениеДобавлено: 29 янв 2010, 01:36 
Супермодератор
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:08
Сообщения: 7549
Откуда: Алма-ата
Это не команды, а директивы ассемблера.
.CSEG
Начало сегмента кода программы.

.ORG 0x0000
Следующая команда должна быть помещена по указанному адресу (0x0000).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Непонятная команда на Асемблере
СообщениеДобавлено: 29 янв 2010, 01:44 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 26 янв 2010, 23:02
Сообщения: 57
Директива CSEG
Цитата:
CSEG - Программный сегмент
Директива CSEG определяет начало программного сегмента. Исходный файл может состоять из нескольких программных сегментов, которые объединяются в один программный сегмент при компиляции. Программный сегмент является сегментом по умолчанию. Программные сегменты имеют свои собственные счётчики положения которые считают не побайтно, а по словно. Директива ORG может быть использована для размещения кода и констант в необходимом месте сегмента. Директива CSEG не имеет параметров.

Деректива ORG - Установить положение в сегменте
Цитата:
Директива ORG устанавливает счётчик положения равным заданной величине, которая передаётся как параметр. Для сегмента данных она устанавливает счётчик положения в SRAM (ОЗУ), для сегмента программ это программный счётчик, а для сегмента EEPROM это положение в EEPROM. Если директиве предшествует метка (в той же строке) то метка размещается по адресу указанному в параметре директивы. Перед началом компиляции программный счётчик и счётчик EEPROM равны нулю, а счётчик ОЗУ равен 32 (поскольку адреса 0-31 заняты регистрами). Обратите внимание что для ОЗУ и EEPROM используются побайтные счётчики а для программного сегмента - пословный.

есть переведенная на русский справка ASM AVR-
название "Справка по Ассемблеру для AVR"
я брал на http://www.atmel.ru, в интернете и в виде pdf встречается, прикрепить некуда здесь, не найдешь, куда нибудь закину.
ps нашел справочник
http://www.atmel.ru/Articles/Atmel11.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Непонятная команда на Асемблере
СообщениеДобавлено: 29 янв 2010, 01:51 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 27 янв 2010, 18:02
Сообщения: 108
Всем спасибо за оперативное реагирование. Смысл ясен. Вопрос снят.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: wyfinger


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB