Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архит_ЭВМ_лекции.doc
Скачиваний:
99
Добавлен:
04.06.2015
Размер:
19.16 Mб
Скачать

Состав команд логических операций

Логические команды составляют еще одну группу команд МП. Состав этих команд следующий: логическое умножение – И, логическое сложение – ИЛИ, ИЛИ – исключающее, отрицание – НЕ и сдвиг. В этой группе команд именно аккумулятор составляет ядро большинства операций. Как и при арифметических операциях, способ адресации и здесь влияет на способ и место нахождения других данных в системе. Команда ANIвыполняет логическое умножение над содержимым аккумулятора (00010011) и содержимым программной памяти после команды (00000001). Содержимое аккумулятора подтверждается операции И побитно. И в соответствии с таблицей истинности для этой операции имеем: 00000001. Результатом всех операций И будет сброс индикатора переноса. Так же результат операции И проверяется с целью определения не ноль ли он и если нет, индикатор нуляZсбрасывается в ноль.

Пример операции И с косвенной операцией (ANAM). Содержимое аккумулятора подвергается операции И (бит с битом) с содержимым ячейки памяти указанной парой регистровHL. Допустим, в аккумуляторе – 00111100, а в ячейке памяти – 00000001. Результат умножения будет 00000000, этот результат размещается в аккумуляторе. Индикатор переносаCYсбрасывается в ноль, кроме того, результат проверяется на ноль и поскольку, ответ да, индикатор нуляZустанавливается в единицу.

В обоих примерах второй операнд (00000001) используется как маска. В первом примере она используется для сброса в ноль 7 старших бит, а во втором примере, с учетом наличия индикатора нуля, для тестирования значений ноль или единица в позиции младшего бита аккумулятора.

Команда или

Мнемоника ORA. Выполняется с содержимым аккумулятора и содержимым какой-либо ячейки памяти или регистра.

Команда или – исключающее

Мнемоника XRA. Этих команд так же несколько, в зависимости от способа получения данных.

Например. Выполним команду ИЛИ - исключающее над самим аккумулятором, т.е. Аккумулятор Аккумулятор.

Выполнение этой операции любого числа с самим собой всегда даст результат все нули, при этом индикатор нуля Zустанавливается в единицу, что означает нулевое содержимое аккумулятора.

Команда циклического сдвига с переносом

Мнемоника RAR.

Например, RARА (сдвиг вправо с переносом).

Например.

Содержимое аккумулятора сдвинуто на одну позицию вправо и его младший бит (единица) передается в позицию индикатора переноса CY, тогда как имевшийся там бит (ноль) занимает позицию старшего бита аккумулятора. После завершения операцииCY=1, аZ=0. Используя одну или несколько команд циклического сдвига, можно тестировать весь заданный состав бит, а индикатор переноса, может быть, затем проверен командой условного ветвления.

Команды логических операций используются, как правило, для манипуляции с переменными по законам алгебры логики. Они так же могут быть использованы для тестирования и сравнения бит в слове.

Состав команд операций передачи данных

Эти команды выполняют передачу данных из регистра в регистр, размещение данных в памяти, размещение извлеченных из памяти данных в устройство ввода/вывода. Так же эти команды устанавливают индикатор переноса. Почти все эти команды не влияют на индикаторы регистра состояния. Каждая команда передачи данных содержит адрес источника и назначения данных. Способы адресации ориентированны на то, где и как осуществляется поиск данных. К основным в этой группе команд относятся:

  • MOVR1,R2– передача из регистра 2 в регистр 1,

  • MVI,R(M) – загрузить регистр (или память),

  • LXIR1.2– загрузить пару регистровLHL,LDA,STA,SHLD,IN,OUT,STC– команды передачи данных.

Например, команда MOVA,L– следующая за мнемоникой буква А указывает назначения тогда как последняя букваLиндефицирует источник данных.

Команда SPHL– здесь источником данных является пара регистровHL, приемником 16-тиразрядный указатель стекаSP.

Существует несколько команд непосредственной загрузки данных. Эти команды часто используются для размещения начальных значений в регистры МП.

Команда LXIH– пара регистровHLдолжна быть загружена данными, следующими непосредственно за кодом операции в программной памяти. Эта команда является трехбайтовой: 1 байт – код операции (21); 2-ой байт – содержит младший байт и помещается в регистрL; 3-й байт – это старший байт, который помещается в регистрH.

Команда загрузки пары регистров HLс прямой адресациейLHLD. Второй и третий байт являются 16-тиразрядным адресом памяти данных для загрузки.

МП преобразует 2 следующих за кодом операции байта в 16-тиразрядный адрес, который служит указателем адреса памяти данных (ОЗУ) и загружается в пару регистров HL.

Типовой МП снабжен несколькими командами размещения. Например, команда STA- загрузка данных с прямой адресацией. Содержимое аккумулятора помещается в память, на которую указывает 16-тиразрядный адрес, составленный 2 и 3 байтом команды.

Команда ввода (IN) – по сути, идентична команде загрузки, только здесь источником данных является порт ввода, который идентифицируется 8-миразрядным числом (адрес устройства ввода/вывода). Назначение данных из порта всегда аккумулятор.

Данные порта 00001111, на который указывает второй байт команды, передаются и размещаются в аккумулятор.