Необходимо использовать подготовленный интерфейс операторов sqlite. В основном идея состоит в том, что Вы готовите оператор с заполнителем для Вашего блоба, затем используйте один из связывать вызовов для "связывания" данных...
Находит абсолютное значение
Он работает только с AX / EAX - Он уничтожает регистр (DX / EDX) - Это может быть сделано быстрее на Pentium и более новых процессорах Проблема в CWD инструкция. Чтобы заменить CWD, вы можете использовать эту комбинацию: mov dx, ax sar dx, 15 (Если используются 32-битные регистры, вместо этого сдвигается значение 31).
cwd - преобразовать слово в двойное слово.
xor ax, dx => ax = ax xor dx
cwd xor ax, dx
Преобразовать слово в AX для двойного слова в DX: AX. Знак сохранен, ценность сохранена. Итак, если AX> = 0, DX = 0 и если AX <0, DX = -1.
XOR ничего не делает, если AX == 0.
Если AX <0, XOR меняет все биты AX на противоположные. Затем SUB добавляет 1 (или вычитает -1, независимо от того: P) к AX. Это способ вычисления дополнения двоичного числа до 2.
В общем, эта последовательность инструкций помещает абсолютное значение AX в AX и устанавливает DX в соответствии со знаком.
Это функция abs
(из ax
).
Если ax
положительно, то dx
станет 0
, и ничего не изменится.
Если ax
отрицательно, dx
будет 0xffff
, что приведет к ax
← ~ ax - (-1)
, что является хорошо известный метод вычисления neg
в представлении с двумя дополнениями.