Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2009, 12:18   #1
green123
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 10
Печаль Помогите новичку Delphi и ASM

Прошу помощи и не пинать очень сильно.
Каким образом необходимо преобразовать текст для работы с функцией использующей асм .
Задача такая- взять число из tedit.text преобразовать в бинарный код и в ассембере произвести следующие операции +- логический сдвиг вправо,влево и выдать результат в tedit.text

исходная инфа в виде "0AE" в асм надо передать в виде "000010101110"
приведу то что у меня получилось

Код:
function Calc(r1,r2:longword):longword;register;
  var
    r4,r5,r6:integer;
 asm
  mov ebx,09h
  SHR   ebx,6

 end;
procedure TForm1.Button1Click(Sender: TObject);
var
  a,b,c:integer;
begin
  a:= StrToInt ('$'+ edit1.text) ;
  b:= StrToInt ('$'+ edit2.text) ;
  c:= CalcEsn(a,b);
  Edit3.Text:=IntToHex(c,8)
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9','A'..'F','a'..'f'])
  then Key := #0;
end;

Последний раз редактировалось Stilet; 09.06.2009 в 13:21.
green123 вне форума Ответить с цитированием
Старый 09.06.2009, 13:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну ту ничего сложного нет, вот пример работы с параметрами на ДелфиАсме
Код:
procedure TForm1.FormCreate(Sender: TObject);
 function clc(q:DWORD):DWORD;
 begin
  asm
   mov eax,[q];
   shl eax,2;
   mov [result],eax
  end;
 end;
begin
 caption:=inttostr(clc(2));
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.06.2009, 13:32   #3
Izhic
Форумчанин
 
Аватар для Izhic
 
Регистрация: 08.10.2008
Сообщений: 668
По умолчанию

+
[Ctrl+Alt+C]
Во время остановки на Breakpoint
---------------
Сможешь просмотреть на Asm, код любого действия написанного на Delphi
Don't worry be happy
Izhic вне форума Ответить с цитированием
Старый 11.06.2009, 00:02   #4
green123
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 10
По умолчанию

спасибо всем кто ответил
у меня еще один вопрос:
в моей asm функции необходимо использовать цикл который выполняется 2F раз и четыре константы
при первом выполнении цикла используются константы по : адрес+С и адрес+8,при втором адрес+4 и адрес+0
вопрос в следующем как под Delphi в Asm задать константы и как к ним обращаться для работы (константы в моей задаче - это четыре байта)
В ассемблере команда : LDR R1, [R2, R3] r2 начальный адрес r3 смещение С,8,4,0
green123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с ASM RomTB Помощь студентам 4 24.05.2009 11:27
Подскажите новичку! DirectX и Delphi С-в-е-т-а Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 15.05.2009 21:51
получить значение Delphi компонента из asm fbus Общие вопросы Delphi 4 26.03.2009 13:00
Delphi и ASM benjaminfran Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 17.02.2008 15:46
Запись в буфер Delphi & Asm SteelRat Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 14 27.02.2007 22:49