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

Jozef

На чем писать  

595 проголосовавших

  1. 1. Что чаще используете в разработках?

    • Assembler
      165
    • C
      303
    • Что-то еще
      66


Рекомендуемые сообщения

9 минут назад, DrobyshevAlex сказал:

я ж говорю, тут одни гении :) лишь бы других обосрать даже не видя как чел пишет)

Во-первых, я сразу предупредил "без обид", потому что никого не пытался "обосрать", а лишь подчеркнул, что собственный неудачный опыт не является основанием для приговора в целом.

Во-вторых, Вы тоже не видите как пишут другие. Поэтому заочно поднимать себя выше всех (пусть даже в собственных мыслях), тоже не имеет смысла.

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

49 минут назад, Starichok сказал:

дело в том, что в ассемблере нет необходимости передавать переменные в подпрограмму (функцию) через пуш и возвращать через поп.

в ассемблере все переменные (по крайней мере у меня) доступны напрямую. я могу взять любую переменную прямо из места ее хранения и результат поместить также прямо в нужное место.

У меня такое ощущение, что Вы совершенно не владеете Си... Кто мешает в Си писать void Func(void), превращая функцию в процедуру не требующую входных переменных и не создающую выходной? Причем тут АСМ? Если Вы решили делать все переменные глобальными, а вызовы процедурами, то это никакого отношения к выбору языка программирования не имеет.

16 минут назад, DrobyshevAlex сказал:

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

Но это проблема создана не компилятором, а малограмотным программистом. Грамотный программист ДОЛЖЕН четко понимать как работает компилятор и тщательно следить за его работой.

58 минут назад, Starichok сказал:

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

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

Но речь шла совершенно о другом. МЕТОДЫ работы на Си нужно переносить на АСМ, тогда АСМ код будет эффективнее Си и одновременно не создаст трудностей при значительном его объеме. А кроме того, появится читабельность как в языках высокого уровня и масштабируемость написанного кода.

戦う前に相手のベルトの色に注目

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

37 минут назад, DrobyshevAlex сказал:

вот я все собираюсь делать осцил 

Кстати об осциллографе. Нынче все осциллографы имеют встроенный FFT. Будете встраивать? :)

Вот когда до него дойдете и обнаружите, что написанный на Си он работает НИКАК, тогда и вспомните про АСМ. Ну если только не используете чужой FFT как библиотечный. Но и тогда звезд с неба Вы не обретете. Патамушта библиотечный слишком универсальный, чтобы быть предельно быстрым. А без скорости там никак. Без скорости будет красивый фейк. Пользоваться невозможно.

戦う前に相手のベルトの色に注目

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

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

6 минут назад, Геннадий сказал:

я сразу предупредил "без обид"

а где тут обида, это только улыбку вызывает :)

8 минут назад, Геннадий сказал:

Вы тоже не видите как пишут другие

Так я о чем и говорю, что я не вижу и вы не видите. По этому я и не обсираю, где я кого то обсирал? Я задал пару вопросов. Я писал ранее, что я на асм писал пару раз в жизни (не считая когда нужно было вносить правки в бинарники, но там лишь переделки а не писание с нуля).  Так вот по этому у меня много вопросов, например сгенерит ли обязательно компилятор кода си push и pop при вызове функции? Или компилятор сгенерит код который потребует большее число тактов для переключения ноги мк? Я правда не знаю и спрашиваю.

11 минут назад, Геннадий сказал:

Поэтому заочно поднимать себя выше всех

Я где то поднимал? я только вопросы задаю :D Я правда увидел только пару толковых пояснений когда требуется асм. И я их не оспариваю) Просто вот я не понмиаю почему в си нельзя взять любую переменную написав так же код без передачи переменных в функцию, а с глобальными. по сути это и будет тот код на асм не требуемый пуш/пул.

12 минут назад, my504 сказал:

Кто мешает в Си писать void Func(void), превращая функцию в процедуру не требующую входных переменных и не создающую выходной? Причем тут АСМ? Если Вы решили делать все переменные глобальными, а вызовы процедурами, то это никакого отношения к выбору языка программирования не имеет.

