Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.06;
Скачать: CL | DM;

Вниз

преобразование assembler в pascal   Найти похожие ветки 

 
hinst ©   (2009-07-03 14:19) [0]

Превед всем. Подскажите пожалуйсто, нет ли какой-нибудь проги, чтобы преобразовывать ассемблерный код в паскаль???
спасибо за внимание.


 
Сергей М. ©   (2009-07-03 14:21) [1]

Произвольный что ли код ?
Т.е. невесть откуда взявшийся и к Делфи отношения не имеющий ?


 
hinst ©   (2009-07-03 14:22) [2]

нет. надо преобразовывать ассемблерные вставки в функциях delphi


 
Palladin ©   (2009-07-03 14:24) [3]

самый хитрый?


 
Anatoly Podgoretsky ©   (2009-07-03 14:24) [4]

Они что не работают?


 
hinst ©   (2009-07-03 14:24) [5]

кто самый хитрый??


 
hinst ©   (2009-07-03 14:24) [6]

Anatoly Podgoretsky: ДА!!! именно


 
Rouse_ ©   (2009-07-03 14:25) [7]


> Превед всем

Превед.


> нет ли какой-нибудь проги, чтобы преобразовывать ассемблерный
> код в паскаль???

http://ftp.cs.pu.edu.tw/pub/cpatch/patchutil/dede/plugin/asm2pas.zip


 
Сергей М. ©   (2009-07-03 14:25) [8]


> надо преобразовывать ассемблерные вставки в функциях delphi


И что в рез-те нужно получить ?

Приведи пример оригинального асм-кода и соответствующий ему паскаль-код после этого самого "преобразования" ..


 
hinst ©   (2009-07-03 14:27) [9]

мне надо вот эту шляпу перевести:
function RealFloatCall_Register(p: Pointer;
 _EAX, _EDX, _ECX: Cardinal;
 StackData: Pointer;
 StackDataLen: Longint
 ): Extended; Stdcall;
var
 E: Extended;
begin
 asm
   mov ecx, stackdatalen
   jecxz @@2
   mov eax, stackdata
   @@1:
   mov edx, [eax]
   push edx
   sub eax, 4
   dec ecx
   or ecx, ecx
   jnz @@1
   @@2:
   mov eax,_EAX
   mov edx,_EDX
   mov ecx,_ECX
   call p
   fstp tbyte ptr [e]
 end;
 Result := E;
end;


 
hinst ©   (2009-07-03 14:30) [10]

Rouse_: спасибо, канешн, только эта прога для dump-файлов. а у меня обычный код


 
Rouse_ ©   (2009-07-03 14:32) [11]

А что тут не понятно? StackData разворачивается на стэке, заполняются 3 регистра и произордится вызов функции. На прямую ты так не напишешь...


 
Сергей М. ©   (2009-07-03 14:35) [12]


> hinst ©   (03.07.09 14:27) [9]


А чем собссно она тебе  в асм-виде помешала ?
Не зря же ее на басме писали, а не на паскале ..


 
hinst ©   (2009-07-03 14:35) [13]

если я не напишу так на прямую, то это очень плохо


 
Сергей М. ©   (2009-07-03 14:36) [14]

Кому плохо ?)


 
Rouse_ ©   (2009-07-03 14:37) [15]

Ты ее вообще можешь не вызывать, а дергать напрямую ту функцию, адрес которой передается в первом параметре


 
hinst ©   (2009-07-03 14:37) [16]

Сергей М: просто я тут хотел один очень хороший компонент собрать для arm. но все ассемблерные вставки не собираются. у меня подозрение, что что у asm.arm синтаксис иной. не такой, как у asm.i386


 
hinst ©   (2009-07-03 14:39) [17]

а это: function RealFloatCall_Register(p: Pointer;
_EAX, _EDX, _ECX: Cardinal;
StackData: Pointer;
StackDataLen: Longint
): Extended; Stdcall;

это процедура вызова любой функции с любыми параметрами


 
Anatoly Podgoretsky ©   (2009-07-03 14:39) [18]


> Anatoly Podgoretsky: ДА!!! именно

Что именно не работает и какой смысл переводить неработающие фукции, они что станут работающими?


 
hinst ©   (2009-07-03 14:41) [19]

Anatoly Podgoretsky: для i386 она работает, а для ARM не работает


 
Сергей М. ©   (2009-07-03 14:41) [20]


> все ассемблерные вставки не собираются


