Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Регистровая и непосредственная адресация






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

При регистровой адресации микропроцессор извлекает операнд из регистра (или загружает его в регистр). Например, команда MOV АХ, СХ копирует 16-битовое содержимое счетчика СХ в регистр аккумулятор АХ. Содержимое регистра СХ после операции не изменяется. В данном примере микропроцессор 8088 использует регистровую адресацию для извлечения операнда-источника из регистра СХ и загрузки его в регистр-приемник АХ.

Непосредственная адресация позволяет указывать в качестве операнда-источника 8-или 16-битовое значение константы. Эта константа находится в команде (куда она помещается ассемблером), но не в регистре и не в ячейке памяти. Например, команда MOV СХ, 500

загружает десятичное число 500 в регистр СХ, а команда MOV CL, -З0

загружает значение -30 в регистр CL.

Непосредственный операнд также может быть идентификатором, определенным оператором EQU, поэтому в командах допустима следующая форма оператора:

К EQU 1O24; присвоить константе 1024 идентификатор К и

MOV СX, К; загрузить эту константу регистр СХ.

Чтобы избежать ошибок, необходимо учитывать, что допустимые значения для 8-битовых чисел со знаком ограничены диапазоном от - 128 (З0Н) до +127 (7FH), 16-битовых чисел со знаком диапазоном от -32768 (8000Н) до +32767 (7FFFH). Максимальное значение 8-битовых чисел без знака равно 255 (0FFH), а 16-битовое равно 65535 (0FFFFH).

Необходимо помнить, что ассемблер всегда расширяет знак при пересылке непосредственных значений в операнд-приемник. Это означает, что он дублирует старший бит источника до тех пор, пока не будут заполнены все 8 или 16 битов операнда-приемника. Например, операнд-источник второго примера, десятичное число 500, может быть записано в виде 10-битового двоичного числа 01 1111 0100. Когда ассемблер устанавливает, что требуется загрузить это число в регистр СХ, то он расширяет его до 16-битового, записывая перед ним шесть копий знакового бита (в данном случае 0). Поэтому в регистр СХ попадает двоичное значение 0000 0001 1111 0100В. В третьем примере процессор загружает в регистр СL 8-битовое двоичное представление отрицательного числа -30 в дополнительном коде.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.