- •В.Ф. Гузик, с.М. Гушанский, в.А. Каляев, а.О. Пьявченко, а.И. Костюк основы программирования на языке «ассемблер»
- •1. Введение для кого написано это учебное пособие.
- •2. Предварительные сведения или азы, которые необходимо знать!
- •2.1. Ассемблер, что это такое?
- •2.2. Как писать ассемблерную программу, и какие программы нужны для ее последующей трансляции.
- •2.3. Системы счисления
- •2.4. Оперативная память.
- •2.5. Стек
- •Сегментация памяти.
- •Программная модель процессора.
- •Система команд.
- •Inc word ptr [bx]
- •2.9 Выделение памяти под переменные и массивы
- •2.10 Exe и com программы
- •2.11 Трансляция ассемблерной программы
- •Passes: 1
- •Примеры программирования на ассемблере.
- •3.1. Наша первая программа.
- •3.2. Работа с клавиатурой и экраном.
- •Прерывания dos для работы с клавиатурой.
- •Функция 7 прерывания int 21h
- •Функция 6 прерывания int 21h.
- •Функция 0ah прерывания int 21h.
- •Прерывания bios для работы с клавиатурой
- •1. Функция 0 прерывания int 16h
- •Входные параметры: нет
- •2. Функция 1 прерывание int 16h
- •Входные параметры: нет
- •Прерывания dos для работы с экраном
- •1. Функция 2 прерывания int 21h
- •2. Функция 9 прерывание int 21h
- •Прерывания bios для работы с экраном
- •Функция 1 прерывание int 10h
- •Функция 2 прерывание int 10h
- •Функция 3 прерывание int 10h
- •Функция 6 прерывание int 10h
- •Функция 9 прерывание int 10h
- •Функция 0eh прерывания int 10h
- •Задания к лабораторной работе «Клавиатура и экран»
- •Работа с гибкими дисками.
- •Inc nomber
- •3.4. Перехват прерываний и создание резидентных программ
- •Inst: mov ah, 9
- •Inst: mov ah,9
- •3.5. Работа со звуком.
- •Отладка программ.
- •Приложение
- •Сервисные прерывания dos.
- •Сервисные прерывания bios.
- •Int 10h, функция 07h. Инициализация или прокрутка окна вниз.
- •Int 10h, функция 08h. Чтение символа и атрибута в позиции курсора.
- •Int 10h, функция 09h. Запись символа и атрибута в позицию курсора.
- •Int 10h, функция 0ah. Запись символа в позицию курсора.
- •Int 10h, функция 0eh. Запись символа в режиме телетайпа.
- •Int 10h, функция 10h, подфункция 03h. Переключение бита «мерцание/яркость».
- •Int 10h, функция 13h. Запись строки в режиме телетайпа.
- •Int 15h, функция 86h. Программная задержка на заданное число микросекунд.
- •Int 16h, функция 00h (10h). Чтение символа с клавиатуры.
- •Int 16h, функция 01h (11h). Чтение символа с клавиатуры.
- •Int 16h, функция 02h (12h). Получение статуса клавиатуры.
- •Int 1ah, функция 0h. Число тиков таймера.
- •Коэффициенты пересчета для нот
- •Значение цветов в байте атрибута
- •Буфер клавиатуры.
- •Литература
- •7. Содержание
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ТАГАНРОГСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
В.Ф. Гузик, с.М. Гушанский, в.А. Каляев, а.О. Пьявченко, а.И. Костюк основы программирования на языке «ассемблер»
Учебное пособие
Таганрог 2003
УДК 681.3(075.8)+681.324(075.8)
Гузик В.Ф., Гушанский С.М., Каляев В.А., Костюк А.И., Пьявченко А.О. Основы программирования на языке «АССЕМБЛЕР»: Учебное пособие.
Таганрог: Изд-во ТРТУ, 2003, с.
Данное учебное пособие призвано дать студенту первые практические навыки в написании программ на языке Ассемблер для IBM подобных ПЭВМ.
Пособие может быть рекомендовано для изучения студентам специальностей: 22.01, 22.04, 22.06 и.т.д.
Табл. . Ил. . Библиограф: назв.
Печатается по решению ред.-изд. Совета Таганрогского государственного Радиотехнического Университета.
Р е ц е н з е н т ы:
Таганрогский НИИ Связи, ведущий сотрудник ТНИИС А.В. Маргелов, д.т.н., с.н.с.
Н.И. Витиска, д.т.н., проф., проректор по УР ТГПИ.
1. Введение для кого написано это учебное пособие.
В течение календарного года курс «Организация ЭВМ и систем» изучают почти 500 студентов различных специальностей. В силу специфики, присущей каждой специальности, уровень исходной подготовки студентов имеет существенные различия. В частности, студенты многих специальностей и подавляющее большинство студентов, пришедших из различных филиалов, практически ничего не знают о таком языке как Ассемблер и, тем более, о принципах программирования на этом языке. В то же время изучение курса «Организация ЭВМ и систем» предполагает хотя бы минимальное знание Ассемблера и наиболее распространенных команд этого языка, таких как mov, in, out, push, pop и ряда других. Кроме того, в процессе изучения курса «Организация ЭВМ и систем» студенты выполняют восемь лабораторных работ, половина из которых требует минимального, а вторая половина достаточно полного знания языка Ассемблер, поскольку в последних из указанных работ требуется писать на этом языке полноценные программы.
Изучение принципов программирования на языке Ассемблер для человека, начинающего изучать этот язык «с нуля» сопряжено с немалыми трудностями. Связано это с тем, что программирование на Ассемблере предполагает знания в таких, казалось бы, далеких друг от друга областях как:
система машинных команд процессора;
набор доступных программисту внутренних регистров процессора и специфика использования каждого из этих регистров;
аппаратная организация ПЭВМ;
программная организация ПЭВМ;
и.т.д.
Совершенно естественно, что новичок не понимает, за что взяться в первую очередь, решение одной проблемы требует знаний из других областей, то есть приводит к новым проблемам. В результате у новичков начинают «разбегаться глаза», а впоследствии у многих из них «опускаются руки».
По тем же самым причинам возникают серьезные трудности и у преподавателя. Преподавателю, рассказывающему о какой-то проблеме постоянно приходиться привлекать сведения из других областей, логика изложения теряется, и студент перестает понимать что-либо. Другими словами, объяснять программирование на Ассемблере – занятие достаточно неблагодарное.
Авторы данного пособия не претендуют на совершенное знание Ассемблера, однако они имеют большой опыт в проведении лабораторных работ на этом языке, следовательно, им хорошо известны типичные проблемы, с которыми сталкиваются студенты, типичные ошибки, которые они допускают и типичные «грабли», на которые наступает большинство из них.
Данное учебное пособие в первую очередь предназначено для студентов, ничего не знающих о программировании на языке Ассемблер. Именно поэтому авторы стараются давать только минимально необходимые сведения, не перегружая текст очень важными и нужными подробностями, если, по мнению авторов, без них все же можно обойтись. При этом авторы считают, что, освоив азы программирования на Ассемблере, студенты сами (уже без труда) разберутся с этими подробностями.
Итак, резюме: данное пособие предназначено, прежде всего, для начинающих и призвано дать им возможность безболезненно пройти начальный этап в написании ассемблерных программ. А именно этот этап и является «камнем преткновения». После того как освоены азы программирования на Ассемблере, никаких особых трудностей у студентов, как правило, не возникает. Студенты, уже освоившие азы ассемблерного программирования, могут найти в этом пособии ряд алгоритмов, которые удобно использовать при выполнении некоторых лабораторных работ, да и в жизни тоже. Студентам, имеющим большой опыт программирования на Ассемблере, данное пособие можно не читать, оно попросту написано не для них.
Еще одно замечание. В этом учебном пособии ни слова не говориться об ассемблерном программировании под WINDOWS, подразумевается, что мы работаем только с DOS.