Теперь можно выполнить некоторую оптимизацию. В начале превратим функцию в чисто ассемблерную. Метки были объяснены в листинге предыдущего кода....
В данный момент здесь нет фрейма стека. Регистры EBX и ESI используются, и поэтому требуется их сохранения и восстановление при выходе из функции....
Урок 6Это урок 6 и его тема CharPos. Данная функция ищет первое вхождение символа в строке, и возвращает его позицию когда найдет. Если ничего не...
function ForLoopBASM13(Start, Stop : Integer) : Integer; asm push ebx //push esi push edi //mov esi,eax //for I := Start to Stop do //mov ecx, esi...
function ForLoopBASM8(Start, Stop : Integer) : Integer; asm push ebp push ebx mov ebp,esp add esp,-14h mov edx,edx mov [ebp-4],eax //Result := 0;...
Регистр EAX используется для Start вверху функции и как Result в остальной части функции. Если нет перекрытия по использованию, то мы можем...
Урок 5Добро пожаловать на пятый урок. Его тема циклы. Мы увидим, как компилятор реализует циклы, и какую оптимизацию мы можем сделать в них. Мы...
function Min6(const A, B: Single) : Single; asm //push ecx sub esp, 4 //if A < B then fld dword ptr [ebp+0Ch] fcomp dword ptr [ebp+8] fstsw...
Урок 4В данном уроке мы посмотрим насчет ветвления, рассматривая это на примере конструкции IF-ELSE. Условное перемещение для плавающей запятой...
Урок 3Тема третьего урока MMX и SSE2, одновременно будет обсуждена 64-битная математика. И мы впервые обратим внимание на зависимость оптимизации...
Для начала уберем два строки FSTP/FLD поскольку они лишние.function SecondOrderPolynomial4(X : Double) : Double; const A : Double = 1; B : Double...
Урок 2Это вторая глава введения в программирование с помощью BASM в Delphi. В первой главе было короткое введение в целочисленный код, а в этой...
Урок 1Начнем с небольшого примера. Это функция для умножения на 2. function MulInt2(I : Integer) : Integer; begin Result := I * 2;...
Borland Assembler (BASM) уроки для начинающих Delphi , Синтаксис , Assembler взято здесь Денис Христенсен Из news://forums.borland.com...
Разбор полётовПоля структуры dlgOpenOfn уже заполнены. dlgOpenTitle db 'Open File',0 dlgOpenOfn OPENFILENAME <<sizeof...
Глава двадцать седьмая. Пример использования диалога «Открыть файл»[IMG] Предопределенные диалоговые окна находятся в comdlg32.dll. Эти...
Это взято из Агнера Фога. Если число положительное, тогда можноmov eax,X bsr ecx,eax; можно shr eax,1 в цикле до первой единицы inc ecx imul...
Мановар, Порядок десятичного числа ― это сколько цифр в этом числе минус 1. Порядок 137218 это 5 или 1,37218\times 10^{5} или...
horpis_real, странное задание. Советы хотя бы помогли?
можно, пока не появится следующий пост. А теперь представь -- пишешь статью и тут вдруг rococo795 создает сообщение
Имена участников (разделяйте запятой).