Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по архитектуре ЭВМ.doc
Скачиваний:
46
Добавлен:
02.05.2014
Размер:
238.59 Кб
Скачать

12. Логические команды языка ассемблер. Синтаксис. Примеры.

Первоочередное назначение логических операций в микропроцессоре 8088 - работа с битами. Ни одна из арифметических команд не может непосредственно выделить или изменить единственный бит, а логические команды позволяют программе обрабатывать отдельные биты.

Четырьмя основными логическими командами являются AND (и), OR (или), XOR (исключающее или), NOT (не). Эти четыре    команды работают непосредственно с нулями и единицами двоичного кода. Простейшая функция выполняется командой NOT. Эта команда основывается на определении единицы и нуля, как истины (TRUE) и лжи (FALSE) соответственно. Предложение NOT TRUE (не истина) - это FALSE (ложь), а предложение NOT FALSE (не ложь) - это TRUE (истина). Команда NOT инвертирует все биты числа данных. Иначе говоря, команда NOT эквивалентна вычитанию данных из величины, состоящей из всех единиц.    действует на единственный бит.

Значение Not

0 1

1 0

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

X

Y

X AND Y

X OR Y

X XOR Y

0

0

0

0

0

0

1

0

1

1

1

0

0

1

1

1

1

1

1

0

96h and 0Fh

1001 0110 and 0000 1111 = 0000 0110 = 6h

1001 0110 or 0000 1111 = 1001 1111 = 9Fh

1001 0110 xor 0000 1111 = 1001 1001 = 99h

13. Команды пересылки данных. Синтаксис. Примеры. Оператор ptr.

Mov – замещает приемник на источник. Значение источника сохраняется. В зависимости от описания операторов пересылается слово или байт. Команда не воздействует на флаги процессора.

Приемник – регистр, переменная.

Источник – регистр, переменная, число.

movs – пересылка данных из строки в строку

movsb байта

movsw слова

mowsd двойного слова

mov пр., ист. – синтаксис

mov ax,bx

mov ax,5

mov ax,z

Примеры:

MOV АХ,500 ; АX:=500

MOV BL,DH ; BL:=DH

PTR – задания типа переменной или метки. Если операнды описаны по разному или режим адресации не позволяет однозначно определит размер операнда.

Тип PTR выражение – синтаксис

Выражение – любой операнд

Тип – byte, word, dword, qword (для операндов), near, far или proc (для меток или имен процедур).

mov byte ptr es:[di],3

mov копирует источник в приемник.

оператор указания типа PTR (от pointer, указатель), который записывается следующим образом:

<тип> PTR <выражение>

где <тип> - это BYTE, WORD или DWORD (есть и другие варианты, но мы их пока не рассматриваем), а выражение может быть константным или адресным.

Если указано константное выражение, то оператор "говорит", что значение этого выражения (число) должно рассматриваться ассемблером как величина указанного типа (размера); например, BYTE PTR 0 - это ноль как байт, a WORD PTR 0 - это ноль как слово (запись BYTE PTR 300 ошибочна, т. к. число 300 не может быть байтом). Отметим, что в этом случае оператор PTR относится к константным выражениям.

Если же в PTR указано адресное выражение, то оператор "говорит", что адрес, являющийся значением выражения, должен восприниматься ассемблером как адрес ячейки указанного типа (размера); например: WORD PTR A - адрес А обозначает слово (байты с адресами А и А+1). В данном случае оператор PTR относится к адресным выражениям.