Азы ассемблера

  • 02 сент. 2011 г.
  • 3034 Слова
Введение
Ассемблер - самый низкоуровневый язык программирования. Язык ассемблера - это символьная форма записи машинного языка. Его использование упрощает написание машинных программ. Именно машинный язык определяет логику работы процессора. Программа, написанная на ассемблере, отражает основные особенности архитектуры процессора: организацию памяти, способы адресации операндов, правилаиспользования регистров и т. д.

ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ
Архитектура ЭВМ - все, что характеризует компьютер с точки зрения его функциональных программно-управляемых свойств. Это абстрактное представление ЭВМ, которое отражает ее структурную, схемотехническую и логическую организацию. Понятие архитектуры является комплексным, в него входят:
- структурная схема ЭВМ;
- средства и способы доступа кэлементам структурной схемы ЭВМ;
- организация и разрядность интерфейсов ЭВМ;
- набор и доступность регистров;
- организация и способы адресации памяти;
- способы представления и форматы данных ЭВМ;
- набор машинных команд ЭВМ;
- форматы машинных команд;
- правила обработки прерываний.
Оперативная память делится на ячейки размером в 8 разрядов. Ячейки такого размера принято называть байтами.Разряды байта нумеруются справа налево от 0 до 7.
Байт - это наименьшая адресуемая ячейка памяти (8 бит).
Слово (word) - это два соседних байта (2 байта, 16 разрядов).
Двойное слово (double word) - это четыре соседних байта (4, байта 32 разряда).
Четверное слово (8 байт, 64 разряда).
Параграф - 16 байт.
Помимо ячеек оперативной памяти для кратковременного хранения данных можно использовать регистры -ячейки, расположенные в центральном процессоре и доступные из машинных программ. Доступ к регистрам осуществляется намного быстрее, чем к ячейкам памяти, поэтому использование регистров заметно уменьшает время выполнения программ.
Флаг - это бит, принимающий значение 1, если выполнено некоторое условие, и значение 0 в противном случае.
Прерывание - событие, заставляющее процессор приостановитьвыполнение своей программы для выполнения затребованных действий (программные, аппаратные).
Стек - специальная область памяти, предназначенная для временного хранения данных, а также для хранения адресов возврата из подпрограмм и прерываний.

[pic]
[pic]
ПРОГРАММНАЯ МОДЕЛЬ МП 8086
Большинство регистров имеют функциональное назначение. Их можно разделить на шесть основных групп.
1. Регистрыобщего назначения (РОН);
2. Индексные регистры;
3. Указательные регистры;
4. Сегментные регистры;
5. Регистр - счетчик (указатель) команд;
6. Регистр флагов.

1. РОН (AX, BX, CX, DX). Каждый из них может быть разделен на два 8-ми разрядных , функционирующих раздельно (AH, BH, CH, DH - High(старшие); AL, BL, CL, DL - Low (младшие)). В эти регистры можно записывать, читать и хранить любуюинформацию (любого вида - адреса, данные, коды команд). Иногда некоторые команды по умолчанию используют эти регистры по прямому назначению.
AX - применяется для хранения промежуточных данных. Используется для накапливания результата вычисления и тогда он называется аккумулятором.
BX - некоторые команды используют этот регистр для хранения начальных адресов структурированных данных и тогда он называетсябазовый регистр. Применяется для хранения базового адреса некоторого объекта в памяти.
CX - некоторые команды используют этот регистр по умолчанию для хранения счетчика циклов. Он называется регистр-счетчик.
DX - регистр данных; один единственный регистр, который используется некоторыми командами для хранения адреса порта при обмене с внешними устройствами. Хранит промежуточные данные аналогично AX.
2.Индексные регистры (SI, DI). Используются, в основном, в командах для хранения адресов пересылаемых структур данных из одной области памяти в другую, где в регистре SI хранится адрес источника, а в DI - адрес приемника.

3. Указательные регистры (SP, BP). В SP хранится адрес (вершина) начальной особой памяти, называемой стек. В BP хранится адрес смещения...
tracking img