реклама на сайте
подробности

 
 
> AVR-AS: замена сложения вычитанием, не едут лыжи :(
ARV
сообщение Sep 18 2011, 16:55
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



емеется массив uint8_t envelope[256];

делаю обработчик прерываний на ассемблере, в котором надо взять из этого массива байт. так как команды сложения с константой не существует, я делаю так:
Код
.extern offset // это смещение, оно 16-битное, но старший байт == 0
.extern envelope

lds    YL, offset
lds    YH, offset+1
subi    YL, lo8(-envelope)
sbci    YH, hi8(-envelope)
ld    r16, Y+
в итоге получаю сообщение об ошибке:
Цитата
../isr.S:49: Error: can't resolve `0' {*UND* section} - `envelope' {*UND* section}
в чем дело? что за ерунда?


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
нечитатель
сообщение Sep 18 2011, 19:19
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 20-11-10
Пользователь №: 61 032



Код
    subi    YL, low(65536 - envelope)
    sbci    YH, high(65536 - envelope)


О! В смысле ааа... Тыком:
Код
    subi    YL, low(- envelope)
    sbci    YH, high(- envelope)
"минус" отдельное слово, а не часть имени.

... а теперь даже и без пробела получилось. Развлечение нашёл.

У меня просто студио.

Сообщение отредактировал нечитатель - Sep 18 2011, 19:27
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 16:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01348 секунд с 7
ELECTRONIX ©2004-2016