Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

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

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 2
На страницу: 1, 2  След. | Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Подводные камни при изучении асемблера и его применение»
Снуч
 941 EGP


Киборг
Рейтинг канала: 1(9)
Репутация: 232
Сообщения: 2696
Откуда: Ракслатенон
Зарегистрирован: 09.08.2005
1. кто изучал серьёзно асемблер. каких камней надо опасаться начинающему (в который раз. ага) изучать сию латынь програмирования?
2. как часто применяется асемблер при написании космосимов, да и прочих игрушек?
3. полезная вещь при доработке виндоуз под себя?

п.с. и , вообще, я правильно хоть канал выбрал для таких вопросов Совсем запутался... ?
    Добавлено: 10:34 31-07-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
1)надо знать хорошо какой-то язык программирования высокого уровня, а асм как то сам прийдет. Правда я никогда не писал на чистом асме, так что..
2)MMX SSE 3DNow - все это можно использовать только на асме (правда есть компилер Intel`овский - он сам переводит на эти инструкции, но лучше самому). Позволяет оптимизировать тугой код на несколько FPS
3)всмысле?

З.Ы. Ну можно еще в ЖК. Но после вчерашнего избиения флудеров там - не советую Ой, не могу!..
_________________
MOV topka, C++
    Добавлено: 11:13 31-07-2006   
Снуч
 941 EGP


Киборг
Рейтинг канала: 1(9)
Репутация: 232
Сообщения: 2696
Откуда: Ракслатенон
Зарегистрирован: 09.08.2005
Jurec :
надо знать хорошо какой-то язык программирования высокого уровня

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

вобщем, гепотетически что-нибудь полезное написать на асме и чтобы работало в винде, неззависимо от версии. просто мне кое-что не нравится в интерфейсе винды, вот я и подумывал это переделать/доделать. или лучше СИ заботать или что-то ещё, на чём там это всё написано, кстати? (хотя всё-равно полезу в я ндексе, но спрошу, мало ли Гы-гы )
Jurec :
Ну можно еще в ЖК. Но после вчерашнего избиения флудеров там - не советую

я так и подумал. Подмигиваю
    Добавлено: 11:26 31-07-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Снуч :
вобщем, гепотетически что-нибудь полезное написать на асме и чтобы работало в винде, неззависимо от версии. просто мне кое-что не нравится в интерфейсе винды, вот я и подумывал это переделать/доделать. или лучше СИ заботать или что-то ещё, на чём там это всё написано, кстати? (хотя всё-равно полезу в я ндексе, но спрошу, мало ли

Можно написать свой explorer хоть на VBasic`е. На асме ничего такого особого написать... хм.. ну дрова, хотя и те пишут часто на высокоуровневых языках.
_________________
MOV topka, C++
    Добавлено: 15:03 31-07-2006   
Снуч
 941 EGP


Киборг
Рейтинг канала: 1(9)
Репутация: 232
Сообщения: 2696
Откуда: Ракслатенон
Зарегистрирован: 09.08.2005
Jurec :
хм.. ну дрова, хотя и те пишут часто на высокоуровневых языках.
мм.. может тогда лучше вирусняками заняться. Подозрение.
    Добавлено: 15:55 31-07-2006   
$Vanger$
 245 EGP


Репутация: 44
Сообщения: 445
Откуда: Минск
Зарегистрирован: 30.08.2002
1)всех подряд. Главная опасность - разувериться в собственных силах Подмигиваю .
2)ассемблер в чистом виде сейчас почти не применяется. Его используют практически всегда для ускорения критических частей кода, да и те часто пишут на C.
3)можно, ибо потроха венды на ассемблере написаны. Реально - нет. Учи лучше мелкософтовскую .NET платформу, если уж так хочешь.
А если прикипел сердцем к асму - попробуй MenuetOS (www.menuetos.org). Вдруг понравится..

Насчёт компилера - Intel C Compiler - очень хорошая и правильная штука. Распространяется как плагин к Eclipse и Visual Studio. Даже получше gcc по части математики будет.
_________________
Head down, wings out, faster than sound
    Добавлено: 21:57 31-07-2006   
Снуч
 941 EGP


