Скромный гений

Страницы: 1 2 3  ОТВЕТИТЬ НОВАЯ ТЕМА
FilippOk 17 июн 2026 в 16:37
Ярила  •  На сайте 11 лет
-3
Цитата (EVPATORIETS @ 17 июн 2026 в 00:21)
...До появления Си большая часть системного кода была написана на ассемблере, что означало, что каждая программа была привязана к конкретному оборудованию, на котором она выполнялась. Вы не могли перемещать код между машинами. Вы каждый раз переписывали его с нуля.

Бред какой...
Про COM-файлы что, забыли уже?
Не надо было ничего переписывать, Асм на любой архитектуре как пахал, так и пашет. Ещё и быстрее, чем любой другой язык, потому что низкоуровневый.
Я на Асме 10 лет писал, не надо ля-ля.
К слову, для абсолютного большинства драйверов и сейчас ядро на Асме делается.
Короче, автор малость не в теме того, о чем пишет.
amkarnaf 17 июн 2026 в 18:12
Ярила  •  На сайте 12 лет
1
Цитата (avaava @ 17 июн 2026 в 13:03)
MASM и TASM делают код для одного и того же процессора! Как же так, человек пишет на разных языках (а они, бляха-муха, разные! Я в них путался иногда), а потом процессор понимает и тот и другой? Вот именно этот перевод с языка символов (буковок) в цифру и есть компиляция. И да, смещения рассчитывает тоже компилятор (если вы ими пользуетесь:? Нет, вы пользуетесь, иначе всё будет ну очень печально). Это делает компилятор, он просчитывает адреса в блоке данных, он рассчитывает адреса возврата из функций (вру, это делает процессор), он заменяет команды их кодами, он подставляет адреса вместо названий переменных (вы же при написании используете переменные, не так ли? Или запоминаете адрес каждой?). Компилятор именно компилирует программу. Но никаких оптимизаций ассемблер не делает. Это правда. Всё как написал человек. Поэтому его результат работы обратим. Можно и туда и сюда. Чем и пользуются, когда изучают программу без исходного кода.


И да, книжка такая у меня тоже есть, только коричневая. Простая и понятная, не то что нынешние по C++, где так наворотили синтаксис, что интуитивно понять написанное весьма непросто.

Касаемо MASM и TASM: это фактически один язык - "ассемблер", ASM, хотя и с несколько различающимся диалектом (или, если хочешь, разные диалекты одного языка), если можно так выразиться, а не разные языки, не надо передёргивать.

Относительные смещения в зависимости от длины команды расставляет ассемблер, а полные смещения расставляет линкер уже после этапа перевода в объектный код.

Это сообщение отредактировал amkarnaf - 17 июн 2026 в 18:14
Domatsu 17 июн 2026 в 18:21
Оналитег и психолаг  •  На сайте 8 лет
1
Цитата (FilippOk @ 17 июн 2026 в 18:37)
Не надо было ничего переписывать, Асм на любой архитектуре как пахал, так и пашет. Ещё и быстрее, чем любой другой язык, потому что низкоуровневый.

А как вы перенесёте без переписывания код на ассемблере написанный для intel 8086 на условный Zilog Z80?
Я с текущим инструментарием не знаком в части асма, но раньше ответ был один - никак.
amkarnaf 17 июн 2026 в 18:22
Ярила  •  На сайте 12 лет
1
Цитата (FilippOk @ 17 июн 2026 в 15:37)
Цитата (EVPATORIETS @ 17 июн 2026 в 00:21)
...До появления Си большая часть системного кода была написана на ассемблере, что означало, что каждая программа была привязана к конкретному оборудованию, на котором она выполнялась. Вы не могли перемещать код между машинами. Вы каждый раз переписывали его с нуля.

Бред какой...
Про COM-файлы что, забыли уже?
Не надо было ничего переписывать, Асм на любой архитектуре как пахал, так и пашет. Ещё и быстрее, чем любой другой язык, потому что низкоуровневый.
Я на Асме 10 лет писал, не надо ля-ля.
К слову, для абсолютного большинства драйверов и сейчас ядро на Асме делается.
Короче, автор малость не в теме того, о чем пишет.

На SUN твой код не будет работать, если ты его для х86 писал. И причём тут COM файлы? Файлы COM от EXE отличаются только тем, что первый не может быть более 64 килобайт и уж не знаю остались ли, а второй может быть очень большим.
АстроМаг 17 июн 2026 в 18:25
Ярила  •  На сайте 1 год
0
Цитата (,)

Скромный гений


И, по моему мнению, - извращенец. Пробовал на Юниксе работать в конце 90х годов прошлого века.
Эта же какой геморой все команды строчками в 100-200 знаков выписывать... gigi.gif

То ли дело ДОС. rulez.gif

