|
Функции DataBase.
Артикул | Наименование | Цена, от | SapVarDat | | Поиск / добавление вниз к переменной Var1 числа Dat32, Вых: при JZ=1 (есть совпадение): позиция32= EAX, адрес= EBX | SapVarDat, Var1, Dat32 | На основе функции VarSeaDat. | | SupVar | | Добавляет число Dat32 в начало переменной Var1. Совпадения Dat32 удаляются. Данные за LnMax1 (=0,1,2,...) удаляются. Портит регистр EAX, EBX. Вых: Счетчик числа совпадений= EAX, признак Z=0: нет совпадений. | SupVar, Var1, LnMax1, Dat32 | Функция не самая быстрая, переписывает всю переменную по 32 бита, затем, копирует обратно. Может использоваться для хранения списка ссылок. | | SapVarNotDat | | Поиск совпадения Dat32 в переменной Var1, если не найдено: поиск DatR32 и замена его на Dat32, если не найдено: добавление Dat32 к концу переменной. Вых: позиция32= EAX, адрес= EBX, признак Z=1 есть совпадение. Не портит регистры. | SapVarNotDat, Var1, Dat32, DatR32 | Ищет Dat32. Если находит- выход. Если нет - добавляет Dat32 сперва на "пустое место", заменяя число DatR32 (для экономии ресурсов), если DatR32 нет - в конец переменной. Удобно при динамическом добавлении и удалении данных. | | VarSeaDat | | Поиск 1-го совпадения Dat32 в переменной Var1. Портит регистр EAX, EBX. Вых: позиция32= EAX, адрес= EBX, признак Z=1 есть совпадение | VarSeaDat, Var1, Dat32 | | | VarSeaDat32 | | Поиск и при несовпадении добавление Dat32 в переменную Var1. Вых: найденный/последний индекс= EAX, признак JZ=1 есть совпадение; Портит регистр EAX, EBX. | VarSeaDat, Var1, Dat32 | | | VarRevSeaDat | | Реверсивный поиск 1-го совпадения Dat32 с конца переменной Var1. Портит регистр EAX, EBX. Вых: позиция32 от конца = EAX, адрес= EBX, признак Z=1 есть совпадение. | VarRevSeaDat, Var1, Dat32 | | | VarSeaNotDat | | Поиск 1-го несовпадения Dat32 в переменной Var1. Портит регистр EAX, EBX, ECX. Вых: позиция32= EAX, адрес= EBX, найденное число = ECX, признак NZ=1 есть несовпадение. | VarSeaNotDat, Var1, DatR32 | Фактически, находит 1-е непустое (неравное DatR32) число. | | VarRemNotDat | | Поиск 1-го несовпадения DatR32 и замена его на DatR32 в переменной Var1, Вых: позиция32= EAX, адрес= EBX, найденное число = ECX, признак NZ=1 есть несовпадение. Портит регистр EAX, EBX, ECX. | VarRemNotDat, Var1, DatR32 | Как-бы вырезает 1-е непустое число (неравное DatR32) и заменяет его пустым (= DatR32). | | VarRemDat | | Поиск и замена Dat32 на DatR32 в переменной Var1, Вых: при JZ=1 (есть совпадение): позиция32= EAX, адрес= EBX. | VarRemDat, Var1, Dat32, DatR32 | Удаляет непустое число (неравное DatR32) путем замены его пустым (DatR32). | | VarDfrDat | | Удаление всех DatR32 из переменной Var1. Вых: длина32= EAX, JZ=1 при EAX=0. | VarDfrDat, Var1, DatR32 | Удаляет "пустые" числа DatR32, укорачивая излишки длины. | | VarRemDfrDat | | Поиск и замена Dat32 на DatR32 в переменной Var1, при совпадении - удаление всех DatR32 из переменной Var1. Вых: при JZ=1 (есть совпадение): EAX = новая длина32. | VarRemDfrDat, Var1, Dat32, DatR32 | Удаляет непустое число (неравное DatR32) путем замены его пустым (DatR32). Затем (если DatR32 найдено и удалено), даляет "пустые" числа DatR32, укорачивая излишки длины. | | ArrRemDfrDat | | Поиск и замена Dat32 на DatR32 в строках Arr1, при совпадении - удаление всех DatR32 из строки. Вых: EAX = число строк с совпадениями, при JZ нет совпадений. | ArrRemDfrDat, Arr1, Dat32, DatR32 | В строках списка данных удаляет непустые числа DatR32 (не равное DatR32) путем замены его пустым (DatR32). Затем (если DatR32 найдено и удалено), удаляет "пустые" числа DatR32, укорачивая излишки длины. | | SapRevVarNotDat64 | | Реверсивный поиск совпадения Dat32 с конца переменной Var1, если найдено - выход, если не найдено: поиск DatR32 и замена его на Dat32, тут же пишем Dat32_1, если не найдено: добавление Dat32 и Dat32_1 к концу переменной. Значение свободного ключа - DatR32. Вых. EBX=0 или JZ - Ключ найден (EAX=адрес Dat32_1), EBX=1 - Ключ вставлен вместо свободного DatR32 (EAX=адрес Dat32_1), EBX=2 - Ключ добавлен вниз (EAX не определен). Портит регистры EAX, EBX, ECX. | SapRevVarNotDat64, Var1, DatR32, Dat32, Dat32_1 | Добавление уникального ключа и ассоциативных данных в базу. | | VarRevSeaDat64 | | Реверсивный поиск 1-го совпадения ключа Dat32 с конца переменной Var1. Портит регистр EAX, EBX. Вых: адрес данных (ключ+4)= EAX, позиция64 от конца = EBX, признак Z=1 есть совпадение. | VarRevSeaDat64, Var1, Dat32 | Поиск в базе ассоциативных данных по ключу. | | VarRevRemNotDat64 | | Реверсивный поиск 1-го несовпадения с конца переменной Var1 числа DatR32 с ключом и замена его на DatR32, Вых: убитый ключ Dat32= EAX, Адрес данных Dat32_1= EBX, признак NZ=1 есть несовпадение. Портит регистр EAX, EBX, ECX. | VarRevRemNotDat64, Var1, DatR32 | Поиск в базе 1-го непустого ключа и его вырезание (замена на пустое DatR32) (без удаления ассоциативных данных). | | VarRevSeaNotDat64 | | Реверсивный поиск 1-го несовпадения DatR32 с конца переменной Var1. Портит регистр EAX, EBX, ECX. Вых: Адрес ключа Dat32= EAX, Адрес данных Dat32_1= EBX, признак NZ=1 есть несовпадение. | VarRevSeaNotDat64, Var1, DatR32 | Поиск в базе 1-го непустого ключа. | | DivDatIntoGroups | | Разделение на группы. Поиск значения Val32 с допуском +-Dia32 в фильтре MsF2 строк Arr1. Если найдено - добавляет Dat32 в эту строку. Если нет - создает новую строку, добавляет Dat32 и записывает Val32 в фильтр MsF2. | DivDatIntoGroups, Arr1, Val32, Dia32, Dat32 | Создает новую строку функцией ArrPlusDat32, добавляет данные с помощью макроса VarDat32. | | DivVarIntoGroups | | Разделение на группы. Поиск значения Val32 с допуском +-Dia32 в фильтре MsF2 строк Arr1. Если найдено - добавляет Var32 в эту строку, как в список. Если нет - создает новую строку, добавляет Var32, как в список и записывает Val32 в фильтр MsF2. | DivVarIntoGroups, Arr1, Val32, Dia32, Var32 | | |
Страница "Функции DataBase." обновлена -
|