Ассемблер методичка. Программа представляется в виде последовательности команд, каждая из которых записывается с помощью целого числа байт порядок команд однозначно определяется программой
Скачать 253 Kb.
|
1.2.Регистры процессораВо время работы программы команды и данные хранятся в оперативной памяти. Для повышения скорости обработки данных их можно разместить в регистрах – ячейках памяти внутри процессора. Они имеют собственные имена и обладают очень малым временем доступа к данным. МП 8086 содержит 14 регистров: AX, BX, CX, DX, SI, DI, SP, BP, CS, DS, SS, ES, IP, FLAGS. Рассмотрим их. Первые восемь регистров являются регистрами общего назначения (РОН) и содержат 2 байта, или 16 бит. В них могут храниться любые данные, хотя каждый из них имеет собственное назначение:
Регистры 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, если при выполнении последней операции произошел перенос в знаковый разряд (переполнение разрядной сетки). Существуют команды условной передачи управления, которые анализируют эти биты и в зависимости от их содер-жимого выполняют команду, расположенную по заданному адресу, либо следующую за данной. |