И да, в 90х годах на Юниксе не было вирусов. Ну так мне друзья-айтишники говорили.
Я к ним приходил в тетрис поиграть sm_biggrin.gif
DartАньян 17 июн 2026 в 18:47
Весельчак  •  На сайте 11 лет
1
Етить колотить... Мне вот почему то всегда казалось, что С и С++ ну это дальнейшее развитие Pascal (Turbo Pascal), только малость приближенное к железу прямыми обращениями.
Могу ошибаться, конечно, хотя в универе учили в основном считать на паскале и Фортране. Для понимания были и основы микропроцессорной техники , и программирование в маш.кодах.
Давно, было уже, правда..

Размещено через приложение ЯПлакалъ
костянкор 17 июн 2026 в 19:29
Приколист  •  На сайте 3 месяца
1
Я что то ничего не увидел про Фортран, который фундамент всех языков программирования.
Или я ошибаюсь?

Размещено через приложение ЯПлакалъ
Domatsu 17 июн 2026 в 20:03
Оналитег и психолаг  •  На сайте 8 лет
0
Цитата (костянкор @ 17 июн 2026 в 21:29)
Я что то ничего не увидел про Фортран, который фундамент всех языков программирования.
Или я ошибаюсь?

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

Но к Ритчи он отношения не имеет, да специализация этого языка была в другом направлении.
Buzzkill 17 июн 2026 в 20:10
Токсичный Душнила  •  На сайте 12 лет
-2
Цитата (ovk @ 17.06.2026 - 00:36)
И умер наверно не в роскошном особняке
Талантлив был чувак, спасибо ему!

Ну да, аквадискотеки не обустраивал, зато его вклад в современные ИТ - непереоценим. Да по хорошему и не только в ИТ.

Размещено через приложение ЯПлакалъ
plintus 18 июн 2026 в 13:41
Ярила  •  На сайте 11 лет
2
Цитата (FilippOk @ 17 июн 2026 в 16:37)
Асм на любой архитектуре как пахал, так и пашет. Ещё и быстрее, чем любой другой язык, потому что низкоуровневый.

шта?
у каждого процессора своя система команд, соотв свой ассемблер. z80 Фаджина, который изобрел собственно схемотехнику процессоров в интелях является наследником идей 8080 но они ваще не совместимы никак
Цитата (FilippOk @ 17 июн 2026 в 16:37)
Про COM-файлы что, забыли уже?

при чем тут raw образ памяти и ассемблер?

Это сообщение отредактировал plintus - 18 июн 2026 в 13:47
EVPATORIETS автор 19 июн 2026 в 18:16
Ярила  •  На сайте 15 лет
0
Цитата (MrME @ 17.06.2026 - 11:29)
Петцольд "Код. Тайный язык информатики" - как раз про это.

Если вкратце:
Есть лексический анализатор, который разбирает написанный тобой код на значимые фрагменты, отбрасывая лишнее (пробелы, комментарии и пр.). Синтаксический анализатор строит из значимых фрагментов дерево парсинга. Компилятор обходит дерево, применяет оптимизации при необходимости, и генерирует исполняемый машиной код. Среда программирования - обёртка над компилятором и кучей других вспомогательных инструментов для удобства использования. Среда программирования разработки так же написана на каком-то из языков программирования, как и любая другая программа. В принципе, на любом Тьюринг-полном языке можно написать любую программу, в том числе и среду разработки, и компилятор.

В самом начале компьютеры программировались ручным вводом машинных кодов. Затем для кодов придумали мнемоники, т.е. имена, для удобства. Грубо, вместо кода 0110 1101 1001 1100 стали писать ADD. Это - языки ассемблера, или просто ассемблеры (именно во множественном числе, для разных процессоров разные и ассемблеры). В базовом случае, команды ассемблера прямо переводятся в машинные коды простой заменой по списку, потому его называют низкоуровневым языком. А вот для высокоуровневого языка уже нужен компилятор - смотри выше.

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

Это всё очень грубо и упрощённо, на самом деле там всё сложнее, но суть примерно такова.

Первый в истории компилятор создала Грейс Хоппер, она же и ввела в оборот это слово. Один из первых коммерчески используемых компиляторов (и, заодно, высокоуровневых языков) - Fortran (сокр. от Formula Translator, переводчик формул) - Дж. Бэкус, 1957.

Вот не зря "на заре" наши изучали Фортраны (Аголы, Коболы, Лиспы), потом появился высокоуровневый Паскаль

Размещено через приложение ЯПлакалъ
Ventil98 19 июн 2026 в 20:06
Ярила  •  На сайте 11 лет
0
Цитата (EVPATORIETS @ 19 июн 2026 в 18:16)
Вот не зря "на заре" наши изучали Фортраны (Аголы, Коболы, Лиспы), потом появился высокоуровневый Паскаль


