Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2020, 22:51   #11
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Если принять, что ВУЗ готовит не крутых спецов по взлому, а с базовым не твёрдым знанием ассемблера, то нормальное изучение программирования под DOS имеет преимущество.

Довод в защиту изучения DOS - дальнейшее изучение микроконтроллеров.
Это из-за наглядности.
Но в DOS нужно изучать прерывания и работу с портами ввода-вывода, протоколы обмена.
Тогда это осмысленно.

Для разработчика ассемблер x86-32 и x86-64 в Windows и Linux ничего ценного не добавляет по сравнению со средствами C/C++/Delphi - ОС никуда не пускает. А уровень подготовки по ассемблеру - читаю, но не пишу - не позволит студенту понять разницу.

В подобном случае изучение DOS оправдано.

Специалисты по АСУ ТП дальше будут изучать ПЛК и ПР с языками, похожими на Pascal и ассемблер. Т.е. представления об ассемблере пригодятся. Именно общие представления.

Минусы для DOS - несерьёзное отношение к древней ОС, проблемы с настройкой рабочей среды.

Т.е. первичен вопрос - зачем учить ассемблер на данном курсе?
И из него - выбор ОС и прочего.
FPaul вне форума Ответить с цитированием
Старый 15.06.2020, 04:47   #12
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

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

Ассемблер под виндой имеет намного больше возможностей, чем та-же сишка/дельфи. Но если ты всю/свою сознательную жизнь потратишь на изучение трупа-дос, то можешь и не узнать никогда об этом. Мозги студентов и так "защищены от записи", а в вузах в них насильно пытаются запихать ещё и мусор. Закончив вуз и столкнувшись с реальной жизнью студент обнаруживает, что всё-чему его обучали столько лет, на самом деле уже давно нет.. нужно изучать уже совсем другое.. Вперёд надо двигаться, а не назад идти..
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 15.06.2020, 08:55   #13
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Главный вопрос - с какой целью (перспективой) преподавать ассемблер?

Ассемблер в Windows и Linux не даёт никаких преимуществ перед C. Все его действия ограничены узким пространством сегмента данных, а всё что расположено дальше - только через WinAPI.
Возможна мелкая оптимизация - после оптимизации алгоритма.
Изучение системы ОС, построение программы - удобнее через C - тексты демонстрационных исходников короче.

Таким образом, изучение ассемблера под Windows и Linux ограничится перечнем инструкций, организацией подпрограмм, раздельной компиляцией и взаимодействием с программой на C/Delphi.
Т.е. обзорное изучение.

Если ассемблер изучается для первой ступени хакерства - на других предметах будет изучение методов взлома при помощи декомпилятора и отладчика - то тут требуется ассемблер для Windows и Linux, а никакой не DOS.

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

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

Но программирование в DOS сопровождается проблемами:
1. психологические - "нам вообще ассемблер не нужен, а тем более под DOS"
2. трудно организовать рабочее пространство - его и в Windows/Linux непросто (непривычно - без IDE) организовать
3. и да - от студента требуется больше читать - не только по инструкциям, но и по "железу".

Т.е. цель подбирает инструмент.
FPaul вне форума Ответить с цитированием
Старый 15.06.2020, 14:12   #14
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от FPaul Посмотреть сообщение
Ассемблер в Windows и Linux не даёт никаких преимуществ перед C. Все его действия ограничены узким пространством сегмента данных
Это логика того, кто никогда не вылазил из своего любимого доса, и цель его жизни сложить два числа или отсортировать массив.

В защищённом режиме сила асма в том, что он умеет работать с регистрами напрямую. Именно поэтому где сишка спотыкается, он подставляет ей своё плечо в виде вставок. А секция-данных здесь на последнем месте, если вообще имеет место быть.
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 15.06.2020, 18:51   #15
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
Это логика того, кто никогда не вылазил...
На долгие рассуждения врага о допустимости изучения DOS, мы лаконично отвечаем: "Сам дурак!"

Остановим никчёмное препирательство...

Успехов.
FPaul вне форума Ответить с цитированием
Старый 15.06.2020, 22:51   #16
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от FPaul Посмотреть сообщение
мы лаконично отвечаем: "Сам дурак!"
умник... мания величия у тебя, если ты сам-себя называешь на вы
копаешься в дерме мамонта? ну и продолжай.. имеешь право.
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 16.06.2020, 00:31   #17
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Нет, не мания величия. Это слегка изменённая фраза из "Прекрасной Елены" Оффенбаха.

Я пытаюсь пояснить аргументы за изучение DOS, а в ответ лапидарная и сильнейшая аргументация
Цитата:
Сообщение от R71MT Посмотреть сообщение
копаешься в дерме мамонта?
Цитата:
Сообщение от R71MT Посмотреть сообщение
Это логика того, кто никогда не вылазил из своего любимого доса
Вот с горечью и вспомнил оперетту.

