Пт, 15.12.2017, 02:52
Форум інформатиків України
Головна Реєстрація Вхід
Вітаю Вас, Гість · RSS
Вітання на форумі
Незнайомець
Вітаємо на форумі,
Незнайомцю!

   
зареєструйтесь
Перед реєстрацією обов’язково прочитайте:
Оновлення Учасники Пошук
Особисті повідомлення
Видавництво ’’Аспект’’ Видавництво

Сторінка 1 з 3123»
Модератор форуму: Bandalak, Ktara, НІКОЛЯ, volevikt 
Форум інформатиків » РОЗДІЛ VIІІ: ОБМІН ДОСВІДОМ (УРОКИ, ФАКУЛЬТАТИВИ, ПОЗАКЛАСНА РОБОТА) » 8.6 Факультатив з програмування » Низькорівнева мова програмування - Асемблер (Обговорення що до використання та застосування)
Низькорівнева мова програмування - Асемблер
НІКОЛЯ Дата: Ср, 13.05.2009, 15:56 | Повідомлення № 1
Знавець вірусів
Повідомлень: 2877
Нагороди: 17
Рейтинг: 201
Еволюція засобів проектування програм протягом останніх десятиліть здатна здивувати будь-яку людину, програмного забезпечення, що займається розробкою. Особливо це стосується написання програм для операційних систем сімейства Windows. Сучасні інструментальні засоби настільки розвинені, що розробник програмного забезпечення може отримати готову програму за допомогою декількох клацань. Величезна кількість книг, статей і початкових текстів програмної коди присвячено проектуванню програм на Pascal, Basic і інших мовах програмування. Мова низького рівня — мова асемблера — після смерті" MS-DOS, здавалося, доживає останні дні. Але всупереч прогнозам він не зійшов з арени і продовжує вельми широко використовуватися при розробці програм. У чому ж секрет живучості цієї мови?
Відповідь досить проста і може бути сформульований однією пропозицією: мова асемблера — це мова, на якій "говорить" процесор, і зникнути він може тільки разом із зникненням процесорів! З цієї ж причини асемблер має одну фундаментальну перевагу перед мовами високого рівня: він найшвидший. Більшість додатків, що працюють в режимі реального часу, або написані на асемблері, або використовують в критичних ділянках коди асемблерні модулі.
Нерідко можна чути твердження про те, що процес розробки програм на мові асемблера дуже трудомісткий і віднімає масу часу. Ще однією перешкодою для роботи з асемблером рахують його складність. І, нарешті, як аргумент приводиться твердження, що розробка додатків на асемблері сильно утруднена через відсутність сучасних інструментальних засобів для проектування і відладки.
Такі твердження, взагалі-то, не відповідають дійсності. Мова асемблера не складніше за інші мови програмування і досить легко освоюється як досвідченими, так і початкуючими програмістами. Крім того, останніми роками з'явилися дуже могутні інструментальні засоби розробки програм на асемблері, і це вимушує по-іншому поглянути на процес розробки програм на цій мові. Серед таких інструментальних засобів проектування можна назвати макроасемблер



Сайт по Асемблеру ТУТ

dpi Дата: Ср, 13.05.2009, 16:09 | Повідомлення № 2
Досвідчений вчитель
Повідомлень: 1438
Нагороди: 1
Рейтинг: 39
В прошлом году ученик написал реферат на эту тему (Изучение ассемблера). Да еще и диск приложил с оболочками и примерами программ. Делал все сам. Так что было бы желание.
AAN Дата: Чт, 14.05.2009, 10:17 | Повідомлення № 3
Тут підглядає ...
Повідомлень: 166
Нагороди: 2
Рейтинг: 30
У нас в университете на 4 курсе преподавали этот язык, очень плохо преподавали (типа спецкурса), хорошо, что хоть я узнала, что он есть и кое какие начальные сведения. Так это на прикладном отделении, а учителям математики и информатики даже не рассказывали о нем. А для детей это будет сложновато, на мой взгляд. Хотя, конечно, многое зависит от учителя.
НІКОЛЯ Дата: Чт, 14.05.2009, 10:35 | Повідомлення № 4
Знавець вірусів
Повідомлень: 2877
Нагороди: 17
Рейтинг: 201
Quote (AAN)
нас в университете на 4 курсе преподавали этот язык, очень плохо преподавали (типа спецкурса

Не тількив вас, практично скрізь, спілкуючись з своїми знайомими з інших регіонів України провів невеличке опитування що до асемблера ,виявляється навчальні заклади стараються обійти цю тему стороною . А якщо й викладають то тільки зжато і в загальних рисах .
PanPete Дата: Чт, 14.05.2009, 10:39 | Повідомлення № 5
Наполегливий учасник
Повідомлень: 797
Нагороди: 1
Рейтинг: 45
Quote (НІКОЛЯ)
Нерідко можна чути твердження про те, що процес розробки програм на мові асемблера дуже трудомісткий і віднімає масу часу.

Ми, старше поколінння, на безпосередній практиці пройшли період панування асемблера через користування "мікрошою" , "спектрумом", тошо. Здадки про результативність того пероду в мене чомусь викликають алергію навіть до огляду сучасного інструментарію. Тому питання ознайомлення з асемблером свідомо відкидаю при роботі з дітьми.
НІКОЛЯ Дата: Чт, 14.05.2009, 10:51 | Повідомлення № 6
Знавець вірусів
Повідомлень: 2877
Нагороди: 17
Рейтинг: 201
Quote (PanPete)
Тому питання ознайомлення з асемблером свідомо відкидаю при роботі з дітьми.

А в мене таких упереджень що до даної мови немає . Багато хто з дітей та і учасників форуму цікавляться данним питанням . Тому про доцільність чи ні ,асемблера говорити ще рано
PanPete Дата: Чт, 14.05.2009, 11:03 | Повідомлення № 7
Наполегливий учасник
Повідомлень: 797
Нагороди: 1
Рейтинг: 45
Я лише висловив приватне відношення і зовсім не чіпав питання доцільності
AAN Дата: Чт, 14.05.2009, 11:10 | Повідомлення № 8
Тут підглядає ...
Повідомлень: 166
Нагороди: 2
Рейтинг: 30
Как говориться, уважуха и респект. Я как-то тоже хотела открыть тему про ассемблер. Хотелось узнать кто-то работает с ним или нет, потому что на мой взгяд такие учителя вызывают уважение и показывают свой высокий уровень. Ну а в методической школьной литературе я даже не видела упоминания об этом языке. Если есть интересные ссылки по этой теме - поделитесь, пожалуйста.
НІКОЛЯ Дата: Чт, 14.05.2009, 12:28 | Повідомлення № 9
Знавець вірусів
Повідомлень: 2877
Нагороди: 17
Рейтинг: 201
Quote (AAN)
Если есть интересные ссылки по этой теме - поделитесь, пожалуйста.

По методиці виклдання та і по другіх аспектах що до викладання даного виду мови програмування матеріалу практично нуль, крім підручників та пару ссилок на сайти типу отакого http://www.dgma.donetsk.ua/~kit/subjects/annot.html , де теж практично нічого немає . Таке уявлення що дана мова зовсім не існує або мало застосовується хоча це помилкові висновки . Більшість моїх знайомих та друзів активно використовують Асемблер , як при розробці програмного забезпечення, так і вдосконалення існуючого. Якщо бажаєте подивитись структрні складові та зробити приблизні уявлення що це скористайтесь плугом , http://rapidshare.com/files/232798383/odbg110.zip.html вибачаюсь олдом який дає можливість погратись на досконалом рівні Якщо потрібний матеріал, електронні підручники по програмування не тільки на асемблері а й на інших мовах зокрема можна можна взяти тут. Відеоуроки по дані темі ми планували розробити до липння якщо нічого не зміниця я вважаю на дану тему матеріалу для викладання побільшає .


Відредаговано: НІКОЛЯ - Чт, 14.05.2009, 12:49
VicS13 Дата: Чт, 14.05.2009, 13:04 | Повідомлення № 10
Тут живе...
Повідомлень: 103
Нагороди: 0
Рейтинг: 6
Позволю себе абсолютно поддержать НІКОЛЯ.
Ассемблер - это сила. Нам в институте преподавали ассемблер, причем на очень серьезном уровне.
Такой себе дипломатик "Микролаб" помните? Только самые теплые воспоминания.
Когда ты сам себе являешься и редактором исходников, и компилятором и компоновщиком начинаешь на функционирование вычислительной системы смотреть немного с другой стороны.
Да, использование Ассемблера требует глубочайшего знания архитектуры той вычислительной платформы, которую ты используешь. Процессор с его регистрами, типами адресации памяти и прочим должен напрямую отображаться в ваш собственный мозг. ))))
Но та свобода, которую получаешь, когда пишешь программу на Ассемблере не сравнить ни с чем.
И потому на Асме я написал в юности свой первый досовский резидентный драйвер принтера, не дружившего с альтернативной кодировкой кирилицы.
И вирус свой первый тоже досовский Асмом ваял.... Каспер его до сих пор обнаруживает..... Да, молодость, молодость.....
Теперь по теме дальше.
Сложность современного ПК, и процессора в частности, накладывают существенные ограничения на программирование на Ассемблере даже для серьёзного программиста, но имеющего глубоких знаний в области архитектуры вычислительный систем.
Не говоря уже о детях.
Но есть более простой путь. Это микроконтроллеры.
Те же самые Атмеги, Пики (хочу прикупить и попробовать Parallax Propeller, дикая вещь, как вам 8 вычислительных ядер при совсем небольшой цене?)
Набор ассемблерный команд у мег и пиков совсем не большой. Периферия вполне понятная. Куча компиляторов с Асма, Си, Паскаля, Бейсика...
Эмуляторы.....
Этого вполне достаточно для понимания сути программирования на Асме, проникновения духом. Дальше начать копаться в Коре 2 Дуо бутет намного легче.
Ведь согласитесь, является ли проблемой для человека, знающего 3 языка программирования изучение 4-го?

А для ученика, заставившего по заранее составленному алгоримту мигать светодиодики программирование на Ассемблере будет намного нагляднее, чем пытаться что-либо понять гоняя монструозную ИДЕ, хоть и для Ассемблера....

НІКОЛЯ Дата: Чт, 14.05.2009, 13:17 | Повідомлення № 11
Знавець вірусів
Повідомлень: 2877
Нагороди: 17
Рейтинг: 201
Машинна мова і мова Асемблера.

[spoiler]Ми вже бачили, як з нулів і одиниць, що зберігаються в ПК, формуються числа.Тепер ми подивимося як комбінації тих же значень 0 і 1
можуть бути використані для програмування комп'ютера.
Машинна програма є послідовністю команд (інструкцій). Ці команди "пояснюють" комп'ютеру, що він повинен робити. Це схоже на рецепти в кулінарній книзі. У рецепті є опис дій, які необхідні для приготування певного блюда. Так само, комп'ютер має послідовність команд, які точно описують йому послідовність дій. Цей набір команд називається програмою. Процес побудови коректного набору команд називають програмуванням комп'ютера.
У наший аналогії з рецептом рецепт є програмою, а той хто його написав - програмістом. Роль комп'ютера тут грає кухар, що готує їду.
Реальна програма, яку виконує комп'ютер, це послідовність одиниць і нулів, пов'язаних з пам'яттю комп'ютера. Цю строчку біт прийнято називати машинною мовою. Машинна мова - це та мова яку машина розуміє. Комп'ютер витягує команди машинного мови з пам'яті точно певним способом. Потім комп'ютер виконує команду, позначену даною конфігурацією біт.
Проте машинна мова мало про що говорить людям. Якщо ви хочете скласти два числа в 8088 (наприклад, вміст регістрів AX BX -
короткий опис регістрів зараз послідує), команда буде виглядати таким чином:

0000001111000011b (або 03c3h)