Да, было время - берешь пустографку, пишешь в клеточках цифры и буквы, сдаешь в окошко оператору на БЭСМ-6. На следующий день получаешь пачку листов распечатки с АЦПУ и колоду перфокарт. По распечатке строишь график и смотришь, сошелся ряд (решение уравнения численными методами) или тебе не повезло gigi.gif

Кстати, насчет Паскаля древнее послание (снятое в одной из первобытных пещер на Западе США) потомкам Вирта:
Цитата
                                              Ed Post
                                              Wilsonville, Orezon

    В прошлом, во  времена  золотой  эры ЭВМ было легко отличать
  мальчика от мужа (иначе  их  называют  "сосунки"  и  "настоящие
  мужчины", соответственно). Тогда настоящие мужчины были те, кто
  понимал в программировании,  с сосунки  -  те,  кто не понимал.
  Настоящий программист легко произносил такие фразы,  как "DO 10
  I = 1, 10" или "АВОСТ", а все остальные нечто вроде "ЭВМ  слиш-
  ком сложна для меня" и "Я не могу полагаться на ЭВМ - они слиш-
  ком безличны". Предыдущая работа, B. Feirstein, "Настоящие муж-
  чины не употребляют фруктовый пирог", издание PocketBook, 1982,
  отмечает,  что настоящие мужчины  ни на что не полагаются  и не
  боятся быть обезличенными.

    Но времена меняются.  Сегодня  мы  живем в мире,  в  котором
  маленькие  старые  дамы  могут  приобрести  компьютезированную
  микроволновую  печь,  12-летние  пацаны  могут  выбить из колеи
  настоящих мужчин при игре на ЭВМ в астероиды и в очко и, вообще,
  любой человек может купить и понять свой собственный персональ-
  ный компьютер. Настоящий программист в опасности, он может быть
  заменен студентами высшей школы.

    Однако,  существует  разница между студентом-первокурсником,
  освоившим на ЭВМ игру в очко и настоящим программистом.  Знание
  этих  различий  может помочь детям  познать к чему стремиться -
  модель поведения,  стереотоп отца.  Это также поможет сохранить
  рабочие места для настоящих программистов.

    Самый простой способ определить, кто является настоящим про-
  граммистом - по используемому языку программирования. Настоящие
  программисты используют  Фортран.  Сосунки  используют Паскаль.
  Никлауса Вирта, разработчика Паскаля, однажды спросили: "Как вы
  произносите свою фамилию?".  "Вы  можете  обращаться ко  мне по
  фамилии, произнося ее 'Вирт', или обращаться ко мне по значению,
  'Ворт'", - ответил он. [Игра слов : Nicklaus Wirth произносится
  так же, как английское слово Worth - стоящий, ценный]

    Исходя из этой ремарки, любой сразу поймет, что Никлаус Вирт
  - сосунок.  Единственный механизм передачи параметров, принима-
  емый  настоящим программистом - ото передача параметров по зна-
  чению,  как это реализовано в компиляторах  Фортрана G и H  для
  ЭВМ ИБМ/370.  Настоящим программистам  для выполнения работы не
  нужны абстрактные концепции: для счастья им достаточно перфора-
  тора,  компилятора Фортран-IV  и пива.  Настоящие  программисты
  пишут программы работы со списками, обработки строк,  учета ре-
  сурсов (если они вообще это делают) и искусственного  интелекта
  на Фортране.

    Если вы не можете выполнить эти работы на Фортране, выполни-
  те их на ассемблере. Если же их нельзя выполнить на ассемблере,
  их не стоит делать вообще.
aalm 19 июн 2026 в 21:37
Юморист  •  На сайте 12 лет
1
Цитата (FilippOk @ 17 июн 2026 в 16:37)
К слову, для абсолютного большинства драйверов и сейчас ядро на Асме делается


Агац - то-то они по гигу весят как нехуй делать - чистый ассемблер. Все индусские программеры будут кодить лет сто, чтоб накодить гиг кода на ассемблере.
Ventil98 20 июн 2026 в 08:49
Ярила  •  На сайте 11 лет
0
Цитата (aalm @ 19 июн 2026 в 21:37)
Цитата (FilippOk @ 17 июн 2026 в 16:37)
К слову, для абсолютного большинства драйверов и сейчас ядро на Асме делается


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

Что весит гиг? Инсталлятор? Так там кроме набора драйверов под разные версии ОС еще куча приблуд для настройки, особенно для графических карт и звуковух с обязательным довеском C# библилотек, написанных индусами.
Сам драйвер весит обычно около сотни КИЛОбайт, например cdrom.sys или amdsata.sys Можно посмотреть в папке C:\windows\system32\drivers
Понравился пост? Ещё больше интересного в ЯП-Телеграм и ЯП-Max!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 17 802
0 Пользователей:
Страницы: 1 2 3  ОТВЕТИТЬ НОВАЯ ТЕМА

 
 

Активные темы



Наверх