|
(*~\Глагол\Отделы\Иное~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**) ОТДЕЛ Асм-; (* Задачи без УКАЗ(аний) *)
(*============================================================================*)
(* НАЗНАЧЕНИЕ: дополнительные задачи на ассемблере *)
(*============================================================================*)
ИСПОЛЬЗУЕТ
ОБХОД;
ПОСТ
(* возможные значения ответа задачи Особенность *)
Число- = 0;
МинусБеск-= 1;
ПлюсБеск- = 2;
НеЧисло- = 3;
(*----------------------- Математические функции -----------------------------*)
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Особенность-(x:ШИРВЕЩ):ЦЕЛ;
(* Определяет состояние < x >
* Ответ: {Число,МинусБеск,ПлюсБеск,НеЧисло} *)
КОН Особенность;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА СлучНач-(x:ЦЕЛ);
(* начальная установка последовательности псевдослучайных чисел *)
КОН СлучНач;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА СлучЦел-():ЦЕЛ;
КОН СлучЦел;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА sin-(x:ШИРВЕЩ):ШИРВЕЩ;
КОН sin;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА cos-(x:ШИРВЕЩ):ШИРВЕЩ;
КОН cos;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА sincos-(x:ШИРВЕЩ; sinX+,cosX+:ШИРВЕЩ);
КОН sincos;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА arctg-(x:ШИРВЕЩ):ШИРВЕЩ;
КОН arctg;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ln-(x:ШИРВЕЩ):ШИРВЕЩ;
КОН ln;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА exp-(x:ШИРВЕЩ):ШИРВЕЩ;
КОН exp;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА квкор-(x:ШИРВЕЩ):ШИРВЕЩ; (* квадратный корень *)
КОН квкор;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Порядок-(x+:ШИРВЕЩ):ЦЕЛ;
(* Выделить мантиссу и порядок у числа < x >
*----------------------------------------------------------------------------*
* До: < x > - исходное число
* После: < x > - мантисса
* Ответ: порядок < x > *)
КОН Порядок;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ВЦифры-(x:ШИРВЕЩ; цифр:ЦЕЛ; цифры+:ЦЕПЬ);
(* Переводит < x > в десятичное представление
*----------------------------------------------------------------------------*
* До: < x > - исходное число (0 <= x < 10)
* <цифр> - требуется цифр после запятой
* ДЛ(<цифры>) должна быть больше <цифр> и больше 18!
* После: <цифры[0]> - десятки < x >
* <цифры[1]> - единицы < x >
* <цифры[2..цифр]> - цифры < x > после запятой *)
КОН ВЦифры;
(*----------------------- Работа с битами ------------------------------------*)
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Сдвиг-(ч,р:ЦЕЛ):ЦЕЛ;
(* Двоичный сдвиг целого числа, т.е. логический (LSH)
*----------------------------------------------------------------------------*
* До: <ч> - исходное число
* <р> - счетчик разрядов
* если <р> > 0, то в сторону старшего разряда
* если <р> < 0, то в сторону младшего разряда
* Ответ: сдвинутое число *)
КОН Сдвиг;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ЗнаковыйСдвиг-(ч,р:ЦЕЛ):ЦЕЛ;
(* Двоичный сдвиг целого числа с сохранением знака, т.е. арифметический (ASH)
*----------------------------------------------------------------------------*
* До: <ч> - исходное число
* <р> - счетчик разрядов
* если <р> > 0, то в сторону старшего разряда
* если <р> < 0, то в сторону младшего разряда
* Ответ: сдвинутое число *)
КОН ЗнаковыйСдвиг;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Вращение-(ч,р:ЦЕЛ):ЦЕЛ;
(* Двоичное вращение целого числа
*----------------------------------------------------------------------------*
* До: <ч> - исходное число
* <р> - счетчик разрядов
* если <р> > 0, то в сторону старшего разряда
* если <р> < 0, то в сторону младшего разряда
* Ответ: перевёрнутое число *)
КОН Вращение;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Сдвиг64-(ч:ОБХОД.Цел64; р:ЦЕЛ):ОБХОД.Цел64;
(* Двоичный сдвиг целого числа, т.е. логический (LSH)
*----------------------------------------------------------------------------*
* До: <ч> - исходное число
* <р> - счетчик разрядов
* если <р> > 0, то в сторону старшего разряда
* если <р> < 0, то в сторону младшего разряда
* Ответ: сдвинутое число *)
КОН Сдвиг64;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ЗнаковыйСдвиг64-(ч:ОБХОД.Цел64; р:ЦЕЛ):ОБХОД.Цел64;
(* Двоичный сдвиг целого числа с сохранением знака, т.е. арифметический (ASH)
*----------------------------------------------------------------------------*
* До: <ч> - исходное число
* <р> - счетчик разрядов
* если <р> > 0, то в сторону старшего разряда
* если <р> < 0, то в сторону младшего разряда
* Ответ: сдвинутое число *)
КОН ЗнаковыйСдвиг64;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Вращение64-(ч:ОБХОД.Цел64; р:ЦЕЛ):ОБХОД.Цел64;
(* Двоичное вращение целого числа
*----------------------------------------------------------------------------*
* До: <ч> - исходное число
* <р> - счетчик разрядов
* если <р> > 0, то в сторону старшего разряда
* если <р> < 0, то в сторону младшего разряда
* Ответ: перевёрнутое число *)
КОН Вращение64;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ШирСдвиг-(ч:ШИРЦЕЛ; р:ЦЕЛ):ШИРЦЕЛ;
КОН ШирСдвиг;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ШирЗнаковыйСдвиг-(ч:ШИРЦЕЛ; р:ЦЕЛ):ШИРЦЕЛ;
КОН ШирЗнаковыйСдвиг;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ШирВращение-(ч:ШИРЦЕЛ; р:ЦЕЛ):ШИРЦЕЛ;
КОН ШирВращение;
(*----------------------- Разное ---------------------------------------------*)
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ОбнулитьПамять-(адрес,размер:ЦЕЛ); (* размер в байтах *)
КОН ОбнулитьПамять;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ПриёмникиДПБ-(hInstance+,reason+,param+:ЦЕЛ);
КОН ПриёмникиДПБ;
КОН Асм.
|
|