ПРАКТИКУМ ПО ОМПТ. Практикум по основам микропроцессорной техники Саранск 2003 удк 004. 384 378. 146147
Скачать 0.74 Mb.
|
2.2. Форматы команд и способы адресацииФормат команды показывает, из каких составных частей она состоит, а также определяет функциональное назначение этих частей. Говоря о формате команд, прежде всего, обращают внимание на длину команды. Длина команды может быть в один, два или три байта. Формат команд во многом зависит от способа адресации, используемого в команде. Под адресацией понимают способ указания нахождения операндов, над которыми данная команда совершает те или иные действия. Микропроцессор КР580ВМ80А имеет четыре различных способа адресации данных, хранимых в памяти или в регистрах. Прямая адресация. Второй и третий байты команды содержат адрес данных в памяти. Регистровая адресация. В коде команды адресуется регистр или пара регистров, в которых хранятся данные. Косвенно-регистровая адресация. Команда выбирает регистровую пару, в которой содержится адрес ячейки памяти. Непосредственная адресация. Данные, которые могут быть 8- или 16-битными, представлены в теле команды - во втором и третьем байтах. Если отсутствуют прерывания и команды передачи управления, то выборка и исполнение команд осуществляются последовательно из ячеек памяти, адреса которых возрастают (инкрементируются). Команды передачи управления могут задавать адрес следующей команды одним из трех способов. Прямой адресацией. Команда передачи управления содержит адрес команды, которая должна выполняться следующей. Косвенно-регистровой адресацией. Команда передачи управления задает регистровую пару, содержимое которой представляет собой адрес следующей команды (старший полуадрес расположен в первом, а младший - во втором регистре пары). Адресацией по номеру подпрограммы. Команда RST является специальной однобайтной командой перехода к фиксированной подпрограмме, используемой обычно для реализации прерываний. Команда RST имеет 3-битное поле, в котором содержится код, соответствующий одному из восьми возможных начальных адресов подпрограммы. В качестве разновидности косвенно-регистровой адресации можно рассматривать автоинкрементную-автодекрементную адресацию через указатель стека, при которой адреса ячеек памяти, где хранятся 16-битные данные или адрес возврата из подпрограммы, формируются в регистре - указателе стека. Из определения различных способов адресации видно, что длина команды зависит именно от способа применяемой в ней адресации. Если адресная информация в команде представляется в сжатой короткой форме, то длина команды будет один байт. Таким образом, однобайтными командами являются команды, использующие регистровую, косвенно-регистровую адресацию и адресацию по номеру подпрограммы. Во втором байте двухбайтных команд содержатся 8-битные данные или номер порта ввода-вывода. Во втором и третьем байтах трехбайтных команд содержится адрес ячейки памяти или данные двойной длины (16-битные данные), причем во втором байте указывается младшая часть адреса или данных, а в третьем - старшая часть адреса или данных. Код выполняемой операции всегда содержится в первом байте команды (рис. 5), причем отдельные биты этого кода могут содержать дополнительную (в первую очередь адресную) информацию: биты 3, 4, 5 - код регистра-приемника данных в соответствии с табл. 3, код анализируемого условия (нулевое или единичное значение какого-либо признака) в командах условной передачи управления в соответствии с табл. 4 или номер фиксированной подпрограммы (от 0 до 7) в команде перехода к фиксированной подпрограмме; биты 4 и 5 - код регистровой пары или 16-битного регистра в командах с участием регистровых пар в соответствии с табл. 5; биты 0, 1, 2 - код регистра-источника данных в соответствии с табл. 3. Табл. 3. Коды регистров
Табл. 4. Коды условий
Табл. 5. Коды регистровых пар
|