Структура микропроцессора
Регистры общего назначения
Микропроцессор 8086 имеет 8 общих регистров назначения, каждый регистр имеет его собственное имя
* AХ - регистр сумматора (разделенный на AH / AL).
* BX - регистр базового адреса (разделенный на BH / BL).
* CX - регистр индекса (разделенный на CH / CL).
* DX - регистр данных (разделенный на DH / DL).
* SI - индексирует регистр источника.
* DI - индексирует регистр адресата.
* BP - базируются указатель.
* SP - располагают в стеке указатель.
Несмотря на имя регистра, это - программист, кто определяет использование для каждого регистра общего назначения. Главная цель регистра состоит в том, чтобы сохранить число. Размер вышеупомянутых регистров - 16 битов, это - кое-что подобно: 0011000000111001b (в двоичной форме), или 12345 в десятичной форме.
4 регистра общего назначения (AХ, BX, CX, DX) сделаны двух отдельных 8 разрядных регистров, например если AХ = 0011000000111001b, то AH=00110000B и AL=00111001B. Поэтому, когда Вы изменяете любой из 8 бита, регистрирует, 16 разрядных регистра также модифицирован, и наоборот. Тот же самый - для других 3 регистраторов, "H" - для высокого, и "L" - для низкой части.
Поскольку регистры расположены внутри микропроцессора, они - намного быстрее, чем память. Доступ к местоположению памяти требует использования системной шины, так что требуется намного более длинный. Доступ к данным в регистре обычно не требует никакое время. Поэтому, Вы должны пробовать сохранить переменные в регистрах. Наборы Регистра очень маленькие, и большинство регистров имеет специальные цели, которые ограничивают их использование как переменные, но они - все еще превосходное место, чтобы хранить временные данные вычислений.
Регистры сегментов
* СS - указывает сегменту, содержащей текущую программу.
* DS - вообще указывает сегменту, где переменные определены.
* ES - дополнительный регистр сегмента, это - до coder, чтобы определить его использование.
* SS - указывает сегменту, содержащей стек.
Хотя возможно хранить любые данные в регистрах сегмента, это никогда не хорошая идея. Регистры сегментов имеют очень специальную цель - направляющий в доступных блоках памяти.
Сегмент регистрирует работу вместе с регистрами общего назначения, чтобы обратиться к любому значению памяти. Например, если мы хотели бы обратиться к памяти в физическом 12345h адресе (hexadecimal), мы должны установить DS = 1230h и SI = 0045h. Это хорошо, начиная с этого пути, которым мы можем обращаться намного больше к памяти, чем с одиночным регистром, который ограничен 16 разрядными значениями.
Микропроцессор делает вычисление из физического адреса, умножая регистр сегмента 10h и добавляя регистр общего назначения к этому (1230h * 10h + 45h = 12345h):
Адрес, сформированный с 2 регистрами называется эффективным адресом.
По умолчанию BX, SI и DI регистрирует работу с регистром сегмента DS; BP и SP работают с регистром сегмента SS.
Другие регистры общего назначения не могут формировать эффективный адрес!
Также, хотя BX может формировать эффективный адрес, BH и BL не может!
Дата добавления: 2016-07-05; просмотров: 1899;