Киборг
Рейтинг канала: 1(9)
Репутация: 232
Сообщения: 2696
Откуда: Ракслатенон
Зарегистрирован: 09.08.2005
$Vanger$ :
А если прикипел сердцем к асму - попробуй MenuetOS (www.menuetos.org). Вдруг понравится
идея интересная. надо будет попробовать.
$Vanger$ :
Насчёт компилера - Intel C Compiler - очень хорошая и правильная штука. Распространяется как плагин к Eclipse и Visual Studio. Даже получше gcc по части математики будет.
в Сях и Т.Паскале помню был TASM или что-то вроде того , а GCC это его продвинутый брат типа того?

На всякий случай, ни у кого случаем нету уже проверенных сцылок на данную тему?
    Добавлено: 14:30 02-08-2006   
Pavlon
 80 EGP


Репутация: 15
Сообщения: 107
Откуда: Киев
Зарегистрирован: 18.06.2006
Гы. Вспомнил как в своей первой проге на асме (бэбитайп в текстовом режиме) никак не мог поделить два числа Улыбка
Всего Зубкова перерыл... А разобрался только когда получил официальную документацию от Интел Улыбка

ИМХО, опасайся деления(целочисленного) Ой, не могу!..

А вообще асм - это правельный язык Улыбка
Незаменим если нужна супер скорость + супер маленький размер, хотя последнее нынче некритично.

Ну а если хочешь серьёзно подпилить винду под себя, то тебе ещё понадобиться изучить её потроха, вот тебе и прямая дорога на wasm.ru + есть замечательная книга Рихтера "Windows для профессионалов" (или что-то вроде того, за название не ручаюсь)

Если интересна тема взлома и защиты, почитай Касперского "Философия и техника хакерских атак", очень неплохая штучка Подмигиваю
    Добавлено: 16:09 02-08-2006   
Снуч
 941 EGP


Киборг
Рейтинг канала: 1(9)
Репутация: 232
Сообщения: 2696
Откуда: Ракслатенон
Зарегистрирован: 09.08.2005
вот ведь. кто бы мог подумать. сижу на работе, лёгкое похмелье, лениво читаю вику на английском про х86 платформу и прочее введение, и что самое удивительное .... понимаю. Ух ты!..

за список литературы спасибо. постараюсь найти со временем.
    Добавлено: 12:01 03-08-2006   
$Vanger$
 245 EGP


Репутация: 44
Сообщения: 445
Откуда: Минск
Зарегистрирован: 30.08.2002
Снуч :
в Сях и Т.Паскале помню был TASM или что-то вроде того , а GCC это его продвинутый брат типа того?

Нет. GCC - это GNU C Compiler. Компилятор чисто для С.
_________________
Head down, wings out, faster than sound
    Добавлено: 17:54 06-08-2006   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
хм, ну ващето гцц это гнутая коллекция компайлеров, там те и плюсы и фортран, и есчо бог знает чего Улыбка
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 14:03 07-08-2006   
Снуч
 941 EGP


Киборг
Рейтинг канала: 1(9)
Репутация: 232
Сообщения: 2696
Откуда: Ракслатенон
Зарегистрирован: 09.08.2005
Да, кстати, появился ещё такой вопрос: стоит ли вникать в суть CMOS(и прочих вариаций), RISC, CISC и TTA? то есть стоит ли поднимать знания по радиолабам?
    Добавлено: 09:15 09-08-2006   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
кгхм, если хочешь изучать асм, для каждой из железяк тебе придётся изучать его отдельна Гы-гы
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 13:03 09-08-2006   
Снуч
 941 EGP


Киборг
Рейтинг канала: 1(9)
Репутация: 232
Сообщения: 2696
Откуда: Ракслатенон
Зарегистрирован: 09.08.2005
Sh.Tac. :
для каждой из железяк тебе придётся изучать его отдельна

для каждого процессора, если быть точным. впрочем, думаю остановиться на последних версиях, ну и z80 и х86 - это святое. Гы-гы
    Добавлено: 13:15 09-08-2006   
Pavlon
 80 EGP


Репутация: 15
Сообщения: 107
Откуда: Киев
Зарегистрирован: 18.06.2006
Снуч, учи тот проц, на котором программить будешь. Думаю под пниобразные процы будешь полюбому Подмигиваю
Так вот, поверь, одного защищённого режима тебе хватит на довольно длительный промежуток времени Улыбка Поэтому лучше концентрируйся на чём-то одном.
    Добавлено: 13:32 09-08-2006   
