Главная страница

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


Скачать 253 Kb.
НазваниеПрограмма представляется в виде последовательности команд, каждая из которых записывается с помощью целого числа байт порядок команд однозначно определяется программой
АнкорАссемблер методичка.doc
Дата21.03.2018
Размер253 Kb.
Формат файлаdoc
Имя файлаАссемблер методичка.doc
ТипПрограмма
#17015
страница2 из 7
1   2   3   4   5   6   7

1.2.Регистры процессора



Во время работы программы команды и данные хранятся в оперативной памяти. Для повышения скорости обработки данных их можно разместить в регистрах – ячейках памяти внутри процессора. Они имеют собственные имена и обладают очень малым временем доступа к данным. МП 8086 содержит 14 регистров: AX, BX, CX, DX, SI, DI, SP, BP, CS, DS, SS, ES, IP, FLAGS. Рассмотрим их.

Первые восемь регистров являются регистрами общего назначения (РОН) и содержат 2 байта, или 16 бит. В них могут храниться любые данные, хотя каждый из них имеет собственное назначение:

  • AX – аккумулятор, регистр для выполнения арифметических операций.

  • BX – базовый регистр, служит для реализации индексной и косвенной адресаций, о которых будет рассказано ниже.

  • CX – регистр-счетчик, используется для реализации циклов типа for, а также при операциях сдвига.

  • DX – регистр данных, используется при выполнении операций умножения и для обращения к функциям операционной системы.

  • SI, DI – индексные регистры. Используются для организации косвенной адресации, а совместно с BX – индексной. Регистр SI называют регистром индекса источника, а DI – регистром индекса приемника.

  • SP – указатель стека. Используется при работе со стеком, и, хотя является регистром общего назначения, в большинстве программ играет только роль указателя стека. Занесение произвольных значений в него нежелательно.

  • BP – указатель базы. Используется при передаче параметров в подпрограмму через стек. Такой способ передачи параметров используют языки Pascal, C, C++ и другие.

Регистры AX, BX, CX, DX могут использоваться половинами, содержащими 1 байт каждая (рис. 1.3). Старшие половины (биты 8..15) называются соответственно AH, BH, CH, DH, а младшие (биты 0..7) – AL, BL, CL, DL.




AH AL



AX

Рис. 1.3. Структура регистра общего назначения
Регистры CS, DS, ES, SS – это сегментные регистры. CS хранит начальный адрес сегмента памяти, в котором хранятся команды программы (сегмента кода), DS –начальный адрес сегмента, хранящего данные, а SS – начальный адрес сегмента, в котором расположен стек. Регистр ES является вспомогатель-ным сегментным регистром; изменяя его, можно адресовать любой сегмент оперативной памяти.

Регистр IP (указатель команд) хранит смещение первого байта следующей команды внутри сегмента кода. Этот регистр изменяется автоматически при выполнении команд. Задать ему нужное значение можно с помощью команд передачи управления.

Регистр флагов FLAGS содержит информацию о результате последней арифметико-логической команды (рис. 1.4). Команды пересылки и передачи управления на него не воздействуют. Этот регистр состоит из отдельных бит, называемых флагами, каждый из которых имеет определенный смысл. Рассмотрим некоторые из них:

O S Z C
Рис. 1.4. Структура регистра флагов
C – флаг переноса. Равен единице, если при выполнении последней операции был перенос из старшего разряда или заем в старший разряд и нулю в противном случае. При операциях сдвига содержит последний выдвинутый из регистра бит.

Z – флаг нуля. Равен 1, если результатом последней операции был ноль. Если последней операцией была операция сравнения, единица в этом флаге указывает на то, что сравниваемые операнды равны.

S – знаковый флаг, содержит 1, если при выполнении последней операции результат был отрицательный.

O – флаг переполнения, содержит 1, если при выполнении последней операции произошел перенос в знаковый разряд (переполнение разрядной сетки).

Существуют команды условной передачи управления, которые анализируют эти биты и в зависимости от их содер-жимого выполняют команду, расположенную по заданному адресу, либо следующую за данной.

1   2   3   4   5   6   7


написать администратору сайта