Вот! Я это и пытаюсь сказать. Просто я правда не знаю, мож компилятор все равно что то пушнет пульнет) Я и спросил. Я считаю что не должен. Но не проверял. может кто проверял и уверен.

13 минут назад, my504 сказал:

Но это проблема создана не компилятором, а малограмотным программистом. Грамотный программист ДОЛЖЕН четко понимать как работает компилятор и тщательно следить за его работой.

Так а я где то спорил что проблема компилятора?

Постараюсь как то раскрыть мысль, два раза ее уже не поняли!

Вопрос "Что чаще используете в разработках?"

Тут нет описания уровня знаний. Я на это написал, что юзая АСМ можно написать код хуже чем юзая Си. На что мне ответили что я просто тупой а другие умные и напишут.

Допустим программист 1 пишет на АСМ а программист 2 на СИ. И крутой компилятор Си в крутыми настройками сгенерирует код оптимальней чем напишет программист 1. Какая разница программист 1 я или еще кто то. Суть в том что говорить что писать на си это 100% оптимальней чем на Си - просто я не согласен что дело в языке! Дело  том кто пишет и компиляторе и настройках.

То есть тема вопроса не как не предусматривает уровень владения именно программированием, не важно какой тут язык вообще. То есть нужно не язык винить иногда, а самого программиста. Кроме, как я уже два раза написал минимум, случаев, когда средствами Си (а выше такое заявляли) нельзя вообще это сделать. Я не знаю правда ли это, я не делал того о чем писали.

И я останусь при своем мнении, что крупные компании чаще выбирают не ассемблер, и пишут избыточный код дабы избежать ошибок и багов. А некоторые и свой язык пишут под конкретные задачи. У нас даже 110 чел работает по моей информации. Удаленно большинство. Друг друга даже не знают и никогда не общались. И как то срабатываются.

Программисты начинающие, или те кто сам кодит или компанией из нескольких человек могут ругаться, писать, фу интерфейсы, вы дураки что ли? Зачем писать интерфейс если и так понятно что передать. Зачем писать лишнюю строку кода. А потом пишут на АСМ код где все переменные глобальные, да и переменных та нет именованных, для себя а другой потом сиди месяцами разбирай его код чтоб добавить или изменить функционал.

И тем не менее, кодга это нужно, у нас в c++ серверах есть вставки асм кода. Но это не мешает проекту быть написанным на c++ и кроссплатформенным.

4 минуты назад, my504 сказал:

Кстати об осциллографе. Нынче все осциллографы имеют встроенный FFT. Будете встраивать?

Я пока не дошел до этого. Мне Китай шлет не те детали. Я уже третий раз заказал, жду. Посмотрел несколько схем, выбрал идеи которые мне нравятся. набросал схему.

Будет внешняя память, выбор адреса будет либо плиской, которые уже пришли и оттестил, вроде работает отлично, либо 74ac193 которые тоже пришли, но судя по коментам это не они, и скорость у них 10мгц и валиться а ацп у меня на 145 вроде как рассчитан. Ну и у плис еще удобно адрес двигать вперед назад или вообще задать нужный, а там же по кругу гонять только, хоть это и быстро. Человеческий глаз не заметит макс скорости по этому мелкие дефекты пропустишь, смысла не вижу на лету пытаться вывести такие скоростях.

Дисплей по 8 битной шине 2.4 дюйма всего, не очень он быстрый даже по FSMC. Так что не думаю что я не успею что то отрисовать.

АЦП 8 бит, память 16, пишу два канала в 1 ячейку (спасибо за идею человеку с радиокота). Вывод у меня пока по своему алгоритму :) Рисую вертикальные полосы, от старой точки до новой. Слева на право по очереди. Если нужно сузить то просто пропуски точек, знаю что тут не оптимально, можно как раз скачек пропустить нужный, но так как не пришли детали уже больше года жду уже и лень что то кодить пока платку не сделаю окончательную, не понятно из чего)

15 минут назад, my504 сказал:

Вот когда до него дойдете и обнаружите, что написанный на Си он работает НИКАК, тогда и вспомните про АСМ.

Мне кажется в каждом моем сообщении написано что если асм нужен то юзать нужно, если можно обойтись без него то я не вижу смысла его юзать. А вы как будто утверждаете что я говорю что асм юзать не нужно...

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

56 минут назад, my504 сказал:

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

согласен, я был слишком категоричен в своих высказываниях.

да, иногда и мне приходилось отправлять в стек один-два регистра из-за нехватки регистров.

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

так что прошу извинить меня за ложную информацию (что сохранением в стеке мне не приходится пользоваться).

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

 

Мудрость приходит вместе с импотенцией...

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

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

9 минут назад, Starichok сказал:

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

вам уже несколько раз сказали, что в стеке будет столько данных, сколько в си коде вы напишите :)

я не знаю как там компилятор приведет код, а я юзаю два это атолик и кокос. Я не знаю даже разные ли они там.

Но вот три кода

uint8_t add(uint8_t a, uint8_t b) {
	return a + b;
}

int main() {
  uint8_t a = 20, b = 30, c = 0;
  c = add(a, b);
}
inline uint8_t add(uint8_t a, uint8_t b) {
	return a + b;
}

int main() {
  uint8_t c = 0;
  c = add(20, 30);
}
uint8_t a = 20, b = 30, c = 0;

void add() {
  c = a + b;
}

int main() {
  add();
}

Думаю он по разному скомпилируется :) 

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

53 минуты назад, DrobyshevAlex сказал:

Я вообще не уверен что дисплей мой может отрисовать что то быстрей чем мк вычислить :D

 

Еще как может. Когда расчет FFT будет длиться сотни миллисекунд, тогда дисплей не будет "слабым звеном"...

戦う前に相手のベルトの色に注目

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

19 минут назад, my504 сказал:

Когда расчет FFT будет длиться сотни миллисекунд, тогда дисплей не будет "слабым звеном"...

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

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

2 часа назад, DrobyshevAlex сказал:

я ж говорю, тут одни гении

Ага, гении ассемблера, причем одного единственного!

Вот, интересно, кто нибудь знает, что на PIC-ах (по крайней мере на младших версиях) стека нет? то есть даже если вы объявляете переменную на стеке, компилятор выделяет ее в глобальной памяти!

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

1 час назад, ruhi сказал:

кто нибудь знает, что ....?

Во первых, есть стек. Без стека не работает механизм call и прерываний. Другое дело, что этот стек не предназначен для переменных. Причем речь тут об аппаратном стеке. Программный никто не запрещал.

Во вторых, это только в 8-битных МК. В 16-разрядных стек более чем полноценный.

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

戦う前に相手のベルトの色に注目

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

6 минут назад, my504 сказал:

Во первых, есть стек. Без стека не работает механизм call и прерываний.

Хорошо, если вам надо гвоздями прибить (хотя я вижу что вы и так все прекрасно поняли), нет стека имменно для переменных, то есть отсутствуют ассемблерные комманды типа  PUSH и POP. И, да, я оговорился про младшие версии PIC-в, 16-битных мне пока не подсовывали, переписываю алгоритм с Атмеги на миландровский ПИК-8бит, к счастью, исходная программа написана на С!

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

22 минуты назад, ruhi сказал:

если вам надо

Насколько я помню, ХС8 реализует программный стек. А Хайтеч использует часть ОЗУ как есть  для передачи значений в функцию.

戦う前に相手のベルトの色に注目

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

10 минут назад, my504 сказал:

ХС8 реализует программный стек. А Хайтеч

эти ваши умные слова/буквы/обозначения мне не о чем не говорят. Я вижу в LST файле что для моего процессора, компилятор, локальные переменные объявляет как глобальные и вижу что архитектура процессора не поддерживает косвенную адресацию памяти на уровне ядра (только на уровне специальных модулей переферии), а стек как раз и реализуется через косвенную адресацию памяти,

если вам интересно. То есть я вижу представителя линейки процессоров который не поддерживает стек для переменных. 

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

04.11.2019 в 11:08, Falconist сказал:

ответом, уже давным-давно и нафиг никому не нужным - просто глупо.

За время моего бана тема заметно оживилась :D

Так что, не так уж и глупо, и не так уж и на фиг никому не нужна.

Сейчас уже правильно процитировал? Или снова в бан? Сатрап!

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

3 часа назад, ruhi сказал:

