[an error occurred while processing this directive] [an error occurred while processing this directive]
Поддерживаю Ваше мнение (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено просто так 18 сентября 2001 г. 17:54
В ответ на: "C" forever... отправлено abivan 18 сентября 2001 г. 10:19

На C гораздо проще программировать (если программа использует локальные переменные, которые в разных функциях занимают один и тот же адрес, либо используется арифметика с плавающей точкой - то здесь баз C очень трудно). Часто C-компиляторы генерируют выходной код меньше, чем если его писать на ассемблере - различные виды оптимизации иногда часто используемые куски кода выделяют в отдельные функции, за счет чего и получается экономия в размере кода (правда потом в отладчике в C-коде по шагам ходишь и удивляешься - как оно сделало). Иногда компилятор применяет различные "фокусы" - например, при сравнении многобайтовых чисел на 0 или на 0xFFFFFFFF.
Но все равно нужно иметь понятие о том, какие ассемблерные команды присутствуют в конкретном процессоре. Приходилось, например, анализировать - "потянет" ли процессор на данном кварце высокую (38400 bps) скорость по RS-порту - хватит ли у него времени на обработку прерывания до прихода следующего прерывания или же он "захлебнется". Поэтому надо было разбираться в том, какие команды генерирует компилятор, время выполнения каждой команды и т д.
Так что без знания ассемблера не всегда можно обойтись.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru