|
Заблокирован
|
|
Что пишут на ассемблере в настоящем прошлом будущем? :)06.11.2019, 22:11. Показов 11981. Ответов 83
Метки ассемблер, загрузчик, компоновщик, объектный модуль, системное программирование, язык ассемблера (Все метки)
Всем привет,
очень интересует вопрос - что пишут на ассемблере: программы для ОС , программы для железа? если программы для ос - то легко ли написать портиhetve. программу -хотя бы в рамках линуксы коры , виндовсы 6.2 или пишется под каждую конкретную ОС. Если пишется под железо - то на первое место встает универсальность - т.е. можно ли написать универсальную прогу под все железо ?как-то так. Буду рад за любые мысли и ответы.
0
|
|
| 06.11.2019, 22:11 | |
|
Ответы с готовыми решениями:
83
На каком именно ассемблере пишут драйверы? Криптовалюта, что ждет в будущем? |
|
Заблокирован
|
|
| 16.11.2019, 13:42 [ТС] | |
|
наверное не про ассемблер
я вот про что имею ввиду, http://www.ollydbg.de/Pics/odbg64-03.png Добавлено через 1 минуту т.е. у нас ориентировочно есть программа которая что-то делает , а я не знаю что именно и каким образом она делает и хочу узнать это , не запуская программу. Добавлено через 3 минуты причем понимаение этого пришло в процессе поста, но неужели никто не мог сам догадаться - что нужно ![]() мне кажется -это вполне разумное желание любого человека работающего в теме от 1С до написания драфверов - уметь читать чужие программы написанные на любых языках - а не ломать голову над ООП-ным клестовским кодом, тупо посмотреть на машинные кода или типа того.
0
|
|
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,128
|
||
| 16.11.2019, 14:19 | ||
|
Сложить 2 числа, это несколько команд процессору. Загрузить в первый регистр одно число из памяти, загрузить во второй регистр другое число, сложить два регистра с получением результата на третьем регистре, поместить значение из результирующего регистра в ячейку памяти. Любое действие чуть посложней выливается в тучу команд процессору. Кроме того, в процессе преобразования в машинный код теряется информация об именах функций и переменных, эта информация не нужна процессору, но нужна человеку для удобства написания программы. Конечно из набора команд процессору можно понять что делается в программе, но это совсем не просто. Как в кинофильме "матрица" не выйдет
0
|
||
|
|
|
| 16.11.2019, 14:25 | |
|
В каких случаях реально необходимо программирование на ассемблере:
1. Когда речь идёт о необходимости построить код, который нельзя надёжно построить на языке программирования. Это может быть, например, из-за того, что упираемся в некоторые ограничения со стороны компилятора, который обязан соблюдать программные соглашения. Может быть из-за того что требуется сгенерировать вполне определённый набор машинных инструкций, но компилятор не гарантирует, что требуемые инструкции построятся именно в требуемом порядке и в требуемой комплектации. А может быть банально из-за того, что на языке программирования попросту нет никаких конструкций, которые в состоянии описать требуемое действие. На уровне пользовательского кода такие ситуации возникают редко. Обычно они спрятаны за интерфейсами системных библиотек или операционной системы, а в них уже и реализуется весь необходимый код. Таким образом, конечный пользователь отгораживается от реальной необходимости что-то писать на ассемблере и учитывать особенности какого-то конкретного процессора 2. Когда речь идёт о производительности. В основном связано с тем, что в большом количестве случаев сложно спроектировать компилятор таким образом, чтобы из текста на языке программирования можно было построить специфические машинные операции. Например, когда речь идёт о векторном сложении, то на уровне многих языков программирования попросту нет подобных конструкций. А написать цикл так, чтобы компилятор сумел превратить его в одну машинную инструкцию определённого вида - задача нетривиальная. Как для программиста, так и для разработчика компилятора. К тому же на каждой архитектуре имеются свои специализированные инструкции, а потому для полного щястья надо написать код на языке так, чтобы он одинаково эффективно отработался компиляторами под разные платформы. Такая задача практически нерешаемая 3. Когда речь идёт о специализированных процессорах, в основном, микроконтроллерах. На них обычно мало памяти и сравнительно небольшая производительность самОй железки. И может получиться так, что, например, что ручками написанный код окажется на три байта короче, чем полученный из-под компилятора, а в таких устройствах борьба идёт за каждый лишний байт. Примерна та же картина наблюдалась и на "больших" процессорах условно 40-летней давности - в те времена количество памяти и быстродействие "больших" ЭВМ были намного хуже, чем, например, процессоры, которые сегодня встраиваются в стиральные машины В первых двух пунктах речь в основном идёт о построении машинно-специфичного кода Следующие замечания касаются всех трёх пунктов Зачастую на ассемблере пишут не сами программы, а лишь короткие фрагменты кода, которые встраиваются в программу, написанную на Си или Си++ - так называемые "ассемблерные вставки" В большом количестве случаев в умелых руках код, полученный из-под компилятора, в реальности оказывается быстрее и компактнее кода, написанного вручную В общем случае на ассемблере можно написать любую программу. Но это имеет смысл только для энтузиастов. Программу, написанную на языке, намного проще отлаживать, развивать, сопровождать. Да и банально меньше проблем, если вдруг захочется перенести на другую платформу. Большую программу, которую пишут на ассемблере, довольно сложно писать в команде из нескольких человек, особенно когда речь идёт о максимальной производительности
3
|
|
|
Заблокирован
|
|
| 16.11.2019, 17:50 [ТС] | |
|
ок.
более менее понятно, что это тема очень обширная и нетривиальная - каждый случай считай уникален. спс
0
|
|
|
531 / 180 / 39
Регистрация: 18.08.2012
Сообщений: 907
|
|
| 16.11.2019, 17:59 | |
|
0
|
|
|
Модератор
|
||
| 16.11.2019, 19:42 | ||
|
Так что можете не беспокоиться, и продолжать кодить. Математическая логика тут не на Вашей стороне
0
|
||
|
Модератор
|
|
| 23.11.2019, 21:57 | |
|
Если рассматривать вопрос в культурно-историческом разрезе, то язык ассемблера по традиции сохраняет своё значение на платформах, где исторически десятилетиями складывалась система ассемблерного программирования.
DEC уже нет. Осталась одна IBM.
0
|
|
|
Заблокирован
|
|
| 23.11.2019, 23:09 [ТС] | |
|
а на чем написан стандартный си?
0
|
|
|
Модератор
|
|
| 23.11.2019, 23:15 | |
|
Традиционно - на подмножестве си. ( "компилятор компилятора")
Сейчас пошла тенденция писать на С++. Были компиляторы на Фортране. В принципе можно написать на любом достаточно полном языке, способном читать исходники и писать выходные (объектные или асмовские) файлы.
0
|
|
|
Заблокирован
|
|
| 23.11.2019, 23:20 [ТС] | |
|
а зачем тогда ассемблер ?
Добавлено через 1 минуту я чет вообще не понимаю, ассемблеры они разные? ассемблер - это некий набор иснструкций от производителя железа, как он вообще каким боком вклинивается между железом и компиляторами? чем больше в теме пишут тем меньше понятно. Добавлено через 1 минуту в какой момент появляется ассемблер? завод, там сделали проц, напаяли его на схему, в схеме какието программы, - ассемблер уже появился? или на базовые системы наложили ОС - ассемблер появляется тут? если ассемблера не будет - что изменится? Добавлено через 55 секунд для чего нужны объектные файлы ? всегда было загакой. обычно екзешник нужен или dll ка. объектный файл это для чего? Добавлено через 17 секунд прям вообще спасибо, что упомянули про об.файлы.
0
|
|
|
Модератор
|
|
| 23.11.2019, 23:32 | |
|
Исторические исходники достандартного Си:
аналог современной cc. Запускает другие программы в процессе сборкиhttps://github.com/dspinellis/... nt/c/ncc.c часть синтаксического анализа https://github.com/dspinellis/... /nc0/c00.c часть генерации кода по синтаксическому дереву https://github.com/dspinellis/... /nc1/c11.c
0
|
|
|
Заблокирован
|
|
| 23.11.2019, 23:49 [ТС] | |
|
осталось тока си выучить
![]() ассемблер это что такое с википедии "Ассе́мблер (от англ. assembler — сборщик) — транслятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке. " что появилось раньше ассемблер или его язык . ------------------------ если бы не было ассемблера - что бы было? это пипец прост ![]() Добавлено через 4 минуты вот если железо триод и лампочка. и есть программа написанная на с++ которая позылает шифрованные смтп пакеты серверу , написанному на делфях , который обрабатывает инфу и передает задачу триоду включить лампочку. но не напрямую, а посредством ЭВУ и сложной комбинации импульсов. ЭВУ общается с триодом посредством чего-то . где в этой схеме между лапочкой и эву ассемблер, как он там появился? если не появился, то сколько нужно лампочек чтобы появился ассемблер, чтобы без него ну жизнь не та? я вот че понять не могу Добавлено через 4 минуты и вот я получил объектный файл и куда его ? это объектный файл он вездесущий - т.е. реальный объектный файл, или это некая условность - т.е. как бы объектный файл - но не везде. например если я его открою блокнотом или даже исполнить не смогу. или например у меня есть программа 1 и программа 2, у них есть объектные файлы и и 2 соотв. я хочу слить программы воедино достаточно ли мне будет прост соединив два объектных файла подать их в куда-то и оно мне выдаст программу делающую два дела одновременно? это я верно понял суть объектных файлов?
0
|
|
|
Модератор
|
|||||||||
| 24.11.2019, 00:11 | |||||||||
В объектном файле - описание областей виртуальной или физической памяти вычислительной системы.
1
|
|||||||||
|
Модератор
|
|||
| 24.11.2019, 00:50 | |||
|
Он появляется в результате более или менее успешного программирования какими-нибудь программистами.
1С:Предприятие.Или набивать объектную колоду на клавишном механическом перфораторе (передавать по телеграфу или воспользоваться другими технологическими достижениями цивилизации). Или оператору поработать загрузчиком, используя пульт управления ЭВМ. Щелкать тумблерами, глядя на лампочки на панели управления.
1
|
|||
|
Заблокирован
|
||
| 24.11.2019, 01:18 [ТС] | ||
|
про объектный файл:
существует ди какое-то соглашение общемировое или общевселенское - согласно которому байты объектного файла необходимо интерпретировать именно надлежащим образом, или на каждой эвм и аппаратно вычислительном комплексе объектный файл одной и тоже же программы будет разным? что появилось раньше язык ассемблера или сам ассемблер. под языком понимаю синтаксис. или синтаксис и языковые конструкции зависят в первую очередь от железа. например умеет железо открывать портал в ад одной командой , одним триггером , единичкой и в ассемблере появляется инструкция открытие портала в ад "ex666" или от производителя железа требуют - сделайте ваш портал в ад согласно спецификации , чтобы он открывался не единичкой , а пакетом из тыщи килобайт. я вот не понимаю, когда в эту тему вплетается ассемблер и откуда он берется. вот у меня есть лампочка, и тумблер открывающий портал, я хочу через адинеску дать возможность всем открывать портал и получать отчет об этом. в каком месте понадобиться программировать на ассемблере, учитывая что адинеска веб сервер и ос уже работоспособны - я разработал только тумблер на схеме , лампочку и портал? как-то так. Добавлено через 14 секунд в какком месте появляется ассемблер. Добавлено через 1 минуту вообще в каком месте появляется язык программирования и как он появляется? что является необходимым требованием для его появления, что вот без него - ну никак. Добавлено через 58 секунд вот ![]() родил. ассемблер - это язык ? если язык, то ассемблер - это язык программирования?
0
|
||
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,128
|
||||||||||||||||||||||||||||||
| 24.11.2019, 01:32 | ||||||||||||||||||||||||||||||
x86 instruction listings
1
|
||||||||||||||||||||||||||||||
|
Заблокирован
|
||||
| 24.11.2019, 02:01 [ТС] | ||||
|
а соглашение о двоичном коде оно всемирное или как. т.е. 010101010111010100101000101011010101 может значить совершенно разные вещи в разной интерпритации. т.е имеется ли некий стандарт двоичного rjlf что вот первые 32 байта - это описательная часть, следующие 128 -это суть, пакет состоит из 256 байтов и т.п. Добавлено через 1 минуту Добавлено через 3 минуты и тогда возвращаясь к нашей схеме с лампочкой и триодом, и добавим в неё процессор, у которого есть три команды открыть портал - 01 зажечь лампочку - 10 и ничего не делать - 11 00 - запасная. и вот слева процессор, справа набор байтов от адинески. увеличим набор байтов от адинески слева в нем выходные байты в середине -что ассемблер ? справа входная информация это верно ? Добавлено через 32 секунды ассемблеры разные а язык ассемблера один +_, у кого то богаче у кого-то беднее? Добавлено через 1 минуту ассемблер расширяемый язык. и получается он живее всех живых. ок. спс.
0
|
||||
|
Модератор
|
||
| 24.11.2019, 08:50 | ||
|
Один ассемблер может обрабатывать исходные файлы на разных языках. Например, на языке другого ассемблера, чтобы не переписывать готовые программы на этом языке. Проще и лучше кратко по-русски называть язык ассемблера asm, чтобы не путать его с ассемблирующей программой. Другой термин с британским акцентом - Автокод(Autocode, Autocoder). Он обозначает любую пргораммирующую программу, в том числе ассемблеры (Автокод 1:1). Описание автокода для одной из ЭВМ 1960-х. В конце - немного о формате машинных команд, и о том, как автокод работает с памятью. http://compsoc.nuigalway.ie/~b... ocode.html Введение в программирование http://compsoc.nuigalway.ie/~b... -1-AA.html
0
|
||
|
Модератор
|
|||
| 24.11.2019, 09:59 | |||
|
Или при проектировании системы решили исползовать 1Сик как основной и единственный язык системного программирования. Добавлено через 31 минуту В системе команд ЭВМ общего назначения фирмы IBM с 1960-х годов есть готовые инструкции для выполнения арифметических операций над цепочками дестятичных цифр без преобразования в двоичную форму и обратно. А для некоторых микроЭВМ даже для того, чтобы перемножить пару 4-битных чисел, приходилось и приходится писать программу из дюжины инструкций и/или прошивать таблицу умножения в ROM.
0
|
|||
| 24.11.2019, 09:59 | |
|
Что ждет Pascal в будущем ? Что пишут на C#? Что на чем пишут? Что вы думаете о будущем ARM - пойдёт в массы, али нет? Какую технологию лучше изучать - что будет популярно в будущем!? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|