Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Объявление переменной в IAR на асме
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Grubber
Разбираюсь в чужом коде, написанном в среде IAR. В проекте часть идентификаторов объявлены на ассембреле. Пользуюсь хелпом по асму от IAR. В коде есть строка
CODE
bufer DS16 32

Это равнозначно объявлению на Си
CODE
int bufer[32]
?
В док-ии написано что в директиве DS16 size_expr параметр означает число выделенных байт. Но меня посетили сомнения, подтвердите их или опровергните пожалуйста!
Xenia
Цитата(Grubber @ Aug 7 2013, 11:48) *
В док-ии написано что в директиве DS16 size_expr параметр означает число выделенных байт.

Нет, в документации (AssemblerReference) написано иное:

Цитата
Summary of assembler directives
...
DS Allocates space for 8-bit bytes. Data definition or allocation
DS16 Allocates space for 16-bit words. Data definition or allocation
DS24 Allocates space for 24-bit words. Data definition or allocation
DS32 Allocates space for 32-bit words. Data definition or allocation
DS8 Allocates space for 8-bit bytes. Data definition or allocation

Т.е. директива DS16 выделяет 16 бит, а не 8.
Grubber
Цитата
Т.е. директива DS16 выделяет 16 байт, а не 8.

вааще не понял

еще посмотрел подробнее в доке и нашел пример где ALIASом для DS16 является DS 2. директива DS 2 выделит 2 байта. Т.е. похоже что
Код
bufer     DS16    32
равнозначно на С
Код
int bufer[32]
Xenia
Цитата(Grubber @ Aug 7 2013, 13:21) *
вааще не понял
еще посмотрел подробнее в доке и нашел пример где ALIASом для DS16 является DS 2. директива DS 2 выделит 2 байта. Т.е. похоже что
Код
bufer     DS16    32
равнозначно на С
Код
int bufer[32]


Чего вы не поняли? DS (как и ее синоним DS8) - монета достоинством 8 копеек (битов), в DS16 - достоинством в два раза больше - 16 копеек (битов). Вам же надо заплатить за buffer 32x16 копеек (бит). Поэтому можно заплатить и так:
bufer DS 64
и так:
bufer DS16 32
и так:
bufer DS32 16
Все это будут одинаковые по цене платежи, но разными монетами.
Однако монетами достоинством в один элемент массива платить приятнее, т.к. тогда число монет будет равно числу элементов массива (не надо будет умножать или делить в уме). Именно для этой цели и создали более крупные по достоинству монеты DS16, DS24, DS32, номинал которых отражен в самом их названии.
Grubber
не понятно когда биты байтами называют angry.gif , а вопрос остается неотвеченным (вот и помогай нам, новичкам)
За второй ответ искренний СПС!
Ну что все всЁ деньгами меряют? ведь есть же другие меры: кошки, яблоки salmari.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.