Главная страница
Навигация по странице:

  • Режимы адресации операндов

  • Базовый и индексный регистры, определяемые полем r

  • Лекции по ВМСС. Конспект лекций по курсу "Электронные вычислительные машины, системы и сети"


    Скачать 3.89 Mb.
    НазваниеКонспект лекций по курсу "Электронные вычислительные машины, системы и сети"
    Дата14.02.2022
    Размер3.89 Mb.
    Формат файлаdoc
    Имя файлаЛекции по ВМСС.doc
    ТипКонспект
    #361333
    страница12 из 24
    1   ...   8   9   10   11   12   13   14   15   ...   24

    О
    стальные 5 бит команды определяют операцию и называются кодом операции (КОП). Например, у команды INC код операции равен 01000. На рис. 2.9 показана команда, которая производит инкремент содержимого регистра ВР. Такой способ адресации операнда иногда называется регист­ровым режимом. В табл. 2.2 показаны все режимы адресации операндов.


    Таблица 2.2 Режимы адресации операндов

    НЕПОСРЕДСТВЕННЫЙ

    РЕГИСТРОВЫЙ

    ПРЯМАЯ АДРЕСАЦИЯ ПАМЯТИ

    КОСВЕННАЯ АДРЕСАЦИЯ ПАМЯТИ

    Базовый регистр

    Индексный регистр

    Базовый регистр + индексный регистр

    Базовый регистр + смещение

    индексный регистр + смещение

    Базовый регистр + индексный регистр + смещение





    В наиболее общей форме команда INC может произвести инкремент содержимого любого РОНа, указательного или индексного регистра (8 или 16 бит) и любого байта или слова памяти. Эта форма длиной в два байта показана на рис. 2.10. Теперь поле КОП расщеплено на две части: семь бит его находятся в первом байте, а три - во втором. Код операции команды INC в такой форме равен 1111111 000. Однобитное поле w определяет длину операнда: если w = 0, операнда имеет 8 бит, а при w= 1 - 16 бит. Поле modпоказывает, находится ли операнд в регистре или памяти. Если mod = 11, операнд содержится в регистре, а три остальные комбинации поля modотносятся к памяти. Когда операнд - в регистре, поле rпоказывает конкретный регистр; а если операнд - в памяти, это же поле определяет, где именно он находится (сокращение rобозначает регистр/память).



    В
    начале рассмотрим случай, когда операнд находится в регистре (mod = 11). Кодирование регистров в поле rпоказано в табл. 2.1. По существу, мы имеем второй вариант регистрового режима адресации операндов. На рис. 2.11 приведена команда инкремента содержимого регистра CL. Для доступа к 8-битному регистру требуется более длинная форма команды INC.

    Теперь обратимся к случаю, когда операнд находится в памяти (mod = = 00, 0, 10). Этот режим иногда называется косвенной адресацией памяти, f так как операнд содержится в памяти, но смещение явно не указано. Вместо этого оно получается суммированием довольно странных на пер­вый взгляд значений. (Удобство такого режима мы пояснили в разд. 1.7.) Смещение равно сумме не более трех слагаемых: 16-битного значения (оно называется смещением в команде), содержимого индексного регистра (SI, DI или никакого), определенного в команде, и содержимого базового регистра (SP, ВР или никакого), указанного в команде. Поле rидентифи­цирует базовый и индексный регистры в соответствии с табл. 2.3, а поле modопределяет смещение в Команде (см. табл. 2.4). Образованный резуль­тат локализует операнд внутри сегмента. Операнд находится в текущем сегменте данных (но если в вычислении смещения участвует регистр ВР, операнд находится в текущем сегменте стека). Конечно, для образования 20-битного (24-битного в виртуальном режиме) адреса памяти потребуется еще одно сложение с привлечением сегментного регистра.





    Таблица 2.3 Базовый и индексный регистры, определяемые полем rдля операндов в памяти (mod 11)




    Поле r

    Базовый регистр

    Индексный регистр

    000

    BX


    SI

    001

    BX

    DI

    010

    BP

    SI

    011

    BP

    DI

    100

    НЕТ

    SI

    101

    НЕТ

    DI

    110

    BP

    НЕТ

    111

    BX

    НЕТ

    Если mod = 00 и r/m ==110, см. примечание к табл. 2.4















    1   ...   8   9   10   11   12   13   14   15   ...   24


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