Сейчас на форуме: tyns777 (+5 невидимых)

 eXeL@B —› Программирование —› аsm2pаs (testing)
<< . 1 . 2 . 3 . >>
Посл.ответ Сообщение

Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 04 сентября 2007 00:23 · Поправил: DIMAIN
· Личное сообщение · #1

Вообщем выкладываю вторую тестовую версию ifolder.ru/3232559
у кого есть возможность потестируйте и отпешитесь, мож будут какие советы дельные, т.к. автор этой проги перестал ее дальше разрабатывать(нет времени), я у него попросил сырки и хочу продолжить этот проект...

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



Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 05 сентября 2007 18:37
· Личное сообщение · #2

LazzY пишет:
напешите лучше чтонить вроде vb2php

я уже бэйсик забыл, в школе его еще учил

LKS128 пишет:
>>> Качай здесь <<<

Ок... какя версия самая актуальная?



Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 05 сентября 2007 22:55 · Поправил: DIMAIN
· Личное сообщение · #3

Прога теперь называется ASM2PAS IDE (модеры переименуйте тему!!!)
насчет Фасма это я конечно погоречился, поначалу глянул мелкие примеры на фасме, думал с синтаксисом не будет поблем, а щас стал разбирать примеры по больше и понял что с фасмом будет много заморочек, если делать поддержку фасма то из за него придется периделывать весь двиг парсера, а это не есть хорошо поэтому фасм откладывается до лучших времен... сейчас улучшаю поддержку тасма и масма...
вопрос, как быть с такой командой типа ASSUME CS:xxx или ASSUME FS:NOTHING...



Ранг: 10.6 (новичок)
Активность: 0.010.02
Статус: Участник

Создано: 06 сентября 2007 07:36
· Личное сообщение · #4

Не прога безпантова, имхо, какой резон с етими асемблервоскими вставками когда проше на асме код обернуть в длл и юзать если так уж надо в делфях obj
зы без обид, ето просто мое видение даной темы, может я и ошибаюсь...



Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 06 сентября 2007 09:29
· Личное сообщение · #5

Sn пишет:
Не прога безпантова, имхо, какой резон с етими асемблервоскими вставками когда проше на асме код обернуть в длл

Дык начиная со следующей версии, конверт будет не основной функцией, хочу сделать полноценную ИДЕ, хотя с такими комментами, может остаться в привате, у меня полно знакомых кому данная прога приглянулась, пусть даже сейчас и сырая...




Ранг: 271.6 (наставник), 2thx
Активность: 0.30
Статус: Участник

Создано: 06 сентября 2007 10:01
· Личное сообщение · #6

DIMAIN пишет:
у меня полно знакомых

Звучит как угроза =)
Лично я могу посоветовать тебе:
1) Двигай свою тему.
2) Забей на всяких мудакофф
3) Читай отзывы и старайся фтыкать
4) Смело проси помощь, тебе помогут.

-----
iNTERNATiONAL CoDE CReW





Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 06 сентября 2007 10:02
· Личное сообщение · #7

нех никого слушать, делойте! моя прога тоже 2-3 тока и приглянулась, но ниче, делаю же..

директива assume указывает ассемблеру на текущее значение в сегментном регистре, это нужно, чтобы компилятор правильно вычислял смещения.. это директива масма не генерирует кода. а вот как быть с пацкалем - хз.. например push fs:[0] пораждает acess violant.. надо подумать.

-----
invoke OpenFire




Ранг: 10.6 (новичок)
Активность: 0.010.02
Статус: Участник

Создано: 06 сентября 2007 10:22
· Личное сообщение · #8

DIMAIN пишет:
Дык начиная со следующей версии, конверт будет не основной функцией, хочу сделать полноценную ИДЕ, хотя с такими комментами, может остаться в привате, у меня полно знакомых кому данная прога приглянулась, пусть даже сейчас и сырая...

Если как IDE (сразу вверху незаметил пропустил видать) то другая тема . Я сказал насчет безпантовая того что было до етова ) К тебе ето никакова отношения немогло иметь, если ты только за нее взялся!
Делай конешно, посмотрим че выйдет!



Ранг: 10.6 (новичок)
Активность: 0.010.02
Статус: Участник

Создано: 06 сентября 2007 10:29 · Поправил: Sn
· Личное сообщение · #9

assume указывает адресу сегмент данных (насколько я понимаю)




Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 06 сентября 2007 10:39
· Личное сообщение · #10

assume никакому адресу ничего не указывает и используеццо для всех сегментных регистров..

-----
invoke OpenFire




Ранг: 10.6 (новичок)
Активность: 0.010.02
Статус: Участник

Создано: 06 сентября 2007 10:52
· Личное сообщение · #11

Ice-T, жжешь
asm:
mov edi, 0
assume edi:ptr IMAGE_DOS_HEADER
add edi,[edi].e_lfanew

делфи:
var
PIMAGE_DOS_HEADER: ^IMAGE_DOS_HEADER;
_edi: dword;
beginf
PIMAGE_DOS_HEADER;= Pointer(0);
_edi:= Pointer(dword(PIMAGE_DOS_HEADER)+ dword(PIMAGE_DOS_HEADER^._lfanew));




Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 06 сентября 2007 12:40
· Личное сообщение · #12

сн, нуко на дельфе перепешите-ко:

assume FS:nothing
push FS:[0]
pop (переменная)

-----
invoke OpenFire




Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 06 сентября 2007 20:13 · Поправил: DIMAIN
· Личное сообщение · #13

Ice-T
Вообщето то я пробовал подобное на дельфах как можно догадаться для сех конструкции, взял код кажись от Yoda Crypter'а, убрал строку "assume FS:nothing" и прога скомпилилась и работала, тут вопрос в другом, нужнна ли эта команда паскалю?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 06 сентября 2007 21:32
· Личное сообщение · #14

Если ты до этого запортишь FS или укажешь его в другое место, то скомпилиццо, но работать не будет. Так что в общем случае данная команда нужна везде.



Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 06 сентября 2007 22:05
· Личное сообщение · #15

Archer пишет:
данная команда нужна везде

как ее реализовать в паскале, мож есть замена какя?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 06 сентября 2007 22:09
· Личное сообщение · #16

Есть предположение, что может помочь запись в FS дефолтного значения (3b, вроде, в ольке глянь), но это лишь имхо.




Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 07 сентября 2007 07:05
· Личное сообщение · #17

и то не факт.. предлогаю не париться и передлоть-таке подобные сех кнострукции на истенный пацкаль! try..except..end, try..finaly. всё равно рано или поздно от асма надо буит уходить...

-----
invoke OpenFire




Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 07 сентября 2007 14:49 · Поправил: DIMAIN
· Личное сообщение · #18

Ice-T пишет:
try..except..end, try..finaly

так, придется подключать sysutils... а это увеличение ЕХЕшника что не есть гуд

тут еще одна подлянка с invoke, типа такого:
invoke MessageBoxA, hWin, ADDR Text, ADDR Capt, MB_OK
я набросал обработку этого дела, т.е. получиться как то так:
push MB_OK
push Capt
push Text
push 0
call MessageBoxA

но косяк в том что, не всегда корректно обробатывается,
вопрос, мож этот invoke как то адаптировать под паскаль, чтоб он принимал строку целиком?




Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 07 сентября 2007 22:25 · Поправил: Mavlyudov
· Личное сообщение · #19

DIMAIN
Протестил твою прогу...
Вопрос возник. Как правильно подкеорректировать такой код:

public PROGRAM
PROGRAM proc near
call @__SystemInit$qv ; __SystemInit(void)
push bp
mov bp, sp
xor ax, ax
call @__StackCheck$q4Word ; Stack overflow check (AX)
pop bp
xor ax, ax
call @Halt$q4Word ; Halt(Word)
PROGRAM endp

Это из дизасембленной проги на паскале. Смотрел через IDA.

Подскажи как правильно использовать метку...
А то ошибка вылетает (при попытке затем откомпилить в турбо паскале)
Undefined label in preceding statement part (@__SystemInit$qv).
(Из справки F1: Метка была объявлена и вызвана в операторной
части, но не была определена.)



Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 07 сентября 2007 23:24
· Личное сообщение · #20

Mavlyudov пишет:
Как правильно подкеорректировать такой код

запости листинг целиком (можно в личку) трудно понять код...
Mavlyudov пишет:
PROGRAM proc near

такой код не скомпилится, надо везде PROGRAM заменить на что нить типа MyFunc...




Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 07 сентября 2007 23:33
· Личное сообщение · #21

DIMAIN пишет:
запости листинг целиком (можно в личку) трудно понять код...


у тебя турбо паскаль стоит на компе?
создай программу
begin
end

И откомпилируй. Затем открой exe в IDA.
Вот и будет код.



Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 08 сентября 2007 00:51 · Поправил: DIMAIN
· Личное сообщение · #22

Mavlyudov
нахера тебе здался ТП, он же под дос?
ну да ладно, вот листинг:
Program new;
procedure SystemInit;
begin
end;

procedure StackCheck;
begin
end;

procedure Halt;
begin
end;

begin
asm
call SystemInit
push bp
mov bp, sp
@loc_8:
xor ax, ax
call StackCheck
pop bp
@loc_10:
xor ax, ax
@loc_12:
call Halt
end;
end.

переделай свой под такой вид и все будет хОКей...
компилиться и в ТП и в дельфи...




Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 08 сентября 2007 07:57 · Поправил: Mavlyudov
· Личное сообщение · #23

DIMAIN пишет:
нахера тебе здался ТП, он же под дос?
ну да ладно, вот листинг:

Я таким образом асм учу...

А почему процедуры SystemInit, StackCheck, Halt пустые??
в IDA я смотрел там, например, SystemInit описана..и в ней строчек 20 если не больше.....

Протестирую.



Ранг: 117.1 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 08 сентября 2007 09:25
· Личное сообщение · #24

DIMAIN пишет:
Ice-T пишет:
пацкаль это не скомпелит
в ГНУ-Паскаль мож и не скомпилит, а в дельфях все нормально, на фрипакале и виртуал еще не проверял...


Жжошь чувак, учи матчасть.

MsgBoxCaption : pchar = 'It's the first your program for Win32';

Вот что тебе покажут при компиляции.

';' expected but identifier 's' found

-----
Security through obscurity is just an illusion




Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 08 сентября 2007 14:07 · Поправил: DIMAIN
· Личное сообщение · #25

pushick
все там и так понятно - надо заменить ' на ` и все скомпилит...
эту тему уже опсосали с ног до головы, вспомнил бы еще что год назад постили...
pushick пишет:
Жжошь чувак, учи матчасть.

ужо все давно изучено... иди покури...

Mavlyudov пишет:
А почему процедуры SystemInit, StackCheck, Halt пустые??

да я тебе просто макет показал (убрал лишнее), поэтому и пустые, там не компилило из за недопустимых знаков, которые вставила ИДА... и еще там используются прирывания, ты с этим поакуратней, учись лучше на вин32 прогах...



Ранг: 47.5 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 08 сентября 2007 15:01
· Личное сообщение · #26

DIMAIN пишет:
try..except..end, try..finaly
так, придется подключать sysutils... а это увеличение ЕХЕшника что не есть гуд

Я думаю, что не нужно. Вот это компилируется без проблем:

program Project;
uses
Windows;
begin
try
Writeln('Test');
finally
end;
end.



Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 08 сентября 2007 15:45 · Поправил: DIMAIN
· Личное сообщение · #27

HellStudent пишет:
Я думаю, что не нужно.

ты не думай, а проверь...
program Project;
uses
Windows;
begin
try
asm
int 3
end;
except
end;
end.





Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 08 сентября 2007 21:04
· Личное сообщение · #28

что не есть гуд? увеличение размера? ну извините.... тут уж 2 пути, либо все по пацкалевским правилам (в т.ч. размер exe) либо все на ацм-вставках, что имхо не тру...

-----
invoke OpenFire




Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 08 сентября 2007 21:24
· Личное сообщение · #29

Ice-T пишет:
try..except

это вообще лажа, тем более когда они не нужны...
Ice-T пишет:
тут уж 2 пути

да???, ну если подключать все модули тогда от асм вставок уже никакого толку не будет...




Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 08 сентября 2007 22:09
· Личное сообщение · #30

че лажа? try..except? о_О вы о чем вообще? вы скажите просто, что вам проще переделоть assume на пацкаль, чем сех конструкции выявлять и переделывать... тогда сразу ясно все буит и советовать будем в соответствии с вашеме пожеланияме..

-----
invoke OpenFire





Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 08 сентября 2007 22:42
· Личное сообщение · #31

DIMAIN
можешь тогда остальные 3 функции написать как они будут на для паскаля во вставке асма??
Пробую эту (привожу начало фнкции):
; __SystemInit(void)
@__SystemInit$qv proc far
mov dx, seg dseg
mov ds, dx
mov word_105F8, es
....................
На строке
[bmov dx, seg dseg][/b]
Ошибка вылетает
Invalid symbol reference.
Неверная ссылка на символ
Спвравка:к этому символу нельзя обращаться в операнде ассемблера.


<< . 1 . 2 . 3 . >>
 eXeL@B —› Программирование —› аsm2pаs (testing)
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати