{{notification.text}}

MirGames

Студент
31.10.09 19:10
0
Вот, спрашивается, где сейчас используется сабжевый язык? Мне надо написать курсач, но, вообще, просто интересно, как на нём можно заюзать компоненты ОС? Ну и т.п.
Есть ли игры, целиком написанные на асме? Крупные проги?
#1
31.10.09 19:15
0
Глянь в сторону демосцены, если интересует графика.
#2
31.10.09 19:28
0
А что есть компоненты ОС? WinAPI зиз него юзается точно так же, как и из любых других языков.
Крупные коммерческие игры и проги на асме сейчас не пишут. Раньше - возможно. Асм сейчас в основном используется для весьма специфических задач, вроде ручной оптимизации, очень низкоуровнего кода (вроде загрузчиков ОС), встраиваемых систем (всякие микроконтроллеры вроде AVR и PIC).
Даже демосцена предпочитает высокоуровневые языки. По крайней мере the produkkt - точно (это авторы kkrieger'а и werkkzeug'а).
Пожалуй, нужнее всех знание асма специалистам по реверс-инженерингу :)
#3
Студент
31.10.09 19:40
0
Цитата(Vga @ Сегодня, 15:28)
[snapback]99524[/snapback]
А что есть компоненты ОС?

Да. Именно компоненты. А не просто функции.
#4
31.10.09 19:45
0
на igdc вроде бы была игра на конкурс на асме :)

сам делаю тока вставками, в дельфи, просто из-за того чтобы железно разрулить работу с данными, а не давать волю оптимизатору конвертирующему типы взад-вперед.
#5
31.10.09 19:49
0
Цитата(petyakurochkin @ Сегодня, 18:40)
[snapback]99525[/snapback]
Цитата
А что есть компоненты ОС?
Да. Именно компоненты. А не просто функции.

Цитата
Она: ответь мне, только честно, да или нет, хорошо?
Он: спрашивай
Она: почему мужчины смеются над блондинками?
Он: да
Отредактировано: 31.10.09 19:50
#6
31.10.09 20:12
0
Цитата
на igdc вроде бы была игра на конкурс на асме

Кстати да, впечатлитесь: http://igdc.ru/konkurses/remake.zip (архив 10Мб, см. работу fatality)
#7
31.10.09 20:46
0
DeadMage
Во-во ) Определение и примеры компонентов в студию.
#9
Студент
31.10.09 21:37
0
Хех. Ну и код у товарища :) Ни единого инвока, .IF, .ELSE, .ELSEIF, .ENDIF и т.п. Всё - практически чистый асм, как я посмотрел. Но что остаётся с этим кодом делать? Фапать-шликать?
p.s. хотя, конечно, приятно, что такая игра имеет такие низкие параметры.
#10
31.10.09 21:49
0
Цитата(petyakurochkin @ Сегодня, 20:37)
[snapback]99531[/snapback]
Но что остаётся с этим кодом делать? Фапать-шликать?

Да, именно :) Игра на чистом асме нужна чисто для того чтобы потешить свое ЧСВ. Практический смысл в этом практически отсутствует.
Цитата(petyakurochkin @ Сегодня, 20:20)
[snapback]99530[/snapback]
DirectX сойдёт?

Ты имеешь в виду COM? Ну а в чем проблема? Раскручиваешь указатели пока не доберешься до адреса метода и вызываешь. Насколько я помню, придется сделлать штучки три разыменований (указатель на экземпляр->указатель на VMT->указатель на метод).
#11
Студент
31.10.09 21:53
0
Vga
Перенос на другие платформы у асма, чисто теоретически возможен? Например, на x64-систему?

Цитата(Vga @ Сегодня, 17:49)
[snapback]99532[/snapback]
Ты имеешь в виду COM? Ну а в чем проблема? Раскручиваешь указатели пока не доберешься до адреса метода и вызываешь. Насколько я помню, придется сделлать штучки три разыменований (указатель на экземпляр->указатель на VMT->указатель на метод).

А вот проблема в том, что:
У меня есть указатель на класс. Как мне получить его VMT? Т.е. как я подразумеваю, сам указатель на класс = на самом деле указателю на интерфейс, т.е. "перейдя по ссылке" я попаду в начало VMT. И как узнать, где нужный мне метод? ПОтом я беру указатель на тот метод, видать, после чего делаю ему калл?
Я правильно вижу ситуацию, или нет?
#12
31.10.09 22:00
0
Цитата(petyakurochkin @ Сегодня, 20:53)
[snapback]99533[/snapback]
Перенос на другие платформы у асма, чисто теоретически возможен? Например, на x64-систему?

Угу, полным переписыванием. Ну х86_64 исключение, он с х86 полностью совместим - хотя 64-битных фишек ессно не будет.
Цитата(petyakurochkin @ Сегодня, 20:53)
[snapback]99533[/snapback]
А вот проблема в том, что:

Кури ком на лоу левел :)
Суть примерно такая. Интерфейс ком - указатель на экземпляр. Непосредственно по нему в памяти находится указатель на VMT (ну и данные затем, но ты их формата не знаешь). В вмт ты по нужному смещению (ты же знаешь объявление ком-интерфейса, ага, вот по нему и высчитываешь - ну или юзаешь готовый хедер, где уже все высчитано) берешь указатель на метод, вот его и вызываешь, передав ему указатель на экземпляр (тот самый указатель на интерфейс) и прочие данные.
Все ручками, ага. Ну разве что у M$ в их асме есть какие-то обертки.
#14
Студент
31.10.09 22:51
0
Вопрос:
invoke, struc и т.п. полезные штуки доступны только на масме или на фасмах и т.п. вещах они тоже есть?
#15
31.10.09 23:56
0
Цитата(petyakurochkin @ Сегодня, 21:51)
[snapback]99536[/snapback]
invoke, struc и т.п. полезные штуки

Не тру))
Цитата(Vga @ Сегодня, 20:49)
[snapback]99532[/snapback]
Да, именно Игра на чистом асме нужна чисто для того чтобы потешить свое ЧСВ. Практический смысл в этом практически отсутствует.

А как же софтварная нэкстген графика на нетбуках?)))
#16
Студент
01.11.09 00:54
0
Цитата(DeadMage @ Сегодня, 19:56)
[snapback]99537[/snapback]
А как же софтварная нэкстген графика на нетбуках?)))

Кстати, реально, на сколько проги на асме рвут своих аналогов на C++?
#17
Студент
01.11.09 01:34
0
Хотелось бы узнать насчёт меток. СОздал я метку, в функции, к примеру,
success:
Могу ли я потом во второй функции создать такую метку? Куда прыгну, с помощью jmp?
#18
01.11.09 01:47
0
Pierre Kurochkin
обычно наоборот и по всем параметрам, но не сильно)
#19
Студент
01.11.09 02:40
0
2All
Есть ли какая-нибудь альтернатива #ifndef #define #endif на асме?
#20
01.11.09 03:17
0
в некоторых есть а в некоторых нет, в некоторых частично, тут нужно смотреть каждый отдельно взятый ассемблер, я вообще не гуру но помойму masm самый "высокоуровневый"
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}