Инструкции процессора Motorola 68000 - Ромхакинг - Всё о ромхакинге - Форум ромхакеров ромхакеров

Сделать стартовой
Добавить в Избранное

Russian Romhacking

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 2«12
Форум ромхакеров » Всё о ромхакинге » Ромхакинг » Инструкции процессора Motorola 68000 (с пояснениями)
Инструкции процессора Motorola 68000
SmokeДата: Понедельник, 17.08.2009, 23:35 | Сообщение # 16
Лейтенант
Группа: Модераторы
Сообщений: 44
Статус: Offline
Логические инструкции

------------------
Эти инструкции производят логические операции на битах. Результат может быть либо истинным (1) либо ложным (0)

Code
AND, ANDI  Логическое "И"
OR, ORI    Логическое "ИЛИ"
EOR, EORI  Экстра "ИЛИ"
NOT        Логическое "НЕ"

1)Логическое "И" AND
Производит логическую операцию "И" на операнде побитово.
Рассмотрим ближе эту операцию:
AND:
0 И 0 = 0x0 = 0
0 И 1 = 0x1 = 0
1 И 0 = 1x0 = 0
1 И 1 = 1x1 = 1

Сразу перейдем к примеру. Пусть дана инструкция: and.w #4, d0 (d0 = 0000000A). Разложим операнды на биты
и логически перемножим:

Code
         0100 = $4
AND 1010 = $A
-------------------
           0000 = $0

Возможны 2 случая:
1)Первый операнд -- effective address(<ea>), второй -- регистр данных;
2)Первый операнд -- регистр данныхб второй -- effective address(<ea>);

Синтаксис: AND <ea>,Dn
AND Dn,<ea>

Варианты адресования(<ea>): 1) Dn, (An), (An)+, -(An), x(An), x(An,xr.s), label.w, label.l,
x(PC), x(PC,xr.s), #x
2) (An), (An)+, -(An), x(An), x(An,xr.s), label.w, label.l

Тип данных: Byte, word, longword

Пример:

Code
       Инструкция       До               После
         -----------------------------------------------
         |and.w d1, d2   | d1=00000055  | d1=00000055  |
         |                     | d2=00000078    | d2=00000050  |
         -----------------------------------------------

2)Логическое "И" ANDI
Производит логическую операцию "И" на операнде побитово. Работает также как и AND, только здесь в качестве
первого операнда всегда используется целое число.

Синтаксис: ANDI #<data>,<ea>

Варианты адресования(<ea>): Dn, (An), (An)+, -(An), x(An), x(An,xr.s), label.w, label.l, SR, CCR

Тип данных: Byte, word, longword

Пример:

Code
       Инструкция          До               После
         --------------------------------------------------
         |andi.w #$55, d0   | d0=00000078  | d0=00000050  |
         --------------------------------------------------

3)Логическое "ИЛИ" OR
Производит логическую операцию "ИЛИ" на операнде побитово.
Рассмотрим ближе эту операцию:
OR:
0 И 0 = 0+0 = 0
0 И 1 = 0+1 = 1
1 И 0 = 1+0 = 1
1 И 1 = 1+1 = 1

Пусть дана инструкция: or.w #4, d0 (d0 = 0000000A). Разложим операнды на биты
и логически сложим:

Code
       0100 = $4
OR  1010 = $A
-------------------
          1110 = $E

Возможны 2 случая:
1)Первый операнд -- effective address(<ea>), второй -- регистр данных;
2)Первый операнд -- регистр данныхб второй -- effective address(<ea>);

Синтаксис: OR <ea>,Dn
OR Dn,<ea>

Варианты адресования(<ea>): 1) Dn, (An), (An)+, -(An), x(An), x(An,xr.s), label.w, label.l,
x(PC), x(PC,xr.s), #x
2) (An), (An)+, -(An), x(An), x(An,xr.s), label.w, label.l

Тип данных: Byte, word, longword

Пример:

Code
       Инструкция       До               После
         -----------------------------------------------
         |or.w d1, d2    | d1=00000055  | d1=00000055  |
         |                    | d2=00000070  | d2=00000075  |
         -----------------------------------------------

4)Логическое "ИЛИ" ORI
Производит логическую операцию "ИЛИ" на операнде побитово. Работает также как и OR, только здесь в качестве
первого операнда всегда используется целое число.

Синтаксис: ORI #<data>,<ea>

Варианты адресования(<ea>): Dn, (An), (An)+, -(An), x(An), x(An,xr.s), label.w, label.l, SR, CCR

Тип данных: Byte, word, longword

Пример:

Code
       Инструкция          До               После
        ------------------------------------------------
        |or.w #$55, d0   | d0=00000070  | d0=00000075  |
        ------------------------------------------------

5)Экстра "ИЛИ" EOR
Производит логическую операцию "ИЛИ" на операнде побитово. Отличается от простого OR тем, что в случае
логического сложения 1+1 получается не 1, а 0. Остальное то же самое.
EOR:
0 И 0 = 0+0 = 0
0 И 1 = 0+1 = 1
1 И 0 = 1+0 = 1
1 И 1 = 1+1 = 0

Пусть дана инструкция: eor.w #4, d0 (d0 = 0000000A). Разложим операнды на биты
и логически сложим:

Code
       0100 = $4
EOR 1110 = $E
------------------
         1010 = $A

Синтаксис: EOR Dn,<ea>

Варианты адресования(<ea>): Dn, (An), (An)+, -(An), x(An), x(An,xr.s), label.w, label.l

Тип данных: Byte, word, longword

Пример:

Code
       Инструкция       До               После
        -----------------------------------------------
        |eor.w d1, d2   | d1=00000004  | d1=00000004  |
        |                     | d2=0000000E  | d2=0000000A  |
        -----------------------------------------------

6)Экстра "ИЛИ" EORI
Производит логическую операцию "ИЛИ" на операнде побитово. Работает также как и EOR, только здесь в качестве
первого операнда всегда используется целое число.

Синтаксис: EORI #<data>,<ea>

Варианты адресования(<ea>): Dn, (An), (An)+, -(An), x(An), x(An,xr.s), label.w, label.l, SR, CCR

Тип данных: Byte, word, longword

Пример:

Code
       Инструкция          До               После
        -------------------------------------------------
        |eori.w #$4, d0   | d0=0000000E  | d0=0000000A  |
        -------------------------------------------------

7)Логическое "НЕ" NOT
Производит логическую операцию "НЕ" на операнде побитово.
Рассмотрим ближе эту операцию:
NOT:
NOT 1 = 0
NOT 0 = 1
Пусть дана инструкция: not.w d0 (d0 = 0000000A). Рассмотрим ее работу на битах.
NOT 1010 = %0101 = $5

Синтаксис: NOT <ea>

Варианты адресования(<ea>): Dn, (An), (An)+, -(An), x(An), x(An,xr.s), label.w, label.l

Тип данных: Byte, word, longword

Пример:

Code
       Инструкция     До          После
        ------------------------------------------
        |not.w d0  | d0=0000000A  | d0=00000005  |
        ------------------------------------------


Сообщение отредактировал Smoke - Понедельник, 17.08.2009, 23:37
 
Форум ромхакеров » Всё о ромхакинге » Ромхакинг » Инструкции процессора Motorola 68000 (с пояснениями)
Страница 2 из 2«12
Поиск: