КАТЕГОРИИ:
Архитектура-(3434) Астрономия-(809) Биология-(7483) Биотехнологии-(1457) Военное дело-(14632) Высокие технологии-(1363) География-(913) Геология-(1438) Государство-(451) Демография-(1065) Дом-(47672) Журналистика и СМИ-(912) Изобретательство-(14524) Иностранные языки-(4268) Информатика-(17799) Искусство-(1338) История-(13644) Компьютеры-(11121) Косметика-(55) Кулинария-(373) Культура-(8427) Лингвистика-(374) Литература-(1642) Маркетинг-(23702) Математика-(16968) Машиностроение-(1700) Медицина-(12668) Менеджмент-(24684) Механика-(15423) Науковедение-(506) Образование-(11852) Охрана труда-(3308) Педагогика-(5571) Полиграфия-(1312) Политика-(7869) Право-(5454) Приборостроение-(1369) Программирование-(2801) Производство-(97182) Промышленность-(8706) Психология-(18388) Религия-(3217) Связь-(10668) Сельское хозяйство-(299) Социология-(6455) Спорт-(42831) Строительство-(4793) Торговля-(5050) Транспорт-(2929) Туризм-(1568) Физика-(3942) Философия-(17015) Финансы-(26596) Химия-(22929) Экология-(12095) Экономика-(9961) Электроника-(8441) Электротехника-(4623) Энергетика-(12629) Юриспруденция-(1492) Ядерная техника-(1748)
Операции с регистрами ACC
Операции с регистрами AX (AH, AL)
Операции с регистром SP
Операции загрузки регистра DP
Регистр DP содержит адрес памяти данных.
Мнемоника
Код операции
XARn
Пример
MOV DP,#10bit
10СС
СССС
СССС
DP(9:0) = 10bit;
DP(15:10) = unchanged;
MOVW DP,#16bit
СССС
СССС СССС СССС
DP(15:0) = 16bit;
MOVZ DP,#10bit
10СС
СССС
СССС
DP(9:0) = 10bit;
DP(15:10) = 0;
Мнемоника
Код операции
XARn
Пример
ADDB SP,#7bit
0ССС
СССС
SP = SP + 0:7bit;
POP ACC
SP −= 2;
ACC = [SP];
POP AR1:AR0
SP −= 2;
AR0 = [SP];
AR1 = [SP+1];
AR1H:AR0H = без изменений;
POP AR3:AR2
SP −= 2;
AR2= [SP];
AR3 = [SP+1];
AR3H:AR2H = без изменений;
POP AR5:AR4
SP −= 2;
AR5 = [SP];
AR4= [SP+1];
AR5H:AR4H = без изменений;
POP AR1H:AR0H
SP −= 2;
AR0H = [SP];
AR1H = [SP+1];
AR1:AR0 = без изменений;
POP DBGIER
SP −= 1;
DBGIER = [SP];
POP DP:ST1
SP −= 2;
ST1 = [SP];
DP = [SP+1];
POP DP
SP −= 1;
DP = [SP];
POP IFR
SP −= 1;
IFR = [SP];
POP loc16
LLLL
LLLL
SP -= 1;
[loc16] = [SP];
POP P
SP −= 2;
P = [SP];
POP RPC
SP −= 2;
RPC = [SP];
POP ST0
SP −= 1;
ST0 = [SP];
POP ST1
SP −= 1;
ST1 = [SP];
POP T:ST0
SP −= 2;
T = [SP];
ST0 = [SP+1];
TL = без изменений;
POP XT
SP −= 2;
XT = [SP];
POP XAR0
POP XAR1
POP XAR2
POP XAR3
POP XAR4
POP XAR5
POP XAR6
POP XAR7
SP −= 2;
XARn = [SP];
PUSH ACC
[SP] = ACC;
SP += 2;
PUSH AR0:AR1
PUSH AR3:AR2
PUSH AR5:AR4
[SP] = AR0;
[SP+1] = AR1;
SP += 2;
PUSH AR3:AR2
[SP] = AR2;
[SP+1] = AR3;
SP += 2;
PUSH AR5:AR4
[SP] = AR4;
[SP+1] = AR5;
SP += 2;
PUSH AR1H:AR0H
[SP] = AR0H;
[SP+1] = AR1H;
SP += 2;
PUSH DBGIER
[SP] = DBGIER;
SP += 1;
PUSH DP:ST1
[SP] = DP;
SP += 1;
PUSH DP
[SP] = ST1;
[SP+1] = DP;
SP += 2;
PUSH IFR
[SP] = IFR;
SP += 1;
PUSH loc16
LLLL
LLLL
[SP] = [loc16];
SP += 1;
PUSH P
[SP] = P;
SP += 2;
PUSH RPC
[SP] = RPC;
SP += 2;
PUSH ST0
[SP] = ST0;
SP += 1;
PUSH ST1
[SP] = ST1;
SP += 1;
AX – это части ACC. AH – старшая, AL – младшая. Для них доступны команды с данными не юлее 16 бит.
Мнемоника
Код операции
XARn
Пример
ADD AX,loc16
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[Сдвиг]
Добавить
Ист1 =Ист1 + Ист2
Формат команд:
Команда Ист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-битную константу.
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}
Дата добавления: 2014-10-17 ; Просмотров: 394 ; Нарушение авторских прав? ; Мы поможем в написании вашей работы!
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет