Встроенные математические функции. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Встроенные математические функции.

Поиск
Функция Описание
$acos(x) Арккосинус в диапазоне [0, π], x [-1, 1]
$asin(x) Арксинус в диапазоне [-π/2, π/2], x [-1, 1]
$atanx) Арктангенс в диапазоне [-π/2, π/2]
$atan2(x, y) Арктангенс от y/x в диапазоне [-π, π]
$ceil(x) Округление до ближайшего целого, меньшего, чем x с плавающей точкой
$cos(x) Косинус от x
$cosh(x) Косинус гиперболический от x
$cvf(n) Превращает целое в формат с плавающей точкой
$cvi(x) Превращает число с плавающей точкой в целое
$exp(x) Экспонента от x
$fabs(x) Абсолютное значение от х
$floor(x) Округление до ближайшего целого, большего, чем x с плавающей точкой
$fmod(x, y) Остаток от деления x/y, знак как для x
$int(x) Возвращает 1, если x целое, иначе 0
$ldexp(x, n) Умножение х на 2 в степени n
$log(x) Натуральный логарифм
$log10(x) Десятичный логарифм
$max(x, y,...z) Наибольшее из списка
$min(x, y,...z) Наименьшее из списка
$pow(x, y) Х в степени y
$round(x) Округление до ближайшего целого
$sgn(x) Знак числа. 1 для положительного, 0 для отрицательного
$sin(x) Синус от х
$sinh(x) Синус гиперболический от х
$sqrt(x) Квадратный корень из х
$tan(x) Тангенс от х
$tanh(x) Тангенс гиперболический от х
$trunc(x) Ближайшее целое по отношению к 0

Режимы работы ассемблера. Возможны 3 режима:

· -v27 для C27x.

· -v28 для C28x.

· -v28 –C2xlp_src_compatible - для C28x с поддержкой дополнительных инструкций C2xlp.

Команды ассемблера

Всего определено… команд, разделенных по категориям:

Категория Кол-во
С регистрами общего назначения XAR0 – XAR7  
С регистром указателя сегмента памяти данных DP  
С регистром указателя стека SP  
С регистрами AX (AH, AL)  
16-разрядные с регистрами ACC  
32-разрядные с регистрами ACC  
64-разрядные с регистрами ACC  
С регистрами P или XT  
Перемножение 16х16  
Перемножение 32х32  
Прямой доступ к памяти  
Ввод/вывод  
Программная память  
Ветвление, вызов, возврат  
С регистром прерываний IER  
С регистрами статуса ST0, ST1  
Разного назначения  
Итого  

Операции с регистрами XAR0-XAR7

Мнемоника Код операции XARn       Пример
ADDB XARn, #7bit   1nnn 0CCC CCCC   XARn = XARn + 0:7bit;
ADRK #8bit     IIII IIII   XAR(ARP) = XAR(ARP) + 0:8bit;
  CMPR 0 CMPR 1 CMPR 2 CMPR 3           Сравнение AR0 c AR(ARP) на = > < !=
MOV AR6,loc16 MOV AR7,loc16     LLLL LLLL   AR6/7 = [loc16]; AR6/7H = unchanged;
MOV loc16,ARn   1nnn LLLL LLLL   [loc16] = ARn;
MOV XARn,PC       1nnn   XARn = 0:PC;
MOVB AR6,#8bit MOVB AR7,#8bit     CCCC CCCC   AR6/7 = 0:8bit; AR6/7H = unchanged;
MOVB XAR0…5, #8bit MOVB XAR6, #8bit MOVB XAR7, #8bit   0nnn CCCC CCCC   XARn = 0:8bit;
MOVL loc32,XAR0 MOVL loc32,XAR1 MOVL loc32,XAR2 MOVL loc32,XAR3 MOVL loc32,XAR4 MOVL loc32,XAR5 MOVL loc32,XAR6 MOVL loc32,XAR7     LLLL LLLL   [loc32] = XARn;
MOVL XAR0, loc32 MOVL XAR1, loc32 MOVL XAR2, loc32 MOVL XAR3, loc32 MOVL XAR4, loc32 MOVL XAR5, loc32 MOVL XAR6, loc32 MOVL XAR7, loc32     LLLL LLLL   XARn = [loc32];
MOVL XAR0, #22bit MOVL XAR1, #22bit MOVL XAR2, #22bit MOVL XAR3, #22bit MOVL XAR4, #22bit MOVL XAR5, #22bit MOVL XAR6, #22bit MOVL XAR7, #22bit     00СС СССС СССС СССС СССС СССС XARn = 0:22bit;   В КОП добавлены 16 бит
MOVZ AR0…5n,loc16 MOVZ AR6,loc16 MOVZ AR7,loc16   1nnn LLLL LLLL   ARn = [loc16]; ARnH = 0;
SBRK #8bit     CCCC CCCC   XAR(ARP) = XAR(ARP) − 0:8bit;
SUBB XARn, #7bit   1nnn 1CCC CCCC   XARn = XARn − 0:7bit;

Операции загрузки регистра 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;

Операции с регистром SP

Мнемоника Код операции 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;


Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 241; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.)