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

 
 
> вопрос по IARy, IAR спасовал?
LeoLabs
сообщение Jun 16 2005, 09:30
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 5-03-05
Пользователь №: 3 082



Компилю текст:
#pragma vector = TIMER2_OVF_vect
__interrupt void system_timer()
{
blink_timer++;
}

и выдает:

#pragma vector = TIMER2_OVF_vect
__interrupt void system_timer()
ST -Y, R31
ST -Y, R30
ST -Y, R17
ST -Y, R16
IN R17, 0x3F
}
blink_timer++;
LDI R30, LOW(blink_timer)
LDI R31, (blink_timer) >> 8
LD R16, Z
INC R16
ST Z, R16
}
OUT 0x3F, R17
LD R16, Y+
LD R17, Y+
LD R30, Y+
LD R31, Y+
RETI

при максимальной оптимизации.
Не пойму почему бы ему не использовать STS? или я что-то не так пишу или хваленый иар не спосбен на подвиги?
ЧТО Я НЕ ТАК ДЕЛАЮ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vet
сообщение Jun 17 2005, 06:28
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Ещё немного сравнительных результатов от ICC v6.30C и GCC 20040720 соответственно:
Код
; char blink_timer;
; #pragma interrupt_handler timer:4 timer:5
; void timer() {
    .dbline 44
;   blink_timer++;
    lds R24,_blink_timer
    subi R24,255  ; addi 1
    sts _blink_timer,R24
    .dbline -2
L7:
    ld R24,y+
    out 0x3f,R24
    ld R25,y+
    ld R24,y+
    .dbline 0; func end
    reti

Код
;char blink_timer;
;SIGNAL (SIG_OVERFLOW1)
;{
;  blink_timer++;
;}

.LM1:
/* prologue: frame size=0 */
    push __zero_reg__
    push __tmp_reg__
    in __tmp_reg__,__SREG__
    push __tmp_reg__
    clr __zero_reg__
    push r24
/* prologue end (size=6) */
    .stabn 68,0,69,.LM2-__vector_14
.LM2:
    lds r24,blink_timer
    subi r24,lo8(-(1))
    sts blink_timer,r24
/* epilogue: frame size=0 */
    pop r24
    pop __tmp_reg__
    out __SREG__,__tmp_reg__
    pop __tmp_reg__
    pop __zero_reg__
    reti


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- LeoLabs   вопрос по IARy   Jun 16 2005, 09:30
- - vet   Цитата(LeoLabs @ Jun 16 2005, 13:30)Не пойму ...   Jun 16 2005, 09:54
|- - LeoLabs   не верю! ну не может такого быть!   Jun 17 2005, 04:22
- - AlexOr   Нет слов. Только маты.   Jun 20 2005, 13:28
- - AlexOr   Кстати, LDI R30, LOW(blink_timer) LDI R31, (blink_...   Jun 20 2005, 13:41
- - vet   Цитата(AlexOr @ Jun 20 2005, 17:41)Кстати, LD...   Jun 20 2005, 15:23
|- - LeoLabs   Задал этот вопрос (почему через указатели а не чер...   Jun 21 2005, 01:12
- - dxp   Цитата(AlexOr @ Jun 20 2005, 19:41)Кстати, LD...   Jun 21 2005, 06:35
- - LeoLabs   [/quote] Не стОит так переживать из-за этой мелоч...   Jun 21 2005, 07:08
|- - dxp   Цитата(LeoLabs @ Jun 21 2005, 13:08)Но прерыв...   Jun 21 2005, 07:36
|- - LeoLabs   Цитата(dxp @ Jun 21 2005, 14:36)Цитата(LeoLab...   Jun 21 2005, 07:57
|- - dxp   Цитата(LeoLabs @ Jun 21 2005, 13:57)ну что ж:...   Jun 21 2005, 09:05
|- - LeoLabs   Цитата(dxp @ Jun 21 2005, 16:05)Непонятно, ка...   Jun 22 2005, 01:24
|- - dxp   Цитата(LeoLabs @ Jun 22 2005, 07:24)Цитата(dx...   Jun 22 2005, 04:30
- - vet   Цитата(dxp @ Jun 21 2005, 10:35)Это до тех по...   Jun 21 2005, 09:04
- - dxp   Цитата(vet @ Jun 21 2005, 15:04)Прямо сейчас ...   Jun 21 2005, 09:25
- - vet   Цитата(dxp @ Jun 21 2005, 13:25)Цитата(vet ...   Jun 21 2005, 10:03


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

 


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


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