Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Продолжение >>

Отправлено VasilyS (80.92.96.25) 08 мая 2010, г. 10:37
В ответ на: Теперь во что превратился овёс, когда он прошел через корову,(во что превратит это компилятор) и как полученный код будет крутиться в МК. Пример - чисто примерный. >> отправлено VasilyS 08 мая 2010, г. 10:13

;----- *ptr = 7 -----(Регистры Z у нас пока смотрят на ptr)
ld r16, Z ; а в ptr у нас &Massiv[0].
ld r17, Z+1
movw r30,r16 ; теперь Z смотрит на Massiv[0]
ldi r16, 7
st Z, r16
ldi r16,0
st Z+1, r16 ; 0007 загнали в Massiv[0]
;------ ptr += 4; Переместить ptr на 8 байт. Старое значение забыть.
ldi r30,10 ; беру ptr
ldi r31,0
ld r16, Z
ld r17, Z+1
adiw r16, 8 ; !!!!! Вот где компилятор учёл двухбайтовость int
st Z,r16
st Z+1, r17 ; ptr уехал на Massiv[4].
;--- теперь надо сделать *ptr = 5 (так же как делали *ptr = 7)
Если надо - продолжу, но тяжко по частям разбивать.




Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сложите три и три:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru