- •ПЕРЕЧЕНЬ СОКРАЩЕНИЙ
- •ПРЕДИСЛОВИЕ
- •Регистр флагов
- •Программа вывода строки
- •Примеры резервирования памяти
- •Регистровая адресация
- •Непосредственная адресация
- •Прямая адресация
- •Косвенная регистровая адресация
- •Адресация по базе
- •Пример программы задержки выполнения
- •Сложение, вычитание, умножение, деление
- •Рис. 15.1. Структурная схема ввода данных с клавиатуры
- •Пример программы для ввода с клавиатуры
- •Пример посимвольного ввода
- •Сортировка выбором
- •Сортировка вставками
- •Использование параметров в макрокомандах
- •Библиографический список
- •Приложение 1
- •Перечень команд
- •Приложение 2
Министерство образования и науки Российской Федерации
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Секаев В.Г.
ОСНОВЫ
ПРОГРАММИРОВАНИЯ НА АССЕМБЛЕРЕ
Утверждено Редакционно-издательским советом университета
в качестве учебного пособия
НОВОСИБИРСК
2010
УДК 004.431.4(075.8) С 289
Рецензенты: Е.Л. Романов, канд. техн. наук, доц., Б.Р. Шегал, канд. техн. наук, доц.
Работа подготовлена на кафедре АСУ для студентов II курса направления «Информатика и вычислительная техника»
Секаев В.Г.
C 289 Основы программирования на Ассемблере: учеб. пособие / В.Г. Секаев . – Новосибирск: Изд-во НГТУ, 2010. – 100 с.
ISBN 978-5-7782-1473-6
Изложены теоретические основы программирования на Ассемблере, который широко используется для программирования больших интегральных микросхем в автоматизированных системах управления широкого назначения.
Пособие предназначено для студентов по направлению 230100 – «Информатика и вычислительная техника», а также может представлять интерес для широкого круга специалистов, занимающихся вопросами автоматизации сложных систем.
|
УДК 004.431.4(075.8) |
ISBN 978-5-7782-1473-6 |
© Секаев В.Г., 2010 |
|
© Новосибирский государственный |
|
технический университет, 2010 |
|
2 |
ПЕРЕЧЕНЬ СОКРАЩЕНИЙ
АСУ – автоматизированная система управления АЛУ – арифметико-логическое устройство ВУ – внешнее устройство ВЗУ – внешнее запоминающее устройство ВТ – вычислительная техника ЗУ – запоминающее устройство МП – микропроцессор
ОЗУ – оперативное запоминающее устройство ОП – оперативная память ОС – операционная система
РОН –регистры общего назначения УВВ – устройства ввода-вывода УУ – устройство управления ПК – персональный компьютер ША – шина адреса ШУ – шина управления ШД – шина данных
ЦВМ – цифровая вычислительная машина ЭВМ – электронно-вычислительная машина
3
ПРЕДИСЛОВИЕ
Информатика и вычислительная техника – это область науки и техники, которая включает в себя совокупность средств, способов и методов человеческой деятельности, направленных на создание и применение ЭВМ, систем и сетей в автоматизированных системах обработки информации и управления [1]. Профессиональная подготовка специалистов по направлению 230100 «Информатика и вычислительная техника» позволяет решать задачи проектирования архитектуры компо-
нентов аппаратно-программных комплексов, применения средств вычислительной техники, средств программирования для эффективной реализации аппаратно-программных комплексов, создания компонентов вычислительных систем и автоматизированных систем, комплексирования аппаратных и программных средств, компоновки вычислительных систем, комплексов и сетей. Специалист должен знать основы Ассемблера для программирования современных интегральных микросхем средств вычислительной техники, коммуникаций и связи. В настоящей работе рассматриваются классические основы программирования на Ассемблере.
Учебное пособие по программированию на языке Ассемблера для персональных компьютеров, совместимых с IBM PC, адресовано для профессиональной подготовки специалистов по направлению «Информатика и вычислительная техника» по двум причинам: во-первых, программы, написанные на языке Ассемблера, требуют значительно меньше памяти и времени выполнения; во-вторых, знание языка Ассемблера и результирующего машинного кода дает понимание архитектуры компьютера.
4
1. АРХИТЕКТУРА МИКРОПРОЦЕССОРА i8086 |
||||
Микропроцессор i8086 – это базовый 16-разрядный МП с аккуму- |
||||
лятором (АХ), с |
20 линиями |
адреса, что |
позволяет адресоваться |
|
к 1 Мбайту оперативной памяти [2, 3, 4]. Линий управления – 16. Ча- |
||||
стота функционирования – 10 МГц. Микросхема имеет 40 выводов. |
||||
Структурная схема МП i8086 представлена на рис. 1.1. |
||||
|
Указатели |
Очередь команд |
||
|
SP |
|
Адрес/данные |
|
|
|
20 линий |
||
УУ |
BP |
|
||
|
|
|||
SI |
|
|
||
|
|
|
||
|
DI |
|
Управление |
|
|
IP |
|
||
|
|
16 линий |
||
|
|
|
||
|
Регистры данных |
|
||
АХ |
AH |
AL |
+ 5 В |
|
ВХ |
BH |
BL |
||
СХ |
CH |
CL |
Земля |
|
DX |
DH |
DL |
||
2 линии |
||||
|
Сегментные регистры |
|||
АЛУ |
|
|||
CS |
|
Синхронизация |
||
|
|
|||
|
SS |
|
||
|
|
|
||
PSW |
DS |
|
|
|
|
ES |
|
|
|
Рис.1.1. Структурная схема микропроцессора i8086 |
||||
5
Устройство управления (УУ) декодирует байты программы и управляет работой операционного устройства и шинного интерфейса.
Операционное устройство МП состоит:
–из четырех шестнадцатиразрядных регистров общего назначения
(РОН):
AX, BX, CX, DX;
–четырех регистров указателей (адресных регистров SP, BP, SI, DI) и указателя команд IP;
АЛУ с регистром признаков операций (флагов) PSW;
– четырех сегментных регистров CS, SS, DS, ES.
РОН служат для хранения промежуточных результатов операций, т. е. операндов.
Каждый из этих регистров имеет некоторые специальные функции: BX – служит базовым регистром в вычислениях адреса;
CX – в командах цикла выступает неявным счетчиком;
DX – в некоторых операциях ввода-вывода содержит адрес порта. Каждый РОН может раcсматриваться как состоящий из двух неза-
висимых 8-разрядных регистров: AH, AL, BH, BL, CH, CL и DH, DL. Адресные регистры хранят 16битовые указатели (адреса) на обла-
сти памяти.
В регистре SP (Stack Pointer) находится текущий адрес вершины стека – специально организованной области памяти.
Регистр BP (Base Pointer) хранит любой базовый адрес в области стека.
Регистры SI и DI (Source и Destination Index) адресуют области па-
мяти, называемые источником и приемником данных.
Шинный интерфейс выполняет операции обмена между МП и памятью или внешними устройствами.
В сегментных регистрах CS, SS, DS, ES хранятся указатели на 64килобайтные области памяти, называемые сегментами. Значения этих указателей могут перекрываться:
CS – сегмент кода, указывает на сегмент, содержащий текущую исполняемую программу;
SS – сегмент стека;
DS – сегмент данных;
ES – дополнительный сегмент, используется при выполнении операций над строками.
Адрес байта в ячейке памяти получается суммированием содержимого одного из сегментных регистров и одного из регистров (SP, SI, DI, IP).
6