Видимо, вы не способны к обсуждению. Как и прежде - нужно или подпевать вам или вы будете через колено ломать несогласных - других мнений быть не должно.
FPaul вне форума Ответить с цитированием
Старый 16.06.2020, 19:22   #18
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от FPaul Посмотреть сообщение
Видимо, вы не способны к обсуждению
ты не тот человек,
в тебя школа напихала лайков, и ты потерялся
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 22.06.2020, 00:09   #19
Aeron
 
Регистрация: 02.04.2020
Сообщений: 5
По умолчанию

R71MT, Насколько сильно отличается программирование под DOS и программирование под BIOS? От программирования контроллеров отличается сильно, соглашусь. Но ведь здесь схемы очень похожие (на мой взгляд). С точки зрения реализации уроков - проще всего организовать урок программирования на ассемблере как раз под DOS, а не под тот же Windows (за который нужно платить) и не под Linux (который не всякий преподаватель или обслуживающий персонал сможет поставить), я уже не говорю о том, что в СНГ действуют тайные инструкции, которые запрещают определённые виды даже бесплатного программного обеспечения, распространяемые по определённым видам лицензий. Конечно, не хочется перечислять здесь все плюсы устаревшей операционки в бюрократическом подтексте и в удобстве для работы (даже если установлена другая ОС есть DosBox), по этому перейду к следующему пункту - а именно удобство программирования. Согласитесь, что в Win чуточку сложнее писать, чем в DOS. Студенту нужно знать WinApi функции, чтобы просто вывести "Hello, world!". А к ним прибавляются разные вещи, связанные с импортом функций из библиотек, макросы и в них уже реализации высокоуровневых функций. И здесь начинаются проблемы, так как в разных ВУЗах ситуация разная. Где-то дают диалект на выбор студента, а где-то на выбор преподавателя. И уже код под Windows становится труднопереносимым между разными компиляторами. Такой проблемы в программировании DOS (или BIOS) нет. Поправьте меня, если я что-то упустил или где не прав.
Я Вас понимаю, но здесь ещё играет роль незаинтересованность самих преподавателей в изучении данного вопроса. Среди них нет специалистов, чтобы ответить на все вопросы студентов, они не будут изучать новые операционки, которые появляются довольно часто, по этому они продолжают пользоваться методичками с прошлого века.

Мне даже кажется, что заставить писать под DOS - это пропаганда якобы "новых" технологий. Подсознательно, студент чувствует что это что-то старое и ненужное, по этому он этим "в жизни" пользоваться не будет. Вы знаете современное программное обеспечение. Казалось бы, тот же Мастдай - очень большая и одна из самых капитализированных и богатых корпораций, но до сих пор не могут исправить простое перетаскивание табличек из одного места документа в другой. В больших корпорациях специально создают ошибки в работе своего же продукта, чтобы зарабатывать на тех.обслуживании и чтобы отчитываться перед пользователями что они что-то исправили в обновлении, дабы никто не думал, что продукт "застоялся". И это не обязательно будет встречаться в массовом продукте. При разработке тех же языков программирования, драйверов и прочих вещей - такие вещи так же закладываются. Вы заметили, что слишком часто обновляются стандарты программирования ? Каждый год появляются какие-то вымышленные паттерны ООП, которые чаще всего утяжеляют готовый продукт и заставляют работать людей по непонятным им правилам. И ведь представьте, если бы знаменитый полёт на Луну состоялся не 50 лет назад а только сейчас? Представьте, написанный на ассемблере код на протяжении нескольких недель работал как часы, без всяких сбоев. И это при том, что технологии интегральных схем на кристалле тоже считались только появившимися. Современная индустрия способна создать такой же по надёжный код как тогда ? Нет конечно! А современная система обучения только отпугивает юные умы.
Aeron вне форума Ответить с цитированием
Старый 24.06.2020, 20:34   #20
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

Зная ассемблер, можно восстанавливать исходный код из машинных кодов, осуществлять обратное проектирование, чтобы понять, как работает программа, проверять программы на безопасность, на наличие скрытых, недокументированных возможностей. Из работодателей - Kaspersky Lab (анализ вирусов), DrWeb(анализ вирусов), спецслужбы(анализ ядра операционной системы, анализ драйверов и железа на наличие закладок и намеренно заложенных багов) и т.д.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"

Последний раз редактировалось challengerr; 24.06.2020 в 20:39.
challengerr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблер. Ввести с клавиатуры массив из 7 целых чисел, найти и вывести на эк- ран сумму тех элементов массива, которые при делении на 5 дают в остатке 1 или 3 kosplay321 Помощь студентам 5 11.01.2018 20:53
Ввод чисел с клавиатуры в Java. Faridik Помощь студентам 3 09.09.2014 19:00
Программа для ввода строковых данных с клавиатуры. Запретить ввод пробела в строку (Ассемблер) Victor Babin Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 05.12.2012 09:38
Ввод с клавиатуры целых десятичных чисел Илья555 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 26.04.2011 09:12
Ввод чисел с клавиатуры SAVIK Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 19 26.05.2008 12:54