Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ILYAUL »

MS24 писал(а):Да с СИ я достаточно хорошо знаком. Просто условие диплома написать на асемблере.


Так напишите на Си ,компильните asm - вот Вам и диплом.
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение MS24 »

ILYAUL писал(а):Так напишите на Си ,компильните asm - вот Вам и диплом.

Это как? ))
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Alexeyslav »

А как он потом будет объяснять плоский код без комментариев и структуры? Нет, пожалуй такую программу сдавать будет слишком палевно.
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ILYAUL »

Alexeyslav писал(а):А как он потом будет объяснять плоский код без комментариев и структуры? Нет, пожалуй такую программу сдавать будет слишком палевно.

Как предыдущий дипломник , код которого ему и подпихнули. Повидимому он его тоже писал за днь до диплома . Либо сесть и изучить asm
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение MS24 »

Ребят, ASM не вызывает во мне ужаса, я уж за свою жизнь привык изучать вещи которые мне нужны на один раз )) Мне просто не понятно. я написал программу, сам составил схему, сам спаял работающую плату, на это мне сказали лишь, что это слишко м просто, ты должен изучить работу всего микроконтроллера, понять все как работает и програ должна быть на асемблерре. На си никак не подходит. Вот начрук и заставляет меня именно с этой прошивкой мучатся (
tviktor
Родился
Сообщения: 12
Зарегистрирован: Пн дек 14, 2009 07:06:51

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение tviktor »

Помогите разобраться
VendorStringDescriptor:
.db (VendorStringDescriptorEnd-VendorStringDescriptor)*4-2,3
VendorStringDescriptorEnd:
Как понимать выражение в скобках?
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Alexeyslav »

Как число вычисляемое из констант.
tviktor
Родился
Сообщения: 12
Зарегистрирован: Пн дек 14, 2009 07:06:51

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение tviktor »

VendorStringDescriptorEnd- нет такой константы, это метка
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ploop »

А какая разница? Метка - такая же константа (число)
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение MS24 »

Ребят. может кто нибудь объяснить?
ldi ZH,high(data*2)
ldi ZL,low(data*2)
ldi XH,high(0x0100)
ldi YH,high(0x0100)
ldi XL,low(0x0100)
ldi temp,0x0c

load:
lpm
st X+,R0
adiw ZL,0x01
dec temp
brne load
ldi XH,high(0x0100)
ldi XL,low(0x0100)
data:
.db 0x15,0x24,0x36,0x42,0x53,0x01,0x71,0x83,0x92,0xA6,0xB4,0x65
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ILYAUL »

Из Flash загружается SRAM
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение MS24 »

ILYAUL писал(а):Из Flash загружается SRAM

а поподробнее можно, как это работает? ))
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Engineer_Keen »

Код: Выделить всё

   ldi      ZH,high(data*2)      ;загрузка адреса флеша в Z регистр
   ldi      ZL,low(data*2)
   ldi      XH,high(0x0100)        ;загрузка адреса ОЗУ в X регистр
   ldi      YH,high(0x0100)        ;и зачем-то в Y...
   ldi      XL,low(0x0100)
   ldi      temp,0x0c                 ;видимо количество байт (счетчик)
load:                  ;цикл копирования данных из флеша в ОЗУ
   lpm       ;загрузка из флеша (адрес в Z) в R0               
   st      X+,R0 ;сохранение в ОЗУ (адрес в Х, пост инкремент)                 
   adiw                 ZL,0x01 ;инкремент адреса в Z             
   dec      temp ;уменьшаем счетчик байт
   brne                  load ;цикл пока счетчик не обнулился            
   ldi      XH,high(0x0100) ;восстанавливаем X
   ldi      XL,low(0x0100)
data:
.db 0x15,0x24,0x36,0x42,0x53,0x01,0x71,0x83,0x92,0xA6,0xB4,0x65 ;а это константа во флеше, которую и копируют в ОЗУ
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение MS24 »

О спаибо вам великий мудрый кот!!! Никак в асемблере не могу разобраться ) На си все гораздо проще )
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение MS24 »

а зачем писать data*2 ???
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ploop »

Флеш адресуется по словам (по 2 байта)
tviktor
Родился
Сообщения: 12
Зарегистрирован: Пн дек 14, 2009 07:06:51

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение tviktor »

ploop писал(а):А какая разница? Метка - такая же константа (число)

А как узнать числовое значение данных меток?
Для чего так сделали ,не проще былобы взять константу?
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение shads »

MS24 писал(а):Никак в асемблере не могу разобраться ) На си все гораздо проще )

Да я бы не сказал, скорее это зависит от того на что вначале присел..... Вот мне так кажется что ассемблер намного легче (килобайты отскакивают тока так) а в Си еще те заморочки бывают.....
Вот то что мне помогло, глянь, вдруг прорыв произойдет.....
http://www.nikolaew.org/avr_old/u3.htm
http://www.nikolaew.org/avr_old/u4.htm
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ploop »

А как узнать числовое значение данных меток?

А для каких целей? Можно посмотреть в выходном файле компилятора (обычно .list файл).

Конкретно в этом примере вторая метка нужна для того, чтобы вычислить объём кода между ними:
VendorStringDescriptorEnd-VendorStringDescriptor
Т.е. компилятор молча вычислит это и превратит в число, и вручную вычислять ничего не придётся.

Поясню:

Код: Выделить всё

1. .db (VendorStringDescriptorEnd-VendorStringDescriptor)*4-2,3 
2. .db (VendorStringDescriptorEnd-VendorStringDescriptor)*4-2,3,4,5,6,7

Если где-то в коде читаются даннные с метки VendorStringDescriptor, то надо точно знать, сколько байт читать. А тут, сколько байт читать уже записано в первом байте. И если дописать что-то, как я дописал во второй строке, код переделывать не придётся вообще.
Получились зачатки простейшей одноклеточной файловой системы.
MS24
Нашел транзистор. Понюхал.
Сообщения: 172
Зарегистрирован: Пн мар 19, 2012 13:04:11

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение MS24 »

Ребят, я пишу программу для работы шагового двигателя, мне препод дал исходник другого студента, который зачем-то выводит в порт вот такие вот значениея, вы не можете мне объяснить что это вооще такое?
.db 0x15,0x24,0x36,0x42,0x53,0x01,0x71,0x83,0x92,0xA6,0xB4,0x65
Ответить

Вернуться в «AVR»