Grebomet
 1466 EGP


Модератор
Рейтинг канала: 2(20)
Репутация: 261
Сообщения: 4787
Откуда: Питербурх
Зарегистрирован: 06.01.2003
Снуч :
1. кто изучал серьёзно асемблер. каких камней надо опасаться начинающему (в который раз. ага) изучать сию латынь програмирования?

1. Макроассемблера мелкософтовского (я серьезно).
У него слишком расхлябанный синтаксис, слишком много допущений и неточностей позволяет. Лучше юзать TASM в режиме ideal - там проверка синтаксиса построже, и программа получается более правильной.
2. Идиотцких книжек по асму.
Надо брать именно учебные книжки, и не из серии "асм за полчаса". Но и не забубенные талмуды. У меня такая... эээ... Автор, кажется, Том Сван, в названии есть "Turbo Assembler", большого формата такая, с непонятным зеленым рисунком на обложке (какая-то размазанная статуя гимнаста, что ли). Весьма толковая книжка, там и примерчики рисования под винду есть.

Снуч :
2. как часто применяется асемблер при написании космосимов, да и прочих игрушек?

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

Снуч :
3. полезная вещь при доработке виндоуз под себя?

Да как и любой инструмент - польза может быть... Хотя на практике пользы никакой.
Гораздо проще написать нужную тебе прикладуху или твикер на С++ или Дельфях, чем куролесить на асме: размер, конечно, будет в разы больше, но ты ведь чай не на 64 килобайтах памяти живешь, и программы не на ленте хранишь?
Писать на асме под винду - все равно, что шить себе платье из самотканой холстины: прикольно, экологично, дешево - но результат не стоит потраченных усилий.

Снуч :
а GCC это его продвинутый брат типа того?

GNU compiler collection.
В большинстве случаев под этим подразумевается компилятор GCC/G++ (бесплатный, на котором ядро линукса собирают). Код генерит неплохой, но есть у него некоторые косячки.

Pavlon :
ИМХО, опасайся деления(целочисленного)

Да все там нормально - просто не надо забывать, что делимое в два раза шире делителя.

Pavlon :
Незаменим если нужна супер скорость + супер маленький размер, хотя последнее нынче некритично.

Насчет суперскорости - это шутка такая.

На самом деле современные компиляторы выдают достаточно быстрый код, вполне себе оптимизированный. Да, по размеру его можно ужать вручную, но при этом скорее всего снизится скорость выполнения.

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

Снуч :
впрочем, думаю остановиться на последних версиях, ну и z80 и х86 - это святое.

Асм для Z80 - ещё куда ни шло (в контроллерах важен размер, да и скорость выполнения ручками вполне можно оптимизировать).
А вот для x86 асм нужен в основном для битхаков всяких, чтобы в вируяяках разбираться и чтобы самому вирусы рисовать. Писать на асме серьезные вещи - баловство, а значит, несерьезное дело. Улыбка

Pavlon :
Так вот, поверь, одного защищённого режима тебе хватит на довольно длительный промежуток времени

А самое интересное, что он нафиг не нужен, этот защищенный режим - достаточно себе просто представлять, что такое плоская модель памяти. Переключать режимы винда тебе не даст, а свою ось писать ты вряд ли будешь. Улыбка
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 14:19 09-08-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Grebomet :
Ассемблерные вставки в критических участках кода - вещь исчезающая (вот в коде библиотек асм имеется, но при разработке игр свои библиотеки пишутся редко).


Я говорил - что MMX SSE 3DNow - можно использовать ТОЛЬКО с помощью асма/ассемблерных вставок (на самом деле еще Интеловский компилет умеет, но это как исключение). И это используется часто. В остальном- действительно, толку мало.
_________________
MOV topka, C++
    Добавлено: 14:38 09-08-2006   
Pavlon
 80 EGP


Репутация: 15
Сообщения: 107
Откуда: Киев
Зарегистрирован: 18.06.2006
Grebomet :
Pavlon :
Незаменим если нужна супер скорость + супер маленький размер, хотя последнее нынче некритично.

Насчет суперскорости - это шутка такая.

На самом деле современные компиляторы выдают достаточно быстрый код, вполне себе оптимизированный. Да, по размеру его можно ужать вручную, но при этом скорее всего снизится скорость выполнения.

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


