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

Вниз

Assembler   Найти похожие ветки 

 
GrayFace ©   (2004-06-21 12:50) [0]

Как посмотреть, во что превратилась процедура, написанная на Дельфи? Где можно найти список основных функций ассемблера?


 
default ©   (2004-06-21 12:55) [1]

от этого люди сходят с ума...
окно CPU
у ассем-ра нет ф-ий есть команды


 
Digitman ©   (2004-06-21 13:03) [2]


> GrayFace ©   (21.06.04 12:50)  
> Как посмотреть, во что превратилась процедура, написанная
> на Дельфи?


1. Дизассемблировать проект
2. Используя встр.отладчик Делфи установить брейк-пойнт на begin процедуры и, "поймав" этот брейк-пойнт в ран-тайм , вызвать IDE-диалог "CPU"


> Где можно найти список основных функций ассемблера?


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

думаю, тебя интересуют мнемоники маш.инструкций, генерируемых компилятором..
сайт корпорации Intel (как "отца" процессоров семейства i80x86) дает ответ на вопрос


 
Anatoly Podgoretsky ©   (2004-06-21 13:21) [3]

GrayFace ©   (21.06.04 12:50)  
У ассемблера нет функций.


 
Igorek ©   (2004-06-21 13:28) [4]

Сорри, а что такое "функция"?


 
GrayFace ©   (2004-06-22 18:59) [5]

Я имею в виду команды(MOV,MUL,CMP).
Digitman ©   (21.06.04 13:03) [2]
Спасибо. Пока что, я не могу найти это. Может, дашь ссылку или инструкцию по премерному местоположению.


 
Mindb0t   (2004-06-22 20:34) [6]

Воспользуйся DeDe. Сходи на protools.cjb.net. Или лучше IDAPro.
Хотя с ним ты замаешься (с ида), если нет опыта - у вкльных прог очень много call"ов.

2Digitman У встроенного в дельфи отладчика плоховатый дизассм.


 
GrayFace ©   (2004-06-23 08:24) [7]

Зато для моей цели отлично подходит. Только нельзя код на Асме скопировать. А чем он еще плох?


 
Digitman ©   (2004-06-23 08:55) [8]


> Mindb0t   (22.06.04 20:34) [6]


> У встроенного в дельфи отладчика плоховатый дизассм


для начинающего вполне сойдет


> GrayFace ©   (22.06.04 18:59) [5]


посмотри на сайте у Анатолия Подгорецкого, кажется, он размещал у себя мануалы от Интела


> нельзя код на Асме скопировать


увы и ах .. и это, кстати, объяснимо - окно CPU показывает не какой-то конкретный фрагмент, а "скользит" по всему адресному пр-ву процесса .. представь себе асм-листинг нескольких гигабайт вирт.памяти !

в принципе можно "сфотографировать" окно CPU в граф.файл, подредактировать его, убрав лишнее, и распознать каким-нить файнридером


> А чем он еще плох?


да ничем он не плох .. для своих целей (встроенная отладка-трассировка основного набора маш.инструкций) вполне хорош и удобен, возможностей хватает, если не принимать во внимание расширенные наборы маш.инструкций (MMX, SSE, 3DNow и пр.)


 
Роман   (2004-06-23 09:02) [9]

У ассемблера есть функции. Ибо нафиг тогда есть команда возврата RET N ???


 
Digitman ©   (2004-06-23 09:16) [10]


> Роман   (23.06.04 09:02) [9]


> У ассемблера есть функции


нет никаких функций в ассемблере
есть мнемоники маш.инструкций, директивы, операторы и макросы


> Ибо нафиг тогда есть команда возврата RET N


это не "команда", а мнемоника маш.инструкции, осуществляющей возврат из вызванной подпрограммы с коррекцией указателя вершины стека на N байт, помещенных туда вызывающей подпрограммой как факт.параметры вызываемой подпрограммы


 
Григорьев Антон ©   (2004-06-23 10:36) [11]


> Только нельзя код на Асме скопировать.


Есть такая вещь - FastExperts. После установки из окна CPU можно копировать.


 
Igorek ©   (2004-06-23 13:33) [12]


> нет никаких функций в ассемблере
> есть мнемоники маш.инструкций, директивы, операторы и макросы

Имхо "function" - это тоже своего рода "мнемоники маш.инструкций".


 
evvcom ©   (2004-06-23 14:19) [13]


> Имхо "function" - это тоже своего рода "мнемоники маш.инструкций"

Это далеко не "мнемоники маш.инструкций". Мнемоника - это символьное представление, понятное человеку. Маш.инструкция - это одна команда процессору (типа считать байт, слово, дв.слово из памяти в регистр, перенести, скопировать то же из одного регистра в другой, сложить, отнять и т.д. различные операнды), т.е. это простейшие команды. Хотя сейчас уже они и не настолько простейшие, как раньше.


 
Digitman ©   (2004-06-23 14:37) [14]


> Igorek ©   (23.06.04 13:33) [12]
> Имхо "function" - это тоже своего рода "мнемоники маш.инструкций".


это лишь твое "Имхо", не более того

есть четкое определение понятию "функция" в языках программирования, им и следует руководствоваться


 
SammIk ©   (2004-06-23 14:44) [15]

Какои-то ерундои занимаетесь.
Функция, не функция........тфу


 
Digitman ©   (2004-06-23 15:00) [16]


> SammIk ©   (23.06.04 14:44) [15]


> Какои-то ерундои занимаетесь


не согласен

без четких определений того или иногго термина/механизма в голове происходит полный бардак ... для движения от простого к сложному необходимо полное и однозначное понимания "простого"


 
GrayFace ©   (2004-06-24 17:10) [17]

>посмотри на сайте у Анатолия Подгорецкого
А адрес?

По поводу определений: чем команда отличается от мнемоники?


 
jack128 ©   (2004-06-24 17:16) [18]


> А адрес?

а в анкету заглянуть? ;-)


 
han_malign ©   (2004-06-24 17:39) [19]

Вот, кстати, класная памятка по основным командам x86 - две страницы A4, но почти все есть http://www.jegerlehner.ch/intel/IntelCodeTable.pdf


 
Digitman ©   (2004-06-24 17:44) [20]


> GrayFace ©   (24.06.04 17:10) [17]
> По поводу определений: чем команда отличается от мнемоники?


для начала определись - если команда, то команда кому ... и в какой момент времени ..


 
VMcL ©   (2004-06-24 17:54) [21]

>>Digitman ©  (23.06.04 08:55) [8]

>возможностей хватает, если не принимать во внимание расширенные наборы маш.инструкций (MMX, SSE, 3DNow и пр.)

Начиная с D6, все эти чудеса понимаются компилятором (в конструкциях asm...end) и корректно отображаются в CPU Window.


 
han_malign ©   (2004-06-24 17:56) [22]

Команда это F20F, а мнемоника у нее CPUID
Если кто не в курсе, то mov EAX,EDX и mov AX,DX - имеют разные опкоды - а мнемоника одна... А REP - вообще не команда, а однобайтовый префикс перед командой, и в mov EAX,FS:[EBX+4] - модификатор селектора FS - тоже является префиксом и находится перед опкодом mov.


 
имя   (2004-06-24 17:57) [23]

Удалено модератором


 
Алекс А   (2004-06-25 06:19) [24]


> Mindb0t   (22.06.04 20:34) [6]
> Воспользуйся DeDe.

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


 
Digitman ©   (2004-06-25 08:14) [25]


> Алекс А   (25.06.04 06:19) [24]



> Можно ли после DeDe


можно... но не нужно


 
Digitman ©   (2004-06-25 08:16) [26]


> VMcL ©   (24.06.04 17:54) [21]


не спорю


 
©   (2004-06-25 09:35) [27]

Сам не пользовался но знаю что есть прога dcu2pas
так вот она из файла dcu читает заголовки описания модуля
и реализации самих функций и процедур и как раз сами
реализации идут в коде asm.


 
Mindb0t   (2004-06-25 10:37) [28]

2Алекс А - плагиат и воровство это плохо. А для своих нужд можно.
А польза одна - упрощение ломания прог на дельфи. Оочень хорошая польза. Тем более исходники dede открыты.


 
Алекс А   (2004-06-26 01:52) [29]


> R ©   (25.06.04 09:35) [27]
> Сам не пользовался но знаю что есть прога dcu2pas

После неё код обратно тоже не компилируется. Выдаёт кучу ошибок.


> Mindb0t   (25.06.04 10:37) [28]
> 2Алекс А - плагиат и воровство это плохо. А для своих нужд
> можно.

Плагиат для Дельфи, в отличие, например от ++Си-- - естественнен. По одному заданию десять программистов могут запросто написать один и тот же код.


> А польза одна - упрощение ломания прог на дельфи. Оочень
> хорошая польза. Тем более исходники dede открыты.

чего-то не видел никогда. А где вы его скачивали ?


 
Алекс А   (2004-06-26 02:40) [30]

Вот удивляюсь, почему до сих пор нет программ которые переводили бы программы с языков низкого уровня на языки высокого уровня ?

Я понимаю, что всякими трюками можно запутать код так, что не разберёшься. Но ведь в большинстве случаев никакие трюки не применяются, просто компилируют и всё. Почему же никто до сих пор не написал программу которая бы восстанавливала код хоть в каком виде ?


 
Германн ©   (2004-06-26 04:07) [31]

2 Алекс А   (26.06.04 02:40) [30]
Скажу так.
Задачи создания компиляторов языков высокого уровня - оплачиваются теми, кто поддерживает разработку этих языков.
А они могут, как правило, оплатить труд работников.
Задачи "обратного порядка" поддерживают лишь те, которые не могут "в должном объеме финансировать ее"!


 
Petr V. Abramov ©   (2004-06-26 15:15) [32]

> Алекс А   (26.06.04 02:40) [30]
 1. Задача в общем случае неразрешимая
 2. Это по большому счету никому не надо - те, кто занимается ломанием, как правило, хорошо знают ассемблер. Чего и Вам желаю


 
GuAV ©   (2004-06-26 15:31) [33]


> han_malign ©   (24.06.04 17:39) [19]
> Вот, кстати, класная памятка по основным командам x86 -
> две страницы A4, но почти все есть http://www.jegerlehner.ch/intel/IntelCodeTable.pdf

Мало документации. Вот что у меня:
ALANG.HLP и QH.EXE из MASM-a
запускаю:
QH.EXE -d alang.hlp alang.contents
QH.EXE -d alang.hlp alang.index


 
Алекс А   (2004-06-27 02:49) [34]


> Petr V. Abramov ©   (26.06.04 15:15) [32]
> 1. Задача в общем случае неразрешимая

А в частных случаях ? Если бы DeDe или Dcu2Pas восстанавливали бы хотя бы часть кода, было бы уже намного проще.


>  2. Это по большому счету никому не надо - те, кто занимается
> ломанием, как правило, хорошо знают ассемблер. Чего и Вам
> желаю

А если Борланд заинтересуется, что там пишут в Майкрософт ? Или если Майкрософт захочет узнать, что там пишут в Борланд ? Я думаю, что у больших фирм наверняка какие нибудь такие программы есть.


 
Andy BitOff ©   (2004-06-27 02:56) [35]

У больших фирм есть соответственно большие люди, которые, "как правило, хорошо знают ассемблер. Чего и Вам желаю" (с)Petr V. Abramov


 
Алекс А   (2004-06-27 07:13) [36]


> Andy BitOff ©   (27.06.04 02:56) [35]
> У больших фирм есть соответственно большие люди, которые,
> "как правило, хорошо знают ассемблер. Чего и Вам желаю" (с)
> Petr V. Abramov

Вы похоже из тех, кто считает, что от повторения слова халва во рту становится слаще.

Тогда почему у Борланда кода на ассемблере в pas-файлах практически нет ?

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


 
GuAV ©   (2004-06-27 08:35) [37]


> Тогда почему у Борланда кода на ассемблере в pas-файлах
> практически нет ?

см. sys*.pas - там есть.


 
GrayFace ©   (2004-06-27 10:18) [38]

Он там там в основном с паскалевсими аналогами.
GuAV, вряд ли в этих Pas файлах есть что-то такое ценное, спирание чего окупило бы затраты на создание Exe2Pas
han_malign, спасибо. Это то, что нужно.

А что такое LEA?


 
VMcL ©   (2004-06-27 23:33) [39]

>>GrayFace ©  (27.06.04 10:18) [38]

>А что такое LEA?

AFAIR, LEA = Load Effective Address


 
Алекс А   (2004-06-28 03:48) [40]


> GuAV ©   (27.06.04 08:35) [37]
>
> > Тогда почему у Борланда кода на ассемблере в pas-файлах
>
> > практически нет ?
>
> см. sys*.pas - там есть.


А вы посмотрите его. Там большая часть - это функции типа :

function GetGOT: Pointer; export;
begin
 asm
       MOV     Result,EBX
 end;
end;

Уж наверно такой код Борланд у Майкрософта не стал бы воровать. :)

Кстати, смогёте эту же функцию написали на Дельфи ?


> GrayFace ©   (27.06.04 10:18) [38]
> вряд ли в этих Pas файлах есть что-то такое ценное, спирание
> чего окупило бы затраты на создание Exe2Pas

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


 
Игорь Шевченко ©   (2004-06-28 10:54) [41]


> А вы посмотрите его. Там большая часть - это функции типа
> :
>
> function GetGOT: Pointer; export;
> begin
>  asm
>        MOV     Result,EBX
>  end;
> end;
> Уж наверно такой код Борланд у Майкрософта не стал бы воровать.
> :)


Вот уж неправда.


 
GrayFace ©   (2004-07-03 09:04) [42]

>То есть вы можете дать оценку окупаемости программы которая ещё не написана и не использовалась ?
Конечно. Но здесь я это не пытаюсь делать. Я всего лишь оцениваю сложность всяких system.pas и т.д.


 
GuAV ©   (2004-07-03 13:21) [43]


> сложность всяких system.pas и т.д.

ИМХО:
В sysutils имхо ничего особо сложного. Процедуры работы со строками - довольно просто, преобразования в строку - тоже, formatbuf сложна только в силу размера и вызова других процедур.
В качестве упражнения: написать formatbuf без asm и без использования str,inttosrt,ect на чистом Обжект Паскале - имхо после этого станет понятно что тут нужен asm. А если не станет, то ещё сравнить скорость выполнения со стандартной.
Что касается system, то посложнее будет. Дело даже уже не в asm"e а в реализации языка в код компилятором - system.pas учитывает особенности компилятора и внутреннюю реализацию классов, вариантов, и т.д., про которые в хелпе не пишут.
И воообще system - это system.

Все это было имхо.



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

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

Наверх




Память: 0.59 MB
Время: 0.025 c
1-1088750818
Stas
2004-07-02 10:46
2004.07.18
Написание сервиса на Делфи-7


1-1089024872
Zabludshiy
2004-07-05 14:54
2004.07.18
Вывести HTML документ без WebBrowser


14-1088593444
Kerk
2004-06-30 15:04
2004.07.18
ENV{ PATH_INFO }


3-1087782709
КлякСа
2004-06-21 05:51
2004.07.18
СУБД & Delphi, клиент-сервер


1-1088747369
ilnarab
2004-07-02 09:49
2004.07.18
SHFileOperation