Введение в технологию программирования на языке Ассемблера, страница 4

Применение   

EAX

EBX

ECX

EDX

ESI

EDI

EBP

ESP

Пересылки данных

+

+

+

+

+

+

+

*

Базовый регистр

+

+

+

+

+

+

+

+

Индексный регистр

+

+

+

+

+

+

+

Умножение

+

+

+

+

+

+

+

+

Деление (делимое)

+

+

Деление (остаток)

+

Счетчик цикла

+

Операции с цепочками

+

Цепочка – источник

+

Цепочка – получатель

+

Адрес ввода/вывода

+

Данные ввода/вывода

+

Указатель таблицы

+

Примечание:

        * - не рекомендуется

  П.2.  ВВЕДЕНИЕ В ТЕХНОЛОГИЮ ПРОГРАММИРОВАНИЯ

                      НА ЯЗЫКЕ АССЕМБЛЕРА.

В этом семестре по курсу «Микропроцессорная техника» вам предстоит выполнить расчетно-графическое задание (для группы АТ), или контрольную работу (для групп АО и АИ). Эти задания заключаются в разработке ассемблерных программ на задачи, представленные вам преподавателем, их компилирования и компоновки, пользуясь пакетом программ TASM и отладки их с помощью пакета программ TurboDebugger.

На лабораторные занятия вам отведено 16 часов. За время первых двух лабораторных занятий (8 часов), а также времени, отведенного на вашу самостоятельную работу дома, вы должны освоить основные навыки работы с отладчиком TurboDebugger, усвоить структуру формата команд процессоров iAPX86, разработать алгоритм решения представленной вам задачи, и вспомнить назначение основных непривилегированных команд языка ассемблера. Остальное лабораторное время и время, отведенное на самостоятельную работу, обычно используется на составление ассемблерной программы исполнения разработанного алгоритма, а также трансляцию, компоновку и отладку программ этой программы.

Для облегчения вашей работы по разработке программ на языке ассемблера, я вам сейчас, перед изложением основного материала по архитектуре и функционированию современных микропроцессоров, кратко расскажу об основных положениях технологии разработки ассемблерных программ. Более подробные сведения можно получить в любой книге по программированию на языке ассемблера. Рекомендую пользоваться учебником для вузов В.И. Юрова «Assembler», все равно, первого или второго  издания.

          1. Общие принципы разработки ассемблерных программ.

Строго говоря, Ассемблер – это управляющая программа, которая транслирует текст программы, составленной пользователем на языке ассемблера, в язык, понятный процессору. Фактически, язык ассемблера является символическим представлением машинного языка. Таким образом,  Ассемблер переводит текст с языка ассемблера в машинный код. Правда, в настоящее время, слово «ассемблер» употребляется часто и как название самого языка программирования. Например, говорят, что программа составлена на ассемблере.

Вместе с Ассемблером обязательно используется и программа-компоновщик (редактор связей, linker), которая создает собственно исполняемые файлы из одного или нескольких объектных модулей, полученных после трансляции программ. В сложных случаях, могут потребоваться и некоторые дополнительные вспомогательные программы.

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

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

·  Программы, реализующие обмен информацией процессора с внешними устройствами: драйверы, программы, работающие напрямую с портами, аудио- и видеокартами.

·  Программы, использующие с максимальной эффективностью возможности процессора: ядра многозадачных операционных систем, DPMI-интерфейсы (DOS Protected Mode Interface – интерфейс защищенного режима в среде DOS) и вообще любые программы, переводящие процессор в защищенный режим.

·  Создание вирусов и антивирусных программ, процедуры защиты от несанкционированного доступа и т.п.

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

Здесь уместно привести цитату из книги В.Юрова «Assembler»: «Есть нечто общее в базовой подготовке всех программистов, своего рода фундамент, - это знание принципов работы компьютера, его архитектуры и языка ассемблера, отражающего устройство компьютера. Без рассмотрения данных вопросов невозможно любое сколько-нибудь серьезное компьютерное образование».