Перейти к содержанию
    

Ну , что прощаемся с Atmel ?

Никакой дискриминации. Вопрос ПРЕЖДЕ всего в возможности работы в команде. Под Вас, как носителя форта, или носителя суахили, никто не будет подстраиватся. Такова жизненая реальность.

Жизненная реальность такова, что даже владеющие одним языком могут существенно различаться в способах и стилях его применения даже не считая дополнительных абстракций как ОС, автоматы, объектность и др. И есть большая вероятность что поддерживать код следующий программист станет с переписывания "кривых мест по его мнению" от предыдущего программиста. Не все же способны понять "Войну и мир" как понимал её автор, если это всё же возможно.

 

P.S. А работодателя, прежде всего, интересует результат, а не то какие средства выбрал для достижения его профессионал (если это действительно профессионал)

Ассемблер в ряду таких же средств, как и другие инструменты.

У "менеджеров", конечно, управляющими программистами несколько иная точка зрения на это и индивидуальные предпочтения в разработке они стараются убрать в принципе.

т.к. это им дополнительный "головняк" по работе.

Изменено пользователем Kopa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

+1

Собственно, я долго писал на Си в asm-стиле, а потом открыл для себя типы данных - мир перевернулся, и теперь не код управляет данными, а данные кодом.

:biggrin: По Вашему типы данных есть только у языков высокого уровня?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

работодателя, прежде всего, интересует результат, а не то какие средства выбрал для достижения его профессионал (если это действительно профессионал)

Ассемблер в ряду таких же средств, как и другие инструменты.

Угу... щазз... Перепишите чужой АСМ-исходник... если исходник без коментов... слабо??? :biggrin:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пример не удачный.

 

Вполне удачный.

 

Вы привели два стиля программирования.

Второй более наглядный и удобный.

 

Которым матерые ассемблерщики обычно не пользуются.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:biggrin: По Вашему типы данных есть только у языков высокого уровня?

Вы не видите суслика??? В АСМе есть флоат... или дабле???

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Которым матерые ассемблерщики обычно не пользуются.

Матёрые как раз и пользуются.

Не пользуются начинающие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пишут на СИ как на асме, или на асме как на СИ?

Можете пример привести?

 

 

Пример не удачный.

Вы привели два стиля программирования.

Точно также эти две строки можно и асме написать.

Вы читаете то, что сами пишете и пишут вам в ответ?

Утверждалось, что на одном языке можно программировать в духе другого языка.

Вы попросили пример. Вам его привели. Вы утверждаете, что это "два стиля программирования" - да, в этом и был смысл примера.

Почему же вы его называете неудачным?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы не видите суслика??? В АСМе есть флоат... или дабле???

ЛЮБЫЕ которые мне нужны могу сделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

P.S. А работодателя, прежде всего, интересует результат, а не то какие средства выбрал для достижения его профессионал (если это действительно профессионал)

 

Еще как интересуют. Экзотическое пусть и работающее барахло в качестве результата работы профессионала никому не нужно, если речь именно про работодателя, а не стороннего заказчика, являющегося полным нулем.

 

 

Матёрые как раз и пользуются.

Не пользуются начинающие.

 

 

А по приведенному примеру этого что-то и не заметно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему же вы его называете неудачным?

Потому что не наглядный стиль программирования вы приписываете ассемблеру.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ЛЮБЫЕ которые мне нужны могу сделать.

 

Это абстракция в голове программиста, а не свойство языка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неумение отвязываться от железа

Извиняюсь спросить - а для программиста это обязательное умение? Может, не стоит совсем-то от железа отвязываться, хотя бы в этой теме, а то будет как не помню у кого в подписи о цели программиста - "намагнитить участки поверхности быстро вращающихся дисков" :biggrin:

Просто я больше как раз "железячник", и программный код для меня, скажем так, вторичен. И если к устройству, имеющему дискретных 8 входов и 4 выхода, программист потребует 32-х разрядный МК в корпусе BGA с мегабайтами флэша на борту, не меньше 40МГц тактовой, среду разработки на языке высочайшего уровня стоимостью несколько сотен килорублей и двухпроцессорный комп для симуляции - у меня возникнут подозрения не только в профпригодности, но и психическом здоровье такого специалиста.

Или, например, фразы типа "какую операционку лучше поставить на микроволновку", "разработать GUI для карандашной точилки".

С другой стороны, с программиста, обслуживающего базу данных бухгалтерии, требовать знания ассемблера - глупость другой степени крайности :laughing:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:biggrin: По Вашему типы данных есть только у языков высокого уровня?

Конечно нет. Но ими никто не пользуется.

Есть массив структур:

typedef struct sRS485_MASTER_TASK
{
    BYTE    task:2;
    BYTE    flag:1;
    BYTE    address:5;
    BYTE    source;
    WORD    index;
} sRS485_MASTER_TASK;

Покажете как им пользоваться на asm?

Напишите аналог функции rs485_task_add?

void rs485_task_add(sCONFIG_ITEM item)
{
int	i;

#ifdef DEBUG_RS485_TASK
con_str("rs485_task_add");
con_start();
#endif // DEBUG_RS485_TASK

if(item.driver == DRV_RS485_MASTER)
{
	for(i = 0; i < RS485_MASTER_TASK_SIZE; i++)
	{
		if((rs485_master_task[i].task == item.rs485_task)
			&& (rs485_master_task[i].source == item.source)
			&& (rs485_master_task[i].index == item.index)
			&& (rs485_master_task[i].address == item.id)
			)
		{
			#ifdef DEBUG_RS485_TASK
			con_str(" @ ");
			con_dec(i);
			con_str("\n\r");
			con_start();
			#endif // DEBUG_RS485_TASK

			rs485_master_task[i].flag = 0;
			return;
		}
	}

	if(i == RS485_MASTER_TASK_SIZE)
	{
		for(i = 0; i < RS485_MASTER_TASK_SIZE; i++)
		{
			if(rs485_master_task[i].task == RS485_TASK_OFF)
			{
				#ifdef DEBUG_RS485_TASK
				con_str(" new ");
				con_dec(i);
				con_str("\n\r");
				con_start();
				#endif // DEBUG_RS485_TASK

				rs485_master_task[i].task = item.rs485_task;
				rs485_master_task[i].source = item.source;
				rs485_master_task[i].index = item.index;
				rs485_master_task[i].address = item.id;
				rs485_master_task[i].flag = 0;
				return;
			}
		}
	}
}
}

Только прошу учесть, что завтра я (может быть) поменяю тип на такой:

typedef struct sRS485_MASTER_TASK
{
    DWORD    task;
    DWORD    flag;
    DWORD    address;
    DWORD    source;
    DWORD    index;
} sRS485_MASTER_TASK;

Перекомпиляции будет достаточно или нужно шерстить весь код на предмет работы с данным типом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Угу... щазз... Перепишите чужой АСМ-исходник... если исходник без коментов... слабо??? :biggrin:

Отчего же?

Но без знания метрик повторяемого решения это может быть трудно осуществимо если утерян "пласт" метаинформации на основе знаний которой делалось решение.

А "механический" перенос возможен даже и в этом случае, хотя он и не тривиален. :) Есть даже личный какой то опыт в этом.

Качество решения и необходимые инструментарии для этого можно себе сделать или закупить существующие (АSM -> псевдо C есть например в IDA и др))

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Угу... щазз... Перепишите чужой АСМ-исходник... если исходник без коментов... слабо??? :biggrin:

 

Речь как всегда про размер исходников. Несколько мегабайт ассемблера, например, не рискнет переписать даже автор. Выкинуть и переделать все с нуля будет проще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...