и вижу что архитектура процессора не поддерживает косвенную адресацию памяти на уровне ядра (только на уровне специальных модулей переферии), а стек как раз и реализуется через косвенную адресацию памяти

Это каким таким образом модуль периферии получил возможность в одном командном цикле писать/читать ОЗУ? 

Вы хоть понимаете что пишите? 

FSR/INDF - это регистры ядра. Второй так вообще физически не существует. А первый и является РОНом косвенной адресации. 

В усовершенствованом семействе даже есть три новых команды идентичных косвенным пересылкам с автоинкрементом/автодекрементом указателя. 

 

 

戦う前に相手のベルトの色に注目

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

14 часов назад, my504 сказал:

Это каким таким образом модуль периферии получил возможность в одном командном цикле писать/читать ОЗУ?

При чем тут "в одном командном цикле", не понял?

14 часов назад, my504 сказал:

Вы хоть понимаете что пишите? 

Что пишу очень хорошо понимаю, не понимаю что вы читаете, но прикольно - продолжайте :) !

14 часов назад, my504 сказал:

А первый и является РОНом косвенной адресации.

регистры конфигурации УАРТ тоже можно обозвать РОНом конфигарации УАРТа, что это обзывательство :) доказывает???

А вот вы похоже не в состоянии различать общее и частное назначение, и если это регистр косвенной адресации, то это прямое указание на частное назначение, хотя его как и регистр УАРТа (например) можно использовать просто как ячейку памяти.

Вот в АВР-е там действительно ЧАСТИ регистров косвенной адресации: X, Y, Z являются регистрами общего назначения РОН-ами, а тут, извините, нет инструкций ассемблера в которых FSR/INDF могут работать специальным образом отличным от их частного назначения, а регистры УАРТа, например, не могут также работать

А физически не реализованных регистры существуют и в других переферийных модулях, это тоже ничего не доказывает!

Изменено пользователем ruhi
дополнил

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

17 часов назад, AvrAsm сказал:

За время моего бана тема заметно оживилась

Да, складывается такое ощущение, что они тут банят, иногда, что бы потешить свое самолюбие, что вряд ли идет на пользу популярности и развитию форума (сайта).

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

На три вещи можно смотреть бесконечно:

1. Как течет вода

2. Как горит огонь

3. Как ругаютсяспорят упёртые профессионалы с разными пристрастиями.

 

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

1 час назад, ruhi сказал:

Вот в АВР-е там действительно ЧАСТИ регистров косвенной адресации: X, Y, Z являются регистрами общего назначения РОН-ами, а тут, извините, нет инструкций ассемблера в которых FSR/INDF могут работать специальным образом отличным от их частного назначения

Во первых, могут.  Точнее, может.  FSR -  это просто регистр, который может применяться как РОН. То есть использоваться в математике и прочих мероприятиях. Во вторых, архитектура этой платформы такова, что система команд не делает различий между любой областью пространства данных. Таким образом, в этой архитектуре  РОНы в привычном для других архитектур качестве не нужны. Точнее всё ОЗУ суть и есть РОНы. Из чего следует, что к АЛУ будет прицеплен рабочий регистр (WREG) и любой регистр ОЗУ.

В том числе и FSR. Поэтому никакие другие функции FSR не требует. Они у него есть по определению. А отсутствие физической реализации INDF говорит о том, что этот самый INDF является выходом мультиплексора шины данных.  Что и доказывает что FSR ничем по своему функционалу и местоположению в архитектуре не отличается от традиционного РОНа при использовании его для целей косвенной адресации.

1 час назад, ruhi сказал:

При чем тут "в одном командном цикле", не понял?

Периферийные модули все как один висят на ВНЕШНИХ по отношению к ядру шинах адреса/данных. Ни у одного из этих модулей нет доступа к мультиплексору шины адреса ядра. Для периферии это как другое измерение. И УАРТ тут вообще не причем и примером быть не может. Примером может быть EEPROM, который ДЕЙСТВИТЕЛЬНО реализует очень похожий процесс через собственный указатель и регистр данных. Но EEPROM как раз и есть периферия, поэтому он требует специальной команды чтения/записи  периферийного  регистра данных. Причем адрес EEPROM передается тоже как данные через регистр защелку и никакого отношения к системной шине адреса не имеет (у него адресное пространство вообще не на шине данных, а на шине инструкций, если вообще объединяется с ней). Так вот, регистры ядра могут реализовать косвенную адресацию в один машинный цикл, а регистры периферии не могут. Ровно по выше обозначенной причине.

Внедрение в новых МК этой платформы команд пересылки с автоинкрементной и индексной адресацией так же стало возможным только потому, что FSR доступен для конвейера и дешифратора команд. Никакая периферия для этих блоков процессора недоступна.

 

ЗЫ. В догон. Вы бы, уважаемый, вместо домыслов открыли даташит на МК в разделе описания ядра и привели отличия FSR от РОНа...

Вместо своих фантазий на эту тему. Заодно бы увидели где там периферия.

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

戦う前に相手のベルトの色に注目

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

24 минуты назад, my504 сказал:

в этой архитектуре  РОНы в привычном для других архитектур качестве не нужны. Точнее всё ОЗУ суть и есть РОНы

ну понятно, РОНы не нужы, но они есть - с этим я не могу спорить.

25 минут назад, my504 сказал:

Так вот, регистры ядра могут реализовать косвенную адресацию в один машинный цикл, а регистры периферии не могут

Так а как же все комманды косвенной адресации на АВР-ах занимают 2 (два) машинных цикла, так там значит это регистры переферии, по вашему??? Какая то кривоватая у вас логика кругом.

38 минут назад, my504 сказал:

вместо домыслов открыли даташит на МК в разделе описания ядра и привели отличия FSR от РОНа...

Я это читаю как:

"Я с тобой не справляюсь - опровергай себя сам."

Ну, спасибо за признание!

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

27 минут назад, ruhi сказал:

ну понятно, РОНы не нужы, но они есть - с этим я не могу спорить.

Ваше абсолютное непонимание архитектуры 8-битных ПИКов делает бессмысленным какие либо объяснения на эту тему. Вы просто не слышите о чем я Вам говорю. Чтобы услышать хоть какую то малость, следует изучить матчасть. Хотя бы на 50%.

27 минут назад, ruhi сказал:

Так а как же все комманды косвенной адресации на АВР-ах занимают 2 (два) машинных цикла, так там значит это регистры переферии, по вашему??? 

Нет, не значит. Это значит для ПИКов. Потому что в ПИКах конвейер и синхронизация ядра сделаны так, что за один машинный цикл выполняются АБСОЛЮТНО ВСЕ КОМАНДЫ, кроме тех, которые требуют сброса конвейера (выполнение ветвлений кода). 

Поскольку в АВР  тактирование ядра сделано не на одной полярности фронтов синхронизации, а на обоих, то часть линейных (не связанных с ветвлением) команд исполняются более, чем за один цикл. Поэтому сравнивать АВР с ПИКом в этой части невозможно.

 

Ну и в догон, относительно Вашей сентенции о безусловной необходимости применять косвенную адресацию для программного стека. 

Это не так.

Я сейчас не имею открытых проектов на Си для ХС8. Поэтому попросил коллегу показать мне свой проект.

Стек (программный) в  проектах под PIC16 (для PIC18 могут быть отличия) для передачи значений в функцию и локальных переменных есть и он не использует косвенную адресацию. Разбираться с механизмом у меня сейчас времени нет. Но само название первой переменной на этих  участках ОЗУ кагбэ намекает: __pcstackCOMMON и __pcstackBANK0

 

 

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

戦う前に相手のベルトの色に注目

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

42 минуты назад, my504 сказал:

Ваше абсолютное непонимание архитектуры 8-битных ПИКов делает бессмысленным какие либо объяснения на эту тему. Вы просто не слышите о чем я Вам говорю.

Зря вы так переживаете, я все прекрасно слышу - внимательно читаю, но ваши аргументы для меня не убедительны! А мои практические результаты подтверждают мое абсолютное понимание не только этой, а множества архитектур процессоров (штук 7 мне доводилось использовать в разных сочетаниях с С и с С++ и с разными средами разработки) и методов их использования.

В любом случае спасибо за дискуссию, было интересно (всегда интересно!) узнать альтернативную точку зрения!

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...