Ці два байти точно вказують комп'ютеру яку опреацію провести. Аналогічно, для віднімання двох чисел (віднімання регістра BX з регістра AX) ми матимемо в машинній мові 0010101111000011b (або 2bc3h)
Тут необхідно коротко пояснити, що таке регістри.
Регістр - це частина процесора, призначена для збереження данних. До даних, збереженим в регістрі, процесор отримує доступ
дуже швидко - набагато швидше, ніж до даних, що зберігаються в пам'яті.
Можливо ще спеціальне використання регістрів в деяких командах.
Повний опис регістрів .
Хоча машинна мова - це дійсно чудово, якщо ви являетесь комп'ютером, він важкий для програмістів - людей. На щастя існує більш простій спосіб програмування.
Цим методом ближчим людям, ніж машинам, є програмування на мові асемблера.
Мова асемблера, як мова програмування, тобто зрозуміліший програмістові, чим машинний, мова, все ще зберігає всі значення
машинної мови. Комп'ютер читає програми на мові асемблера і переводить їх в машинну мову, в ту форму, яка зрозуміла Компютеру.
Цей процес, званий "асемблюванням" програми, фактично є перекладом з однієї мови на іншу. Операцію перекладу з мови асемблера на машинну мову виконує програма, звана асемблером.
Щоб краще зрозуміти різницю, давайте поглянемо на приклади якими ми вже користувалися вищим. Асемблерна команда для складання вмісту регістрів AX і BX проста:

ADD Ax,bx

Аналогічно, для віднімання регістра BX з регістра AX ми напишемо:

SUB Ax,bx

Асемблер перетворює ці пропозиції на форму, яку ми бачили вище. Комп'ютер сам справляється з проблемою перетворення файлу з понятним людині текстом в програму на машинній мові, яку міг би виконати процесор.
Мова асемблера не схожа на мови типу Паскаль.
Ці мови, як і багато подібних до них, є мовами високого рівня. Мови високого рівня розроблені для того, щоб
можна було мати справу безпосередньо із завданням, що вирішується програмою. У цій якості вони іноді називаються процедурними
мовами, оскільки описують процедуру, використовувану для вирішення завдання. Мови високого рівня машинно- незалежні.
Мова програмування не залежить від машини.
Програми ж на мові асемблера безпосередньо відносяться до тієї машини, на якій вони повинні виконуватися. Мова асемблера машин-
нозалежна.
Звичайне кожне затвердження мови асемблера генерує одну команду машинної мови. В деяких випадках це не так, тому що існують команди, які не є частиною виконуваної программи, а призначені для асемблера. Вони описують дії ассемблера, який повинен виконувати їх під час асемблювання.
Приклад директиви асемблеру (такою призначеною тільки для нього команди)

TITLE Приклад Програми

Ця інструкція повідомляє асемблеру заголовок програми. Після трансляції асемблером прграмми цей заголовок - "Приклад программи"- з'являється у верхній частині кожної сторінки повідомлень асемблера. Ця інструкція має сенс тільки для асемблера.[/spoiler]

Відредаговано: НІКОЛЯ - Чт, 14.05.2009, 14:06
НІКОЛЯ Дата: Чт, 14.05.2009, 13:25 | Повідомлення № 12
Знавець вірусів
Повідомлень: 2877
Нагороди: 17
Рейтинг: 201
Quote (VicS13)
И вирус свой первый тоже досовский Асмом ваял.... Каспер его до сих пор обнаруживает.....

Дана мова не дарма зветья мовою хакерів так як має дуже великі можливості . Що до вірусів я мовчу зовсім щоб не наганяти жаху ви самі розумієте які маєш можливості , та відчуття всевласття над компютером , це не можна порівняти ні з чим це потрібно пережити та відчути на собі .
Quote (VicS13)

Ведь согласитесь, является ли проблемой для человека, знающего 3 языка программирования изучение 4-го?

Геть ні . Як говорять булоб тільки бажання . А коли є бажання то знаходиться і час ,якого завжди не вистачає.

Відредаговано: НІКОЛЯ - Чт, 14.05.2009, 13:37
NatVovk Дата: Чт, 14.05.2009, 19:24 | Повідомлення № 13
Гол. ред. "Інформатики"
Повідомлень: 168
Нагороди: 0
Рейтинг: 10
НІКОЛЯ! Ото написав, так написав. Вам +1. Такої передмови (за розміром) ще в жодній темі форуму не було. Переспіваю це коротко:
Оптимізація програм — це не наука, а мистецтво, але разом з досвідом програмування такий фахівець має володіти ще й дуже розвинутою інтуїцією. От, наприклад, якщо мова йде про програми для бібліотекаря, то тут по-барабану, скільки часу виконується програма 0,1 сек, або 10 сек. Адже, порівнюючи це з фізичними діями бібліотекаря (підійти до стелажа №10, поглянути на полицю №6, взяти книжку №123, принести її відвідувачу), прорама може виконуватися й 30 сек, головне, щоб її розмір давав змогу бібліотекарю у вільний від відвідувачів час вільно розкладати косинку.
А от якщо розглянути випадок, коли Джип з бортовим комп’ютером на борту гасає трасою Київ-Бориспіль, а на зустріч летить такий самий джигіт, то тут швидкодія програми має неабияке значення для обох джигітів. Тому, шановні програмісти, думайте головою де саме працюватиме ваша ОС.
Отже, може навчати наших дітей з пелюшок такій відповідальності? А асемблер для цього — саме та примочка!

Шановні інформатики!
Скажу прямо і відверто (хоча це знову здасться комусь агресивністю): можна, звичайно й зайця навчити курити, але для чого?
Не забуваймо, що середня загальноосвітня школа має давати БАЗОВІ знання. А тому згадаймо для чого свого часу було введено курс інформатики у ЗНЗ. Прочитайте ще раз фундаментальні праці Ершова щодо цього питання. Основа мисля така: Курс інформатики у ЗНЗ вводиться для розвитку логічного мислення учнів. Саме так. А на чому конкретно показувати це? Як на мою думку, то на Паскалі — те що доктор прописав.
Можна зазвичай й на асемблерах, але тоді вас зрозуміють ще менше учнів, ніж зараз.
Отже, для розуміння асемблерів серед середнього загалу учнів (а саме на таких розраховано програму курсу інформатики й критерії оцінювання знань учнів), потрібно володіти математичною логікою не на рівні середньої школи. А якщо згадати той рівень математичної підготовки наших учнів, то залишається лише розридатися у жилетки один у одного. Невже не так?
А програмуванню мають навчати ВНЗ, тим більше, що й математична база там відповідна. Це я бачу з власного досвіду. Може я якась знову агресивна? Так не дивуйте, це я на лікарняному вже 3 дні.

dpi Дата: Чт, 14.05.2009, 19:49 | Повідомлення № 14
Досвідчений вчитель
Повідомлень: 1438
Нагороди: 1
Рейтинг: 39
Quote (NatVovk)
потрібно володіти математичною логікою не на рівні середньої школи.

Скорее воображением. Абстрактным мышлением.
Вообще надо бы провести эксперимент. Попробую дать основы в 9 классе. Потом можно будет говорить на эту тему.
NatVovk Дата: Чт, 14.05.2009, 20:04 | Повідомлення № 15
Гол. ред. "Інформатики"
Повідомлень: 168
Нагороди: 0
Рейтинг: 10
И Вы думаете, уважаемый dpi, что рассказывать про ассемблеры можно без информации о принципах работы и устройства процессора? Было бы интересно мне такой конспект почитать. Может поделитесь?
Форум інформатиків » РОЗДІЛ VIІІ: ОБМІН ДОСВІДОМ (УРОКИ, ФАКУЛЬТАТИВИ, ПОЗАКЛАСНА РОБОТА) » 8.6 Факультатив з програмування » Низькорівнева мова програмування - Асемблер (Обговорення що до використання та застосування)
Сторінка 1 з 3123»
Пошук:


© Форум інформатиків України, 2007-2017.