Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LK_MashZavYP_Akchurin_2011.pdf
Скачиваний:
241
Добавлен:
10.06.2015
Размер:
9 Мб
Скачать
☆

8.5.4. Операции с регистрами AX (AH, AL)

AX – это части ACC. AH – старшая, AL – младшая. Для них доступны команды с данными не юлее 16 бит.

Мнемоника

 

Код операции

XARn

 

 

 

Пример

ADD AX,loc16

 

1001

010A

LLLL

LLLL

 

ADD loc16,AX

 

 

 

 

 

 

 

 

ADDB AX,#8bit

 

 

 

 

 

 

 

 

AND AX,loc16,#16bit

 

 

 

 

 

 

 

 

AND AX,loc16

 

 

 

 

 

 

 

 

AND loc16,AX

 

 

 

 

 

 

 

 

ANDB AX,#8bit

 

 

 

 

 

 

 

 

ASR AX,1..16

 

 

 

 

 

 

 

 

ASR AX,T

 

 

 

 

 

 

 

 

CMP AX,loc16

 

 

 

 

 

 

 

 

CMPB AX,#8bit

 

 

 

 

 

 

 

 

FLIP AX

 

 

 

 

 

 

 

 

LSL AX,1..16

 

 

 

 

 

 

 

 

LSL AX,T

 

 

 

 

 

 

 

 

LSR AX,1..16

 

 

 

 

 

 

 

 

LSR AX,T

 

 

 

 

 

 

 

 

MAX AX,loc16

 

 

 

 

 

 

 

 

MIN AX,loc16

 

 

 

 

 

 

 

 

MOV AX,loc16

 

 

 

 

 

 

 

 

MOV loc16,AX

 

 

 

 

 

 

 

 

MOV loc16,AX,COND

 

 

 

 

 

 

 

 

MOVB AX,#8bit

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мнемоника

 

Пример

 

 

 

 

 

ADD Ист1, Ист2[Сдвиг]

 

Добавить

 

 

 

 

 

 

 

 

Ист1 =Ист1 + Ист2

 

 

 

AND Ист1, Ист2[Сдвиг]

 

Операция И

 

 

 

 

 

 

 

 

Ист1 =Ист1 & Ист2

 

 

 

ASR Ист1[Сдвиг]

 

Арифметический сдвиг вправо

 

 

 

 

 

Ист1 =Ист1 со сдвигом

 

 

 

ADD Ист1, Ист2[Сдвиг]

 

Добавить

 

 

 

 

 

408

Ист1 =Ист1 + Ист2

8.5.5. Операции с регистрами ACC

Формат команд:

Команда Ист1, Ист2{Сдвиг)

С содержимым Ист1 и Ист2 выполняется команда. Предварительно содержимое Ист2 сдвигается влево на число бит Сдвиг (необязательно)

В качестве Ист1 или Ист2 могут быть:

ACC – аккумулятор АЛУ.

loc16 – 16-разрядная ячейка памяти.

loc32 – 32 разрядная ячейка памяти.

В качестве Ист2 дополнительно могут быть:

#8bit – 8-разрядное значение.

#16bit – 16-разрядное значение.

Примеры команд

Мнемоника

Действие

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ADD ACC,loc32 {<< 0..16}

Сложение.

 

 

К ACC добавить содержимое loc32 и перенос.

 

 

ACC = ACC + [loc32] + C;

 

ADD ACC,loc16 {<< 0..16}

Сложение.

 

 

К ACC добавить содержимое loc16.

 

 

if(SXM = 1) //расшир. знака разрешено

 

 

ACC = ACC + S:[loc16]<<сдвиг

 

 

else // расшир.знака запрешено

 

 

ACC = ACC + 0:[loc16]<<сдвиг;

 

ADDB ACC,#8bit

Сложение.

 

 

К ACC добавить 8-битную константу.

 

 

409

 

ACC = ACC + 0:8bit;

SUB ACC,loc16 {<< 0..16}

Вычитание.

 

Из ACC вычесть содержимое loc16.

 

if(SXM = 1) //расшир. знака разрешено

 

ACC = ACC - S:[loc16]<<сдвиг

 

else // расшир.знака запрешено

 

ACC = ACC - 0:[loc16]<<сдвиг;

SUBB ACC,#8bit

Вычитание.

 

Из ACC вычесть 8-битную константу.

 

ACC = ACC - 0:8bit;

AND ACC,loc16

ACC = ACC AND 0:[loc16];

AND ACC,#16bit {<< 0..16}

ACC = ACC AND (0:16bit << сдвиг);

OR ACC,loc16

 

OR ACC,#16bit {<< 0..16}

 

XOR ACC,loc16

 

XOR ACC,#16bit {<< 0..16}

 

 

 

 

 

8.5.6. Операции с регистрами P или XT

Инструкция

Мнемоника

Действие

ADDUL

ADD Ист1, Ист2[Сдвиг]

Добавить

 

 

Ист1 =Ист1 + Ист2

MAXCL

AND Ист1, Ист2[Сдвиг]

Операция И

 

 

Ист1 =Ист1 & Ист2

MINCL

AND Ист1, Ист2[Сдвиг]

Операция И

 

 

Ист1 =Ист1 & Ист2

MOV

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MOVA

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MOVAD

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MOVDL

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

410

MOVH

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MOVL

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MOVP

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MOVS

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MOVX

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

SUBUL

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

DMAC

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MAC

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MPY

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MPYA

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MPYB

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MPYS

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MPYU

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

MPYXU

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

SQRA

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

SQRS

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

XMAC

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

XMACD

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

IMACL

ASR Ист1[Сдвиг]

Арифметический сдвиг вправо

 

 

Ист1 =Ист1 со сдвигом

411

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]