Спасибо Вам за разяснения теперь всё встало на свои места. Все проблеммы которые Вы описали в нормальных компиляторах уже исправлены. То что Вы говорите это низко уровневая оптимизация как правило она редко используется из за того что наш пенек это настолько перештопанный процессор 80386 что эту оптимизацию используют очень редко. Это настолько бесмыслено если что разработчики просто на этом не замарачиваются. Мы немного ушли от темы ветки. А тема ветки это получение очень хорошего инструмента по низкоуровнему программированию. Наверно с лета начну разработку такой среды. Если есть желающие присоединяйтесь.
? Нельзя-ли привести пример нормального компилятора. А то я все масм да фасм... вы еще расскажите про большие диски и быстрые процессора. Странно вообще, что вы пишете такое и собираетесь писать компилер в маш код. Ну некоторые - да. Требования к проекту бывают разные, и срок жизни проекта тоже. Разве? Похоже, что вы уже решили чем обернете руль, какие седушки поставите вместо штатных, какие наклейки налепите по бокам, а вот мотор, подвеска и другая грязь - это мелочи - "Это бесмыслено. разработчики на этом не замарачиваются" Не к чему. Напишите хоть какую демку. Сегодня строку, завтра строку. Зачем ждать лета. Надо ж знать под чьим знаменем пойдем. А то вожаков счас.. Все ищут дураков "мелочи" писать.
Ну например NASM TASM FASM и MASM. Компиляторы вполне адекватно генирируют маш код. Что пишете на асме то и получаете. Проверить можно в любом дизассемблере. Да а почему бы и нет если компилер С оставляет после себя мусор не нужный который не учавсвует в алгоритме, а оптимизатор его чистит только на 60% то этот мусор все равно остается в программе. А в асме одну инструкцию если компилер в ставит типа mov eax,eax так это смертный грех. Она увеличит выполнение программы на хрен десятых микросекунды. Давайте тогда еще вспомним про пререзагруку конвееров и программу сочинять будем согласно тому как она у Вас должна работать и не дай бог если выскачет прерывание и перезагрузит конвееры это же смерте подобно вы представляете сколько на это время уходит а подкачка из памяти в кэш... Тут на все сто с Вами согласен. Я не собираюсь делать машину я собираюсь сделать инструмент если у Вас есть лучший инструмент то покажите его (скажите вот мой супер компилер с оптимизаторм и крутым прероцессором только подумаешь и вот уже програ с генерировалась). А так каждый может говорить и про оптимизацию и компиляцию препроцессоры суть то не в этом, а в том чтобы можно было быстро сгенирировать рабочий код и проверить его что нужно подправить. А самое главное это ясность самого кода котрый Вы написали. Набирие в яндексе Algorithm Builder и скачайте его (он для процессоров AVR). Попробуйте написать какую то программу и Вы все поймете.
маш код в асм можно перевести практически однозначно (ну там коллизии 16-и и 32-х, а теперь и 64-х разрядных кодов - дизасм исходит из предпололжения о разрядности. или мелочи вроде jz==je). А вот с переводом асма в маш код все не так просто. Тут тонкости надо знать. Качаете с интела х86 маны. 3 pdf-фа больше метра каждый и начинаете потихоньку понимать о чем я. я не отговариваю вас. Боже упаси. Более того, если это будет действительно что-то стоящее (хорошая РАД система ой как нужна) с удовольствием добавлю свою лепту. У вас устаревшие представления о современных С компилерах. Сравниться с ними по качеству кода во многих случаях очень даже непросто. думаю тут речь скорее о долях наносекунды. Однако если такого мусора довольно много при отладке он начинает мешать, занимая слишком много места на экране. По такому незаметному при написании кода мусору ваш вирь или протектор будут однозначно определять антивирусы и хакеры. Кроме того неиспользуемый мусорный код - отличное место для заражения вашей проги. И последнее каждый низкоуровневый кодер немного художник, все нехудожники прекрасно себя чувствуют на VB и большего не хотят (скорости процев, большие диски..), а такой неконтролируемый мусор это очень некрасиво. Я имел намекал на студенческие, любительские и халтурные компилеры. Не знаю насколько лучший, но инструмент есть (хоть он и из несколько иной области) и я его постил тут на форуме где-то мой ник - это его название. В нем как компилерный двигатель был заюзан фасм, как самый маленький и очень хороший, сейчас я начинаю временами склоняться к насму или васму, тк править и отлаживать их значительно проще. В процессе пришлось слегка поковыряться в кишках фасма и почитать интеловские маны. Так-что то, что я понаписывал тут - не пустой треп. Понимаю вас. Сам с удовольствием юзаю AB для коротких AVR прог. Для длинных имхо лучше юзать С. Только иногда, для очень требовательных проектов (предельных по скорости или памяти) стоит писать на AVR асме. Однако вы путаете встраиваемый риск АВР (вы задели мое больное место - сам их люблю) и бог знает что х86 (сотни комманд имеющих существенное различие). Сделать юзабельную и удобную прогу наподобие AB в реалиях десктопа х86 очень даже непросто. Однако, удача преследует дерзающих и настойчивых. Не пишите слова - пишите код. Народ посмотрит на ваше творение и скорей всего влюбится. Охотников помочь будете отгонять лопатой.