Что, вот прямо так и говорят "мы не собираемся" ?)
Или все-таки компилятор дает тебе какую-то конкретную инф-цию об отказе в сборке ?


 
hinst ©   (2009-07-03 14:42) [21]

Сергей М.:
они говорят:

Error: Unknown identifier "ECX" //на строке "mov ecx, stackdatalen"
Fatal: Internal error 200501051


 
Anatoly Podgoretsky ©   (2009-07-03 14:42) [22]

> hinst  (03.07.2009 14:41:19)  [19]

У нас конференци по Дельфи однако


 
hinst ©   (2009-07-03 14:44) [23]

Anatoly Podgoretsky: так а я про что спрашиваю?? про C++ что-ли??


 
Rouse_ ©   (2009-07-03 14:45) [24]

Чтоб это переписать - нужно уметь писать на ARM ASM-е :)


 
hinst ©   (2009-07-03 14:47) [25]

Rouse_: вот и у меня такое подозрение. только я на обычном-то не умею писать, а тут ARM


 
Сергей М. ©   (2009-07-03 14:49) [26]


> hinst ©   (03.07.09 14:42) [21]


Ну дык в ARM, наверно, нет такого РОН - вот оно и "не собирается" ..
Там же иная архитектура, отличающаяся от x86 ..


 
Сергей М. ©   (2009-07-03 14:51) [27]


> я на обычном-то не умею писать, а тут ARM


А ты вооще где эту ф-цию подобрал ?
И в каком алгоритмическом контексте она используется ?


 
Anatoly Podgoretsky ©   (2009-07-03 14:51) [28]

> hinst  (03.07.2009 14:44:23)  [23]

Про АРМ ты сказал значительно позже, кроме того вопрос задал не в той конференции, сейчас в правильной.


 
Anatoly Podgoretsky ©   (2009-07-03 14:53) [29]

> hinst  (03.07.2009 14:47:25)  [25]

Можно найти конференцию по ARM и там попросить перевести из Дельфи, предварительно объяснив, что должно делаться.


 
hinst ©   (2009-07-03 14:54) [30]

Сергей М.: это процедура вызова любой функции с любыми параметрами, как мне думается. она в InnerFusePascalScript


 
Сергей М. ©   (2009-07-03 15:04) [31]

Ах вон оно что)..
Т.е. ты пытаешься портировать на платформу ARM-платформу InnerFusePascalScript-движок ?


 
hinst ©   (2009-07-03 15:33) [32]

Сергей М.: ну да


 
Сергей М. ©   (2009-07-03 15:40) [33]

Ну тады без знания архитектуры ARM не обойтись


 
БарЛог ©   (2009-07-03 15:44) [34]

Удали строчки, на которых ругаются :)


 
hinst ©   (2009-07-03 15:54) [35]

БарЛог: агаблин, только работать не будет


 
Сергей М. ©   (2009-07-03 16:04) [36]


> hinst


Портируемую версию чем собираешь ? Фрипаскалем ?


 
hinst ©   (2009-07-03 16:09) [37]

Сергей М.: да. именно им


 
Сергей М. ©   (2009-07-03 16:21) [38]

Так это тебе к разработчикам Фрипаскаля обращаться нужно ..
Кому уж как не им лучше всего знать соглашения о передаче параметров, тем паче для поддерживаемой ими ARM-платформы)


 
RWolf ©   (2009-07-03 19:26) [39]

Соглашения там стандартные, по крайней мере для сишного кода;
так что, скорее всего, параметры лягут в R0-R3.
Но лучше перевести сабж на паскаль, просто ради портабельного кода. Будет не хватать скорости — тогда будете думать, как оптимизировать.


 
Pavia ©   (2009-07-03 23:46) [40]

А много кода переводить?



Страницы: 1 2 вся ветка

Текущий архив: 2009.09.06;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.015 c
15-1246653254
Юрий
2009-07-04 00:34
2009.09.06
С днем рождения ! 4 июля 2009 суббота


15-1247145135
Palladin
2009-07-09 17:12
2009.09.06
Вопросы вида "Когда будет сделано?"


2-1246969271
Алексей111
2009-07-07 16:21
2009.09.06
Table is read only


15-1246971221
Knight
2009-07-07 16:53
2009.09.06
Как сделать правильно настраиваемый интерфейс пользователя?


15-1247043689
Гость
2009-07-08 13:01
2009.09.06
Администрирование