16+
Вторник
23 мая
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры MSP430

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Brains  (16.09.2009 20:06, просмотров: 11381)
Добрый день! Может быть мой вопрос будет наивным, но я долгое время писал программы на ассемблере, а сейчас перешел на С. При разборе работы компилятора IAR 4.20 обнаружил, что он вообще не использует операции регистр-регистр при обращении к портам, 
например: volatile unsigned short in_byte; int main(void) { in_byte = P8IN; который я бы написал на ассемблере одной командой (MOV.B &P8IN,&in_byte), компилятор реализует так: С ВЫКЛЮЧЕННОЙ ОПТИМИЗАЦИЕЙ \ 000000 5F426102 MOV.B &P8IN, R15 \ 000004 4F4F MOV.B R15, R15 \ 000006 824F.... MOV.W R15, &in_byte С ПОЛНОЙ ОПТИМИЗАЦИЕЙ ПО СКОРОСТИ \ 000000 5F426102 MOV.B &P8IN, R15 \ 000004 824F.... MOV.W R15, &in_byte Имеется ли возможность заставить компилятор генерировать правильный код?
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7525 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVII