· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Новый Asm

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Июл 20, 2004 06:02:14

S_T_A_S_
Такой код, наверное, Дельфя выдаёт
Sprinx C-- посмотрел, интересный язык, но всё-таки слишком высокоуровневый

Я тут одну свою Asm-прогу на С (без CRT, fastcall, оптимизация под Pentium по размеру) перенёс - размер уменьшился вдвое, правда, я немного реорганизовал структуру кода (впрочем, на Asm'е что-то реорганизовать было уже почти невозможно).


Дата: Июл 20, 2004 14:09:43

Loger > „Такой код, наверное, Дельфя выдаёт “

Неа..
MSVC 2003: /Og /Oi /O1 /Os /Oy /Ob1 /Gr /GA /G7 /arch:SSE %)


> „Я тут одну свою Asm-прогу на С перенёс - размер уменьшился вдвое, правда, я немного реорганизовал структуру кода“

Дык, реорганизация структуры кода многое может дать.

Кстати, простой пример уменьшения размера можно получить,
переписав "masm32\ICZTUTES\TUTE03\WIN.ASM" на асме по-нормальному,
Никакой Си компилер не сделает такой маленький код.


Дата: Июл 20, 2004 14:47:21

По моему так про Ассем, как это начал говорить автор темы.
Эх, зла нехватает! Ассем это самый красивый и понятный, когда там меньше высокоуровневой дури!


Дата: Июл 20, 2004 14:47:34

n0p
„А на чистом асме писать окошки - это издевательство над языком и своим мозгом. (Проверял лично :))“
ну это только по началу :)

и ещё -
вот такой код:
xor eax,eax
push eax
push eax
push eax
push dword ptr [esp+10]
push eax
push dword ptr [esp+1C]
inc eax
mov dword ptr [esp+20],eax
inc eax
mov dword ptr [esp+2C],eax


а вот после сяшной "оптимизации":
mov eax, dword ptr [esp+1C]
push 00000000
push 00000000
lea edx, dword ptr [esp+10]
push 00000000
push edx
mov esi, 00000001
push 00000000
push eax
mov [esp+2C], 00000002
mov dword ptr [esp+20], esi

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


Дата: Июл 21, 2004 05:05:06

Люди, включите оптимизацию по размеру


Дата: Июл 21, 2004 15:20:29

Дык в моём примере как раз она и была включена. Так мало того, что код после неё можно легко уменьшить, так он ещё, похоже глючный %)


Дата: Июл 22, 2004 11:49:35

Loger
„ну это только по началу :) “
Ну если 3.5 года ассемблерной практики под вынь называть началом..

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

Всему свое место.

Corpse
„да после получаса работы в отладчике захочется говорить только нецензурщину, причём в больших количествах.“
Вот с этим согласен. НО. ВСЕМУ СВОЕ МЕСТО. Имхо, если прога на сях весит 2кб, а на асме она весит 1кб, я могу только посмеяться. Во-первых: на винте это все-равно 4кб. Во-вторых: в наш век гигабайтов и гигагерцев вылавливать байты из обычной проги нормальному человеку покажется чистым идиотизмом. Люди, вон, уже вири на дельфях пишут (по сообщениям SecurityLab), а вы мне тут какие-то сказки про байты рассказываете.


Дата: Июл 22, 2004 13:07:21

„Имхо, если прога на сях весит 2кб, а на асме она весит 1кб, я могу только посмеяться.“
а если на сях со всеми оптимизациями около 300, а на асме - 100 (на сях ресурсы весять около 50 кб, на асме около 65 кб)? Делают почти одно и тоже. Не, вру, на асме побольше функционала раза в потора...


Дата: Июл 22, 2004 17:30:59

masquer
на сях ресурсы весять около 50 кб, на асме около 65 кб
Это как?


Дата: Июл 22, 2004 17:36:50

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


Дата: Июл 22, 2004 18:07:58

в наш век гигабайтов и гигагерцев вылавливать байты из обычной проги нормальному человеку покажется чистым идиотизмом

полностью согласен

Люди, вон, уже вири на дельфях пишут

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

писАть сложные алгоритмические программы на асме - это полный идиотизм (мазохизм уж точно), взять теже нейросети...
а так все просто - пишется на HLL и компилируется в obj, или просто дампится и вставляется куда надо в бинарном виде.
примеров - масса, взять хотя бы экзамплы от z0mbie.

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

для сложных случаев (вызовы апи, внешних функций) я написал такую хрень - типа дизассемблер, который разбирает на атомы нужную функцию, потом навешивает на нее (или пачку функций) типа загрузчика. вообщем такой мини-протектор получился :)
и все тип-топ - пишешь на HLL, потом вставляешь куда надо, а геморрою - на порядки меньше, чем писАть тоже самое на чистом асме.


Дата: Июл 22, 2004 18:17:38

„сложные алгоритмические программы на асме - это полный идиотизм (мазохизм уж точно), взять теже нейросети...“
с нейросетями как-то не работал, но мне кажется, что тут все от самой задачи зависит и опыта.


Дата: Июл 22, 2004 20:01:26

А кто компилил проги с Free Pascal Compiler? Я решил попробовать, скачал FPC, поставил скомпилил один из примеров - под 200 кб. Отключил все проверки, поставил максимальную оптимизацию (по размеру) - всё равно столько же. Загрузил в IDA - она насчитала под 2000 строк со всякими именами переменных, функций, типов. Это у меня руки кривые или он всегда пихает в EXE этот мусор?


Дата: Июл 22, 2004 20:28:04

Max
> я вообще не понимаю, почему у людей такое отношение у делфям :)
замечательный язык, замечательная среда...


Ты это серьёзно?
Асмовому программисту лучше не суваться с дебаггером в прогу написанную на Delphi - это шок, например она может положить значение из eax в переменную и тут же опять достать его в eax, ужассссссс.

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.059