Ну, вообще ты прав конечно Расстроен Эт раньше легко было комманды по конвеерам ракидать. Но зато, по размеру, имхо, никакой компилер не обгонит. Асм всё-таки асм. А так, конечно, это всё больше и больше баловство. Очень узкая часть осталась для него. Да и то в основном вирусняки, хак и всё что с ними связанно.

Grebomet :

Писать на асме серьезные вещи - баловство, а значит, несерьезное дело. Улыбка


Угу, согласен.

Grebomet :
Pavlon :
Так вот, поверь, одного защищённого режима тебе хватит на довольно длительный промежуток времени

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

Ну почему? Очень нужное знание, для всякого рода хаков. Например, если хочешь сдампить процесс, а никак не получается. Тут-то тебе и поможет знание, к примеру, страничной адресации. Дампим "изнутри" и всё ок. Или наоборот, если нужно какуб-то хитрую защиту сделать. Ребята из Старфорс очень хорошо знают как защищённый режим так и ядро Винды, без этого им мегазащиту не сделать.

Ну а в серьёзных проектах даже не знаю где можно асм использовать. Если ты, конечно, не затеял какую-то системную штуку, типа своей ОС Улыбка Использование в маленьких критических секциях ничего не даст. Такие секции можно и на С написать с оптимизирующим компилером. Если всё прогу спроектировать и написать на асме тогда да, возможно что-то дало бы (причём в основном не защёт самого асма, а защёт "правильного" программирования), но это несерьёзно хотя бы потому, что писать такую программу ты будешь очень долго, а выигрыш если и будет, то мал.

Короче, для простых смертных асм = хак, имхо конечно.
    Добавлено: 14:48 09-08-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Pavlon :
Использование в маленьких критических секциях ничего не даст

Даст. +7 ФПС - когда я переписал системы частиц на асм (И +20 ФПС, когда я переписал на вершинные шейдеры Гы-гы)
_________________
MOV topka, C++
    Добавлено: 14:52 09-08-2006   
Grebomet
 1466 EGP


Модератор
Рейтинг канала: 2(20)
Репутация: 261
Сообщения: 4787
Откуда: Питербурх
Зарегистрирован: 06.01.2003
Jurec :
Я говорил - что MMX SSE 3DNow - можно использовать ТОЛЬКО с помощью асма/ассемблерных вставок

Можно.
Вопрос - где?
Отвечу сразу - в коде, работающем с мультимедией (а это, в основном, графика - в играх-то).
Теперь посмотрим: где в коде правильно спроектированной игры идет работа с графикой? В библиотеке работы с графикой. Улыбка Потому как если размазать этот код по всей игре, модифицировать её код будет практически невозможно.

Pavlon :
Но зато, по размеру, имхо, никакой компилер не обгонит. Асм всё-таки асм.

В современных играх 99% объема поставки - графика, звуки, видеоролики и данные. Оптимизировать код игры по объему с помощью ассемблерных вставок - бесполезно (проще добавить в код 50 килобайт кода декомпрессора и ужать все данные каким-нибудь zip'ом - выигрыш будет измеряться многими мегабайтами).

Pavlon :
Ну почему? Очень нужное знание, для всякого рода хаков. Например, если хочешь сдампить процесс, а никак не получается. Тут-то тебе и поможет знание, к примеру, страничной адресации.

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

Кстати, вспомнил, для чего может понадобиться знание асма: для написания драйверов виндовых.

Pavlon :
Если всё прогу спроектировать и написать на асме тогда да, возможно что-то дало бы (причём в основном не защёт самого асма, а защёт "правильного" программирования)

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

Jurec :
+7 ФПС - когда я переписал системы частиц на асм

А если бы компилятор был "более оптимизирующим", вполне возможно, что ФПС бы не поднялся совсем. Улыбка

Эх, watcom, watcom...
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 15:29 09-08-2006   
Канал Игры Мечты: «Подводные камни при изучении асемблера и его применение»
На страницу: 1, 2  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Желающие пофлудить или перенаправить тему в политику будут поражены модераторским произволом...Палки вешать не бу...Коробочкой накрывать буду...(Samogon)

  » Подводные камни при изучении асемблера и его применение | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18