Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
асс 2-1-1печать.doc
Скачиваний:
16
Добавлен:
03.05.2015
Размер:
231.94 Кб
Скачать

17

Введение

В ряду языков программирования Ассемблер занимает особое место. Это инструмент специалистов, работающих с операционными системами и их составляющими. В рамках изучения дисциплины «Системное про-граммирование» студенты должны получить начальные навыки по Ас-семблеру. Требуемая учебно-методическая литература по этому разделу отсутствует, что формирует потребность издания методических указа-ний.

Работа преследует цель познакомить студентов с основными методи-ческими приемами разработки программ, с базовыми функциями языка.

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

Краткие сведения об ассемблере

Язык Ассемблера является ориентированной на человека формой на-бора инструкций процессора (который называется также машинным языком). Поскольку машинный язык и язык Ассемблера функционально эквивалентны, на языке Ассемблера намного проще программировать. Язык Ассемблера позволяет иметь дело с мнемоническими именами ин-струкций. При этом инструкции транслируются из мнемонического вида в их машинный эквивалент. Это, несомненно, большое преимущество, так как люди просто не могут достаточно эффективно думать на число-вых языках. Неплохим качеством Ассемблера является то, что он позво-ляет управлять действиями процессора поэтапно (по операциям) и с мак-симальной эффективностью. К числу его недостатков можно отнести тот факт, что при каждом отдельно взятом действии процессора выполня-ется совсем немного функций, что отражает ограниченные возможности того, на что в действительности способен процессор. Например, процесс сложения двух длинных целых чисел и сохранения результата в третьем целом значении занимает на языке Си только одну строку: i = j + k; а на Ассемблере процессора 80Х86 это потребует шести строк.

Объем скомпилированного машинного кода на языке Си будет не меньше (а вероятнее всего больше), чем шесть машинных инструкций на языке Ассемблера. Но легче написать одну строку , чем шесть на Ассемблере (необходимо помнить, что инструкции Ассемблера отра-жают элементарные "способности" компьютера, и программы, написанные на любых языках, должны перед выполнением транслиро-ваться в машинный язык).

Зачем же тогда вообще использовать Ассемблер, если на нем про-граммировать труднее, чем на других языках? Причина в том, что Ассемблер позволяет обратиться к любой ячейке памяти и непосред-ственно управлять любым устройством ввода-вывода. С другой сторо-ны, Ассемблер является "родным" языком компьютера, хорошо напи-санная на Ассемблере программа позволит получить код с наимень-шим временем выполнения. Качество выполняемого кода, получаемо-го в других языках, страдает оттого, что приходится выполнять транс-ляцию с этого языка на машинный язык, а код на языке Ассемблера отображается в машинный язык непосредственно, без малейшей поте-ри эффективности. На языке Ассемблера вы указываете компьютеру, что нужно делать, и он делает именно это - не больше и не меньше.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]