Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000239.doc
Скачиваний:
18
Добавлен:
30.04.2022
Размер:
1.12 Mб
Скачать

ФГБОУ ВПО

«Воронежский государственный технический

университет»

Н.И. Гундорова М.Ю. Сергеев

ОСНОВЫ ПРОГРАММИРОВАНИЯ

НА ЯЗЫКЕ АССЕМБЛЕРА ДЛЯ ПК:

ПРАКТИКУМ

Утверждено Редакционно-издательским советом

университета в качестве учебного пособия

Воронеж 2013

УДК 681.3

Гундорова Н.И. Основы программирования на языке ассемблера для ПК: практикум: учеб. пособие / Н.И. Гундорова, М.Ю. Сергеев. Воронеж: ФГБОУ ВПО «Воронежский государственный технический университет», 2013. 235 с.

Рассматриваются структура ПК на уровне регистров и памяти, основные операторы языка ассемблера.

Издание соответствует требованиям федерального государственного образовательного стандарта высшего профессионального образования по направлению 230100 «Информатика и вычислительная техника», профилю «Вычислительные машины, комплексы, системы и сети», дисциплине «Операционные системы».

Учебное пособие предназначено для студентов заочной и заочной сокращенной форм обучения.

Учебное пособие подготовлено в электронном виде в текстовом редакторе Microsoft Word 2003 и содержится в файле OS_AC_ZO.doc.

Табл. 9. Ил. 40. Библиогр.: 5 назв.

Научный редактор д-р техн. наук, проф. С.Л. Подвальный

Рецензенты: кафедра информатики и вычислительной

техники Международного института

компьютерных технологий (канд. техн. наук,

доц. И.Н. Крючкова);

д-р техн. наук, проф. В.Л. Бурковский

© Гундорова Н.И., Сергеев М.Ю., 2013

© Оформление. ФГБОУ ВПО «Воронежский

государственный технический

университет», 2013

Введение

Наиболее важной компонентой практического курса по дисциплине «Операционные системы» является изучение основ программирования на языке ассемблера – от простейших директив объявления данных до создания подпрограмм.

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

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

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

Особая глава выделена подробному описанию строения типовой программы на ассемблере. Рассматриваются все типовые сегменты программы их структура и принцип взаимодействия.

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

Полученные теоретические и практические навыки позволят разрабатывать программы на языке ассемблера, реализующие типовые алгоритмы языков программирования.

Практикум соответствует типовой программе по дисциплине «Операционные системы» и предназначен для студентов заочной сокращенной формы обучения.

1. Особенности персонального компьютера

1.1. Оперативная память

Оперативная память ПК делится на ячейки размером в 8 разрядов. Ячейки такого размера принято называть байтами (byte). Разряды байта ну­меруются справа налево от 0 до 7 (рис. 1):

Рис. 1. Порядок нумерации разрядов в байте

При этом правые разряды (с меньшими номерами) называются младшими, а левые разряды - старшими. В каждом разряде может быть записана величина 1 или 0, такую величину принято называть битом (bit). Таким образом, содержимое любого байта - это набор из 8 битов, из 8 нулей и единиц.

Ради краткости в дальнейшем содержимое ячеек будет записываться не в двоичной системе, а в шестна­дцатеричной, с указанием в конце записи числа буквы h (hexadecimal - шестнадцатеричный), чтобы отличать такие числа от десятичных. Например, если содержимым байта яв­ляется 00010011, то будем записывать его как 13h (десятичное 19).

Байты нумеруются, начиная с 0, порядковый номер байта называется его адресом. Объем оперативной памяти ПК – 220 байтов (1 Мб), поэтому для ссылок на байты памяти нужны 20-разрядные адреса - от 00000h до FFFFFh.

Далее в данном практикуме на всех рисунках, изображающих память, байты с меньшими адресами будут располагаться вверху (или слева), а с большими адресами - внизу (или справа) (рис. 2):

Рис. 2. Порядок нумерации байтов

Байт - это наименьшая адресуемая ячейка памяти. Но в ПК имеются и более крупные адресуемые ячейки - слова и двойные слова.

Слово (word) – это два соседних байта. Размер слова - 16 разрядов. Они нумеруются, если рассматривать слово как единое целое, справа налево от 0 до 15 (рис. 3). Адресом слова считается по определению адрес его первого байта (с меньшим адресом).

Рис. 3. Структура слова

Двойное слово (double word) – это четыре соседних байта или, что то же самое, два соседних слова. Размер двойного слова - 32 разряда, они нумеруются справа налево от 0 до 31 (рис. 4). Адрес двойного слова - адрес первого из его байтов (с наименьшим адресом).

Рис. 4. Структура двойного слова

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

Адрес ячейки еще не однозначно определяет ячейку, поскольку с этого адреса может начинаться ячейка размером в байт, ячейка размером в слово и ячейка размером в двойное слово. Поэтому нужно еще тем или иным способом указывать размер ячейки. Как это делается, будет рассмотрено позже.

Зачем введены ячейки разных размеров? Это связано с тем, что данные разных типов имеют разные размеры, поэтому и нужны ячейки разных размеров. Например, байты используются для хранения небольших целых чисел (типа счетчиков) и символов. В виде же слов представляют обычные целые чисел и адреса. Двойные слова используются для хранения больших чисел.