Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Нужна помощь с ассемблером в Delphi (найти точку в строке).

Ответить
Настройки темы
Delphi - [решено] Нужна помощь с ассемблером в Delphi (найти точку в строке).

Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Кто знает встроенный ассемдлер Delphi , подскажите как мне передать в сам ассемблер строку и найти в ней первый индекс первого символа " . " (точка) . Нужно очень срочно . Заранее очень благодарен .

Отправлено: 18:01, 28-12-2006

 

Аватара для DillerInc

Обратный инженер


Сообщения: 644
Благодарности: 47

Профиль | Отправить PM | Цитировать


Jhakal
Ну,можно примерно так:
Код: Выделить весь код
var
 s: String;
 Len: Integer;
 Index: Integer;
begin
if edInput.Text <> '' then
 begin
  s := edInput.Text; // Чем-то заполняем строку s
  Len := Length(s);  // Вычисляем её длину
  asm
   push  edi           // Сохраняем регистры EDI, ECX
   push  ecx
   mov   edi, s       // EDI -- указатель на строку        
   mov   ecx, Len   // ECX -- счётчик
   mov   al, $2E     // AL -- искомый элемент; байт $2E есть "точка"
// выполняем команду сканирования цепочки пока в последней не встретится элемент,
// совпадающий с элементом в регистре AL
   repnz scasb      
   inc   ecx             // Инкремент счётчика,чтобы вернутся чуть назад т.к., когда мы просканировали элемент,мы его "проехали"
   mov   eax, Len
   sub   eax, ecx    // Вычитаем счётчик из общей длины строки
   mov   Index, eax   // Сохраняем результат
   pop   ecx
   pop   edi           // Восстанавливаем регистры EDI, ECX
  end;
 end;
end;
Учти,что строка -- это тот же массив,поэтому индексация первого элемента ведётся от нуля.

Всё ж...какая гадость эта ваша заливная рыба...это я про Дельфи.

-------
То,что неясно,следует выяснить.То,что трудно творить,следует делать с великой настойчивостью. © Конфуций


Отправлено: 20:57, 28-12-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


Огромное спасибо !!! Ты меня выручил !!!

Отправлено: 17:44, 29-12-2006 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Нужна помощь с ассемблером в Delphi (найти точку в строке).

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 - [решено] СРОЧНО!!! Нужна помощь по командной строке Dragster Windows Server 2008/2008 R2 12 26-01-2010 18:25
[решено] Нужна помощь с логами ! M.A.M.A.H. Лечение систем от вредоносных программ 17 18-01-2010 04:13
[решено] нужна помощь программиста. foxbat Программирование в *nix 0 09-11-2009 13:45
[решено] Срочно нужна помощь с BIOS Demmorg1 Материнские платы и память 3 19-02-2008 14:44
Не могу найти мат. плату на 478 сокет, нужна помощь :( pingUIN Материнские платы и память 20 11-06-2007 19:40




 
Переход