[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]

Ответ в тред 32929. [Назад]
 [ Скрыть форму ]
Имя
Не поднимать тред 
Тема
Сообщение
Капча Капча
Пароль
Файл
Вернуться к
  • Публикация сообщения означает согласие с условиями предоставления сервиса
  • В сообщениях можно использовать разметку wakabamark
  • На данной доске отображаются исходные имена файлов!
  • Разрешенные типы файлов: vector, code, image, video, music, flash, text, archive, pdf
  • Тред перестает подниматься после 500 сообщений.
  • Треды с числом ответов более 100 не могут быть удалены.
  • Старые треды перемещаются в архив после 40 страницы.

No.32929 Ответ
Файл: ss-(2013-07-05-at...
Png, 5.64 KB, 456×59
edit Find source with google Find source with iqdb
ss-(2013-07-05-at-05.37.07).png
Файл: 2000_-_asctrix178...
Gif, 22.68 KB, 640×480
edit Find source with google Find source with iqdb
2000_-_asctrix1780.gif
Файл: qoob_demoscene_mo...
Jpg, 51.51 KB, 500×453
edit Find source with google Find source with iqdb
qoob_demoscene_modeller_02.jpg

Привет, анон.
Совсем недавно я был причислен к слоупокам я узнал о существовании такой вещи как демосцена. Это дало мне толчок для изучения ассемблера. В данный момент я умею только вызывать некоторые системные функции Win32 на FASM, то есть совсем ничего не умею.
Итак, анон, мне нужны понятные уроки для работы с ассемблером, а лучше всего, с графикой на ассемблере, желательно, чтобы они были датированы нашим тысячелетием. Приветствуются советы и напутствия мудрого анона. Может быть стоит заняться чем-нибудь более полезным? Уверен, я не дойду до стадии, когда смогу писать завораживающие интро размером 64Кб, но в любом случае знания не должны пропасть даром.
Подари мне мечту, доброчан.mp3
>> No.32931 Ответ
>>32929
www.democoder.ru
>> No.32932 Ответ
>>32929
Сто лет уже не пишут ничего на асме, может какие-то мелкие участки, но даже и это сомнительно.
Да и конпелятор лучше тебя в асм сконпелит. Так что садись за всякие си лучше.
>> No.32933 Ответ
>>32931
Забавный сайт.
> Следующей вашей задачей будет отыскать картинку, которая вам нравится. Нет, я имею в виду не этих милых японских девочек на вашем хард-диске, а настоящие картины.
>>32932
> Сто лет уже не пишут ничего на асме
Я бы так не сказал. Во-первых, очень часто пишут код для контроллеров именно на асме. Во-вторых, приведу в пример ОС Колибри, написанную на FASM. Да и вообще это just for fun.
> садись за всякие си лучше.
Конечно я осваиваю в данный момент плюсы с OpenGl. Смотрю пока здесь http://www.opengl-tutorial.org
>> No.32934 Ответ
>>32933
Тебе не про плюсы а про няшную >>32932-кун сказал, и я тащем-та его поддерживаю.
От себя могу предложить глянуть низкоуровневые языки для видеокарт. Работа со всякими CUDA и шейдерами через HLSL. Должно получиться интересно и полезно.
>> No.32943 Ответ
>>32929
> интро размером 64Кб
Их на с/плюсах пишут, и даже в таком случае, 64К - это огромная куча свободного места. На асме ты несколько лет писать будешь, чтобы забить их кодом.
>>32932
> Да и конпелятор лучше тебя в асм сконпелит
Это заблуждение. И чем меньше программа, тем сильнее отрыв человека.
>> No.32944 Ответ
>>32943
> > Да и конпелятор лучше тебя в асм сконпелит
> Это заблуждение. И чем меньше программа, тем сильнее отрыв человека.
Наверное, смотря, что за человек. Если он не знает структур данных и алгоритмов, тонкостей оптимизации под кеш, архитектуру процессора, векторизацию, параллельность, сложность алгоритмов, то уж конечно от компилятора толку больше. Всякие там BLAS, собственно компиляторы, которые не с неба падают, эмуляторы архитектуры какой-нибудь используют таки ассемблер. Но местные индусы думают, что это касается только профессоров с западного полушария и только они могут этим заниматься.
>> No.32945 Ответ
>>32944
Лол, ты-то знаток всего, инженер-неиндус. Ну пободайся с последними сишками да порадуй нас профилями.
>> No.32946 Ответ
>>32945
А ты хоть видел ассемблерный код, который генерирует MSVC или, не к ночи будь помянут, gcc? Это же жуть.
>> No.32947 Ответ
>>32946
Я фанател по асмам после з80 и уже на х86 с начала 00-х было видно, что ручное дрочерство уже обставили, и чем больше наворачивают архитектуру, тем больше оно отстает. Сейчас и говорить нечего.
Но посмотреть на чужие потуги я всегда готов, так что дерзай.
>> No.32948 Ответ
>>32945
Нет, я вовсе не знаток, но говорить, что асм вообще никому не нужен, мне кажется, тянет на введения человека в заблуждение. Кое-где нужен же. И я не противник абстракции как некоторые тут.
>> No.32949 Ответ
>>32948
В местах, где он действительно нужен или без него не обойтись, и при нужной квалификации исполнителя он нужен, но это единицы процентов и с развитием всего даже эти единицы сокращаются.
>> No.32951 Ответ
>>32947
> с начала 00-х было видно, что ручное дрочерство уже обставили
И, наверное, поэтому все тайм-критикал куски до сих пор выдрачивают вручную на асме.
> так что дерзай.
Да зачем? Всё сделано до нас.
http://blog.lexa.ru/2012/12/26/opyat_o_sovremennykh_cpu.html
http://blog.lexa.ru/2011/09/01/o_kompilyatorakh_i_protsessorakh.html
http://blog.lexa.ru/2011/08/27/o_legacy_i_formatakh_dannykh.html
Ещё на форуме фасма что-то такое было. Приятного чтения.
>> No.32955 Ответ
>>32951
> все тайм-критикал куски до сих пор выдрачивают вручную на асме.
Примеры доставь, если не сложно. Сейчас все серьезные проекты кроссплатформенны, что практически исключает асмовставки.

Блоги почитаю. 2011-2012 весьма интересьненько, хотя и перегибы в нужную сторону практически неизбежны, думаю.
>> No.32956 Ответ
>>32955
Delphi, юнит System - там ассемблер сплошь и рядом. Правда, равняться на говнокодеров из Borland я б не стал - кромешный и адовый пиздец, который творится в их VCL, выдаёт их квалификацию с головой.
>> No.32957 Ответ
>>32956
Дельфи умер лет десять назад. Я про современные активные проекты.
>> No.32958 Ответ
>>32957
id Tech, например.
>> No.32959 Ответ
>>32957
А мужики-то не знают: http://www.embarcadero.com/ru/products/delphi
>> No.32960 Ответ
>>32958
Да ну, айдишное добро всегда конпилировались под любые холодильники, какой там асм? Да и завяли он лет пять назад, на днях вот директор ушёл, кстати.

>>32959
Иди расскажи мужикам из коммунистичской партии, что коммунизм умер тридцать лет назад.
>> No.32961 Ответ
>>32960
> Иди расскажи мужикам из коммунистичской партии, что коммунизм умер тридцать лет назад.
Иди лучше ты расскажи многочисленным софтварным компаниям, что дельфа мертва, и все написанные на ней программы нужно срочно переписывать на современных языках, а старые версии прекращать поддерживать. Хочешь, я угадаю, куда тебя пошлют?
>> No.32962 Ответ
>>32961
Не переписывают, потому что взять дельфидеда на поддержку нафталина дешевле, чем переписать.
Когда все вымрут, тогда и перепишут.
>> No.32963 Ответ
>>32962
Спорим, ты ни разу не писал ничего сложнее хелловорлдов с объёмом максимум тысяч в пять строк?
> потому что взять дельфидеда на поддержку нафталина дешевле, чем переписать.
Значит, я в свои 24 года тоже стал дельфидедом? Okay.jpg
>> No.32964 Ответ
>>32963
Давай не будем меряться проектами, это слишком по-детски.
> я в свои 24 года тоже стал дельфидедом.
Таки да. Я уже сто лет не видел тз, в котором было бы ДЕЛЬФИ, только поддержка. Да и любой жаба или сишарп индусик захавает твоего дельфи-заказчика с потрохами, ему же без разницы.
>> No.32965 Ответ
>>32964
> Давай не будем меряться проектами, это слишком по-детски.
Значит, ты и в самом деле не представляешь, каково это - переписывать проект объёмом хотя бы в полмиллиона строк компилируемого кода с дельфи на какой-нибудь современный язык (например, C# или C++). С тобой всё ясно, вопросов больше не имею.
>> No.32966 Ответ
>>32965
То есть, попробовали переписать с помощью индусов, которые не справились, поэтому вернули тебя поддерживать нафталин и ты возгордился?
Или ты не смог переписать на что-то более актуальное?
>> No.32967 Ответ
>>32966
Я занимаюсь переписыванием с дельфи на C#, попутно поддерживая старую версию. Объём старого проекта - 700к строк компилируемого кода. Никаких юнит-тестов нет, только методика тестирования для тестеров, покрывающая в лучшем случае процентов 30 функций программы. Процесс переноса идёт уже чуть больше года.
>> No.32968 Ответ
>>32967
Ну а что же ты спорил про дельфидедов тогда, если сам занимаешься уничтожением наследия дельфи?
>> No.32969 Ответ
>>32968
До уничтожения ещё далеко, а ворошить говно приходится до сих пор. Глупо говорить о том, что язык мёртв, если поделиями на нём до сих пор пользуются.
>> No.32970 Ответ
>>32969
Пользуются легаси и поддерживают старые поделки. Нет активных проектов = язык мертв.
Спорить вообще не о чем.
>> No.32971 Ответ
>>32970
А с чего ты взял, что активных проектов нет?
>> No.32972 Ответ
>>32971
С того, что и их нет.
С чего можно взять, что нет проектов на фортране или там фокале?
>> No.32975 Ответ
>>32972
> С чего можно взять, что нет проектов на фортране
Совсем, что ли, обалдел? Фортран используют дял всеких численных расчётов на всяких там супер-компьютерах! Интеловцы продолжают улучшать свой компилятор фортрана. На фортранете у него проектов нет, посмотрите на него.
>> No.32976 Ответ
>>32975
А про фокал чего не рассказал? Такие-то проекты на фокале, судьбу человечества решают.
Что ты как маленький? Умер твой школьнй ололо-паскаль-делфи, щито поделать.
>> No.32977 Ответ
>>32972
У тебя есть чудесная база, в которой записаны все-все проекты, и ты сделал по ней поиск и убедился, что проектов на дельфи нет?
>> No.32978 Ответ
>>32977
Мне позвонил Обама и сказал, что делфи теперь для дедов.
>> No.32979 Ответ
>>32976
Перечитай пост. Паскаль умер, фортран используют для расчётов, про фокал я ничего не знаю. "Мой школьнй ололо-паскаль-делфи" мне не интересен.
>> No.32980 Ответ
>>32979
Суть была не фортране конкретно, а в том, что 90% языков умирают, а живут те, которые актуальны.
Чего было влезать крокодилу на защиту фортрана вообще удивительно.
>> No.32994 Ответ
Файл: error.png
Png, 20.37 KB, 880×184 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
error.png
>>32929
Тред плавно перетекает в срач, а я продолжаю любоваться демками. :3
Моё настроение сейчас может передать Dreamchild от ASD.
За это время было найдено и начато несколько туториалов по C и OpenGL. Пишу в Sublime text 2, компилирую с помощью MinGW, выдает ошибку - пикрелейтед, и это в коде, где указаны лишь инклуды OpenGL и пустая функция main. IDE, где все настроено, использовать не хочу, ибо заебали. Когда-то я должен был задать этот нубский вопрос, ибо он мешает развиваться. А демку я напишу, не скоро, но напишу.
>> No.32997 Ответ
>>32994
Исходник в сту на http://pastebin.com.
>> No.32999 Ответ
>>32997
Да нечего тут показывать-то. http://pastebin.com/Kxp0AcUF Хеадеры лежат на своих местах.
>> No.33017 Ответ
Файл: 2145_131566678777.jpg
Jpg, 802.59 KB, 1818×2188 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
2145_131566678777.jpg
>>32999
А либы ты слинковал? Оно не находит реализацию ф-ий. Потому что их у тебя нет в твоём exe-шнике. Зато они есть в библиотеке GLUT. Линкуй библиотеки. GL и GLUT линкуй. Makefile для этого напиши. Удобнее же будет с Makefile Переходить с Makefile на CMake и прочие потом будешь.

В манах кстати написано как линковать файлы. Если не ошибаюсь это -L опция. Поэтому маны по g++/gcc/make/MinGW лучше читни. Лучше, чем меня слушать.

SDL кстати лучше тебе использовать. Лучше чем GLUT. Ибо он убог этот GLUT. В сравнении с SDL.

А ещё глянь http://steps3d.narod.ru/ Имхо годнота.
Вот ещё. Но это по сугойным 1k/4k ибо туда меньше впихнёшь чем в 64k свои
http://habrahabr.ru/post/134551/
http://habrahabr.ru/post/143766/
>> No.33018 Ответ
Файл: нафталиновый-дед.jpg
Jpg, 203.53 KB, 690×845 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
нафталиновый-дед.jpg
>>33017 >>32999
Не знаю как демосцена чувствует себя сейчас - ведь появилось множество разных архитектур, айфон, айгугл там, андроидос, линукс, но в мою бытность, ни о каких глютах или сдлах и речи идти не могло - пользоваться желательно было только тем, что было в стандартном виндовсе (амиге). И байтик каждый экономили (ну, в 1к и 4к по крайней мере, 64к это уже больше для алгоритмистов и компрессорщиков было) и знали куда можно данных в PE optional header затолкать, и как окошко без CreateWindowClass нарисовать (40-50 байтов экономии было) чтобы и запускалось и место экономилось. Люди, занимавшиеся подобными делами безусловно достойны похвалы за свой талант и усердие.

Потом-то понятное дело популярность пришла, появились не только те, кто байты ювелирными щипчиками перекладывает, но и разного рода организаторы, журналисты, тусовщики. Элита пыталась от них отгородиться писала разгромные статьи в езиносах, но социального процесса это не остановило.
>> No.33019 Ответ
Файл: QUIET-DON-7.jpg
Jpg, 44.04 KB, 640×480 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
QUIET-DON-7.jpg
>>33018
> Люди, занимавшиеся подобными делами безусловно достойны похвалы за свой талант и усердие.
Дед, знаешь, вот никто просто так не возьмется свой опыт передавать, нужно самому добывать знания. Но это - крайне специфичная штука, до которой - как до луны.
В принципе, в данный момент всё равно, куда скатилась демосцена. За себя воюем.
А вообще что-то есть. Конкурсы идут, встречи устраиваются, всё идёт своим чередом.

>>33017
Каюсь, библиотеки не слинковал, думал об этом, но ничего не предпринял.
> SDL кстати лучше тебе использовать. Лучше чем GLUT.
Почему-то ни разу не натыкался на использование SDL. Глут ругали за то что закрытый и старый, но это решалось подключением FreeGLUT.
Спасибо, мил человек. Обмозгую советы и отпишусь в ближайшие несколько дней.
>> No.33022 Ответ
Посмотрел crinkler, интересно. Файл, правда, запускается через раз, но оно может работать на семёрке, при том, что заголовок он насилует даже сильнее чем я. Может встречал кто-нибудь описания, что он с заголовком делает? Я видел только про упаковщик. Дизассемблить очень не хочется.
>> No.33025 Ответ
Файл: megadeath.jpg
Jpg, 104.48 KB, 900×654 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
megadeath.jpg
>>33019
Вот тебе хорошая статейка http://www.labinsk.ru/sevendump/releases/bitl/incube01.zip
Называется Tyler Durden OpenGL tutorial.
>> No.33026 Ответ
>>33025
У него не очень хороший тутор. Сплошное "сделайте так же как и я" посыпаное петросянством. Да и приёмы у него широко известные. Не знаю, тот ли это архив или нет, но там есть папка /bonus/ - единственное, что представляет интерес, но нет никаких объяснений, как это сделано. Если в новый опенжл так уж не хочется лезть, то лучше уж NeHe.
>> No.33027 Ответ
>>33026
> Сплошное "сделайте так же как и я" посыпаное петросянством
Мне как раз и понравилось, что все как раз там по делу и достаточно компактно. А петросянство в погоне за знанием можно и пережить.
>> No.33028 Ответ
Файл: sample-810283e67ae9652db9703d3a730843ca.jpg
Jpg, 391.23 KB, 850×1174 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
sample-810283e67ae9652db9703d3a730843ca.jpg
>>33025
Если это туториал OpenGL на FASM, то я знаю, о чём речь. Но мне он тоже не понравился, как и >>33026 - куну. Тайлер вообще ничего не объясняет. В конце концов я забил на попытки разобраться в том, что он написал и попытался целиком скомпилировать его код. В результате - куча ошибок, которые непонятно как исправить.

>>33026
> Если в новый опенжл так уж не хочется лезть, то лучше уж NeHe.
Мне не хочется изучать устаревшие технологии. Этим NeHe уже все уши проели, но если и изучать OpenGL, то версии 3.3 и выше.
>> No.33041 Ответ
>>33018
> Люди, занимавшиеся подобными делами безусловно достойны похвалы за свой талант и усердие.
Похвала - за пользу, качество и эффективность даётся. За что им похвала?
>> No.33043 Ответ
Файл: mr.-montblanc.jpg
Jpg, 32.21 KB, 460×345 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
mr.-montblanc.jpg
>>33041
> > Люди, занимавшиеся подобными делами безусловно достойны похвалы за свой талант и усердие.
> Похвала - за пользу, качество и эффективность даётся. За что им похвала?
Для ответа на этот вопрос сперва следует понять, что является целью деятельности участников т.н. "демосцены". О промышленном применении результатов их работы, ровно как и о конверсии каких-либо технологий между демосценой и промышленным программированием, разумеется, речи и идти не может. Потому как для промышленного программирования основными показателями будут трудоэффективность и предсказуемость временных и материальных затрат, в то время как для демосцены ценен лишь "эпотажный, идеальный результат любой ценой". Исключением из этого правила может быть разве что отрасль систем защиты программных продуктов от взлома, да индустрия маленьких и очень юрких экзешников.

Сравнение демосцены со спортивным программированием также не имеет под собой каких-либо оснований, прежде всего из-за отсутсвия четких, объективных критериев оценки деморабот. Поэтому для демосцены представляется трудным создание каких-либо автоматизированных систем для проведения конкурсов, какие во множестве есть для любителей спортивного программирования: acm.timus.ru, spoj.pl, project euler и пр.

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

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

Так польза, качество и эффективность демосценерских работ и выражается - в их способности вдохновлять. Если кого-то конкретного они не вдохновляют - у него несть неотчуждаемое право, не признавать ценности демосцены.
>> No.33052 Ответ
>>33043
Ну ты и высрал. На кафедре студентам будешь такие речи толкать.
Демки нужны для того, чтобы показывать их работодателям. И ВСЁ.
>> No.33060 Ответ
>>33052
А жизнь человеку дается для того, чтобы дышать воздухом порядка 40-80 лет. Не прикидывайся дураком, доброчан же.
>> No.33063 Ответ
>>33052
На дваче будешь так разговаривать. Веди себя интеллигентнее.
>> No.33070 Ответ
>>33063
ты мне двач сначала запили
>> No.33071 Ответ
Файл: 3221027.jpg
Jpg, 17.38 KB, 300×225 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
3221027.jpg
Итак, я обещал написать, когда что-то получится.
За это время был освоен Cmake и запущен GLUT. Все работает, теперь можно Творить™.
SDL прикрутить не смог. Использовал документацию и комментарии на их официальном сайте, даже находил темы десятилетней давности, где обсуждалась такая же проблема. Странное чувство. Целых 10 лет и такая же проблема.
>>33043
С Вами я абсолютно согласен. Однако джентльменов стойсамой_доски не остановить.
>> No.33380 Ответ
>>32929
Анончик, разъясни, пожалуйста, как работать с шейдерами OpenGL. Пишем на GLSL. Так вот, я вообще не пойму, что за кучу кода мне представляют и как она должна работать. http://ru.wikibooks.org/wiki/OpenGL_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%[...]ogram
В новом OpenGL без них вообще ничего не нарисуешь. Подкиньте чтива по этому вопросу.
>> No.33408 Ответ
>> No.36996 Ответ
Ну что же вы, давайте писать на ассемблере.
Этот прекрасный код:
.section .data
  .equ  BUFF_LEN, 256
greeting:
  .ascii "С праздником тебя "
  .equ greeting_len, . - greeting
question:
  .ascii "Введи своё имя: "
  .equ question_len, . - question
buff:
  .rep BUFF_LEN
  .byte 1
  .endr
  
.section .text
.globl _start
.type _start,@function
_start:
  pushq %rbp
  movq  %rsp, %rbp
  
  pushq $question_len
  pushq $question
  call write
  subq  $16,%rsp
  
  call read
  
  pushq $greeting_len
  pushq $greeting
  call  write
  subq  $16,%rsp
  
  pushq %rax
  pushq $buff
  call write
  subq  $16,%rsp
  
  movq  $60,%rax
  movq  $0,%rdi
  syscall
  
.type write,@function
write:
  pushq %rbp
  movq  %rsp,%rbp
  
  xorq  %rax,%rax
  inc   %al
  xorq  %rdi,%rdi
  inc   %dl
  
  movq  16(%rsp),%rsi
  movq  24(%rsp),%rdx
  
  syscall
  
  movq  %rbp,%rsp
  popq  %rbp
  
  ret
  
.type read,@function
read:
  pushq %rbp
  movq  %rsp,%rbp
  
  xorq  %rax,%rax
  xorq  %rdi,%rdi
  movq  $buff,%rsi
  movq  $BUFF_LEN,%rdx
  
  syscall
  
  movq  %rbp,%rsp
  popq  %rbp
  
  ret
>> No.36999 Ответ
Файл: 1322615842122.jpg
Jpg, 20.49 KB, 400×400 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1322615842122.jpg
>>36996
> прекрасный код
Какая гадость этот ваш at&t.
>> No.37000 Ответ
>>36996
Это какое-то расширение css?
>> No.37001 Ответ
>>36999
Уж получше вашего intel с обратным расположение источника и приёмника. Вообще маразм.

>>37000
Это просто программка ни к чему не относящаяся.
>> No.37022 Ответ
>>37001
Почему нельзя было сделать так?
rax := rbx
rsp := rsp - 16
>> No.37065 Ответ
>>37022
Потому что это уже не ассемблер будет. Не видно конкретных команд.
>> No.37200 Ответ
>>37065
Первая строка - явный mov. Во второй посложнее, но если переписать как rsp -= 16, то всё очевидно.
Алсо, почитать в тему http://board.flatassembler.net/topic.php?t=14768
>> No.37204 Ответ
>>37022
Так неудобно и не интуитивно буде. Для всех таких вещей няшный придумали же.
> :=
Это ты из паскаля притащил?
>> No.37351 Ответ
>>37204
> Так неудобно и не интуитивно буде.
Привыкнуть. К дебильным мнемоникам мне тоже приходилось привыкать. А так сразу приучатся к нормальной математической нотации.
> Для всех таких вещей няшный придумали же.
Няшный — уже ЯП высокого уровня. А нужен именно нормальный низкоуровневый.
> Это ты из паскаля притащил?
Нет, это способ отличать сравнение, возвращающее bool, от (пере-)присвавания, возвращающего вроде как монаду.
>> No.37361 Ответ
>>37351
> к нормальной математической нотации.
> ассемблер
Что ты понимаешь под "математической нотацией"? Математических описаний пекарни есть две штуки, ни в одном никакого := и в помине нет.
>> No.37362 Ответ
>>37351
> Няшный — уже ЯП высокого уровня.
Как там в шестидесятых?
> возвращающего вроде как монаду
Щито, простите? Монада -- это тайпкласс, если что.
>> No.37374 Ответ
>>37361
> Математических описаний пекарни есть две штуки
Покажи!!!
>>37362
> Как там в шестидесятых?
Вот и выросло поколение, не знающее терминологии.
> Монада -- это тайпкласс, если что.
И что? Я не могу сказать «на дереве растут фрукты», обязательно должен указывать, яблоки это или груши?
>> No.37393 Ответ
Вообще, на асме пишут два типа людей. Первым надо оптимизировать какое-то узкое место (либо сделать что-то, что даже сисечка не может), вторым просто нравится. И тут оказывается, что такая "высокоуровневая" запись становится не нужна. Первым ребятам нужен контроль за байтиками и инструкциями, а конструкции вида eax+=(ebx+4)­*­ecx>>2|edx++, написать которые будет вполне естественным желанием, уже непонятно во что оттранслируются. А вторым нужен асм, иначе они писали бы на ц.
Опять же, проблема не в мнемониках, ибо они просты и понятны, и на деле ежедневно используется всего двадцать, или около того, команд, проблема в "геморройности" написания программ. То есть, например, если тебе надо вывести сообщение об ошибке, то ты сначала скроллишь вверх (или вниз), пишешь там 'szErrorLoadFile db "Error load file",0', потом скроллишь обратно и продолжаешь писать. Это раздражает. Так же, иногда нужно просто быстро что-то набросать, но вместо этого ты начинаешь думать, как вернуть строку из функции и должна ли функция аллочить память, или её стоит туда передать.
>> No.37394 Ответ
>>37374
> Покажи!!!
Нагуглить, что такое машина Тьюринга и лямбда-исчисление сам сможешь? Да, операции присваивания нет ни там, ни тут. А если тем более оторваться от computer science, то с точки зрения математики присваивание -- вообще полная ересь, x = x + 1, ага. Так что с "математической нотацией" у тебя вышел прокол: это не "математическая нотация", а клеймо мёртвого дельфина.
> Вот и выросло поколение, не знающее терминологии.
Не бушуй, дед, с шестидесятых даже терминология уже слегка изменилось. Кроме того,
> The terms high-level and low-level are inherently relative. Some decades ago, the C language, and similar languages, were most often considered "high-level", as it supported concepts such as expression evaluation, parameterised recursive functions, and data types and structures, while assembly language was considered "low-level". Today, many programmers might refer to C as low-level, as it lacks a large runtime-system (no garbage collection, etc.), basically supports only scalar operations, and provides direct memory addressing.
> И что? Я не могу сказать «на дереве растут фрукты», обязательно должен указывать, яблоки это или груши?
Во-первых, в определении монады никакого присваивания тоже нет. Там есть связывание и инъекция, всё. Короче, я не понимаю, зачем ты приплёл сюда это красивое слово. Ну и "возвращать монаду" означает "возвращать тайпкласс". Не знаю, может в dependent-typed языках такое и можно, но мы вроде про ассемблер говорили. Так никто не говорит.
>> No.37429 Ответ
>>37394
> машина Тьюринга
Нет, ты мне описание x86 покажи! А хотя ладно, не надо.
> то с точки зрения математики присваивание
это либо обычное введение новой переменной с shadowing-ом старой, либо переписывание контекста (Г). Вот чтобы его отличать от привычного «let x = …», и придумали такую запись.
> Во-первых, в определении мона
OK, тебя не переспоришь, она возвращает измененное состояние машины (конкретно, переписанный регистр или измененная ячейка памяти).
>> No.38355 Ответ
За неимением треда помощи напишу сюда. Я пишу на NASM и никак не могу понять, как работает вычисление адреса, в том числе lea. Вроде бы как в этих скобочках можно использовать только bx и всякие сегментовые/индексовые регистры. Я пишу:
mov dword [fact + 32 * bx - 32], 1 Это даёт invalid effective address. fact - массив dword, я же в нужном месте размер указал операции? В других случаях он на него и ругался.
>> No.38357 Ответ
>>38355
Я не спец по асму, но кое-что покритикую.

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

Почему ты множишь на 32? Инфа 99%, что перемещение не побитное, а побайтное.

Ну и вообще рекомендую в АСМе писать все функциями. Т.е., эмитировать си-стайл вызовы функций, когда ты пушаешь данные в стек и вызываешь функцию. С ними АСМ становится не таким диким пиздецом, потому что без них тупо не хватает регистров для хранения всей нужной инфы, а с ними можно занимать столько стека, сколько нужно.
>> No.38389 Ответ
>>38355
Я уже точно не помню, но, по-моему, на 32 умножать нельзя. А ещё в выражении могут быть только регистры. А ещё все смещения в байтах. А ещё вычитать не надо.
mov ax, fact
mov dword [ax + bx * 4], 1 ; подразумевая, что в bx индекс элемента
Опять же, я не помню, можно ли тут ax использовать, потому что на 16-битном писал один раз всего.
lea работает точно так же:
lea ax, 0xffff ; поместить в ax число 0xffff
lea ax, [bx * 4] ; взять значение из bx, умножить на 4 и поместить в ax
>> No.38510 Ответ
>>38389
>>38357
Чаю вам, но только одну чашку. Как выяснилось, пользоваться можно только регистрами, но как угодно, умножения, вычитания. Разве что умножать только на степень двойки можно. И да, 32 это у меня размер строки массива, так что всё ок.
Насколько я понял, этот пример с lea==mov некорректен. В первом lea должно быть lea ax, [0xffff].
>> No.38604 Ответ
>>38510
Хех, надо же было так облажаться. Всё-таки моё увлечение высокоуровневым говнецом оставило след.
>> No.38758 Ответ
Есть у кого доки по программингу на первый PlayStation? Ну асм там, периферия и т.п. Не спрашивай зачем оно мне надо. Я и сам не знаю, лол.
>> No.39255 Ответ
Файл: -.png
Png, 19.27 KB, 409×279 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
-.png
$nasm -f elf a.asm -o hello
./hello
bash: ./hello: cannot execute binary file: Ошибка формата выполняемого файла
====================================
Подскажите, пожалуйста, что я могу делать не так? ELF же точно,
> $ uname -a
Linux arch 3.14.4-1-ARCH #1 SMP PREEMPT Tue May 13 16:44:54 CEST 2014 i686 GNU/Linux
> hello: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
>> No.39256 Ответ
>>39255
Подозреваю, что это только объектный файл, теперь надо слинковать.
>> No.42553 Ответ
Файл: 3.png
Png, 17.34 KB, 272×430 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
3.png
>>32929
Пикрилейтед, что я делаю не так? call заносит в стэк CS и IP, уже после того, как в него занесли 1, 2, 3, 4. Однако успешно выйти из процедуры не выходит.
>> No.42630 Ответ
>> No.42631 Ответ
>> No.42824 Ответ
Дайте какую-нибудь задачку, уровня хэловорд + 1.
>> No.42825 Ответ
>>42824
Напиши baremetal helloworld. То бишь на голом железе.
>> No.42827 Ответ
>>42553
Какой формат, досовский exe?
Со стеком ты напортачил. Смысл инструкций push ds / xor ax, ax / push ax тебе понятен?
>> No.42910 Ответ
>>32929
>>38357
Когда писал на ассемблере лабы в вузе то выстроил для себя правила:
1. Писать функциями. Функциональной чистоты можно не придерживаться
2. Не бояться записывать какие-либо переменные в память (по ссылке)
3. Не бояться пользоваться функциями FPU. Операции с действительными числами невозможны в ассемблере без дополнительного ХОРОВОДА
4. Не хранить переменные в регистрах общего назначения ax, bx, cx, dx. В них только временные результаты
5. Не пользоваться конструкциями вида repne cmpsb.
6. Пользоваться вызовами WinAPI, ибо однажды можно доиграться с функциями bios и схватить ePrivilegedInstruction. Да и вообще, нужно ориентироваться на то, чтобы запускать свой код под 32-разрядной Windows
Ставь лойс если ты хотя бы однажды получил ePrivilegedInstruction когда писал что-нибудь на ассемблере
>> No.42954 Ответ
>>37429
Вставлю свои пять копеек. Знание ассемблера, безусловно, довольно полезная вещь. Программист должен более-менее понимать, как работает машина. У меня у самого есть несколько знакомых, программирующих на Haskell и умещающих в голове одновременно и сложную математику и понимание того, как это всё работает на машинном уровне. Эти люди осознают, что для компьютера монады -- это просто числа (а точнее -- поля), и что вся магия их любимого типизированного лямбда-исчисления является просто красивой обёрткой над примитивной работой с регистрами и памятью.
На этом знакомство с ассемблером должно заканчиваться. Программирование -- это не погоня за призрачной скоростью, а проектирование сложных систем. Опытный программист на ассемблере мыслит в тех же категориях, что и опытный программист на нормальных языках, вот только нормальные языки куда лучше выражают концепции из области конструирования ПО, о которых говорили ещё Абельсон и Сассман.
P.S.
Все мои знакомые, занимавшиеся демосценой, сейчас работают в лучшем случае сисадминами.
>> No.42959 Ответ
>>42954
> Все мои знакомые, занимавшиеся демосценой, сейчас работают в лучшем случае сисадминами.
Взял и поделил на ноль всю мотивирующую пасту.
>> No.42963 Ответ
>>42954
>>42959
Зачем вообще этот диванобаян тут нужен? Охуеть просто. Как обычно, одни детские игры и хиханьки-хаханьки на уме.
>> No.42997 Ответ
>>42910
> 1. Писать функциями. Функциональной чистоты можно не придерживаться
Слишком сильно мельчить на функции все же не стоит, а то ОПТИМИЗАЦИИ не будет
> 3. Не бояться пользоваться функциями FPU. Операции с действительными числами невозможны в ассемблере без дополнительного ХОРОВОДА
Да ладно? А как же SSE2? http://www.godevtool.com/TestbugHelp/XMMfpins2.htm
К тому же оно быстрее работает(правда там точность может быть ниже).
> 4. Не хранить переменные в регистрах общего назначения ax, bx, cx, dx. В них только временные результаты
Если писать на ассемблере, в котором этих регистров общего назначения 32 или около того, то хранить вполне можно. Да и если взять x86-64, там уже достаточно много регистров
> 5. Не пользоваться конструкциями вида repne cmpsb.
Это еще почему? Скорость? Если например взять rep movsb, то скорость на современных интел процессорах у него нормальная http://habrahabr.ru/company/intel/blog/133962/
> 6. Пользоваться вызовами WinAPI, ибо однажды можно доиграться с функциями bios и схватить ePrivilegedInstruction. Да и вообще, нужно ориентироваться на то, чтобы запускать свой код под 32-разрядной Windows
Нужно ориентироваться на то, чтобы не писать на ассемблере код, который бы вызывал какие-то API или системные вызовы операционной системы или биоса. А писать только всякую специфическую фигню, которую компилятор C или C++ оптимизирует плохо. Как это например делают в FFmpeg:
https://github.com/FFmpeg/FFmpeg/search?l=gas
https://github.com/FFmpeg/FFmpeg/search?l=nasm
И вызывать этот код из C. Таким образом этот код на ассемблере можно использовать в разных ОС на одной архитектуре.
Есть еще всякая системная ерунда, которая на C тоже не может быть написана(например если надо выставить значение отладочных регистров, запись в и чтение из портов) но ничего этого из ring 3 не задействовать. Но это только если у вас стоит какая-то ОС. А если ОС нет или DOS вместо OS, то вполне можно писать такую фигню на ассемблере, переключать процессор из реального в защищенный (или даже 64-битный) режим итд... Кстати вот есть такая ОС http://www.returninfinity.com/baremetal.html работает только под x64, там все ring 0 работает, к тому же она еще однозадачная(хотя например может на каждое ядро по процессу может запускать) и на ассемблере написана
>> No.43003 Ответ
>>42997
> Нужно ориентироваться на то, чтобы не писать на ассемблере код, который бы вызывал какие-то API или системные вызовы операционной системы или биоса. А писать только всякую специфическую фигню, которую компилятор C или C++ оптимизирует плохо. Как это например делают в FFmpeg:
А как же вирусы?
>> No.43006 Ответ
>>43003
Вирусы вообще не стоит писать
>> No.43007 Ответ
>>43006
А как же компиляторы, эмуляторы, оси, драйвера и т.п.?
>> No.43008 Ответ
>>43006
Почему? Это ведь приличный доход. Хотя ты прав, намного проще писать какой-нибудь локер или троян на С*.
>> No.43010 Ответ
>>43007
> А как же компиляторы
Бессмысленно. Чтобы компилятор генерировал код на ассемблере, писать сам компилятор на ассемблере не нужно.
> эмуляторы
Смотря какие. Целиком писать их на ассемблере смысла нет
> оси
Только машинно-зависимую часть. Остальное лучше на C. Тогда ось будет портабельной
> драйвера
Драйвера в большинстве случаев нормально на C пишутся. Если их на асме писать, можно забыть о работе под другими архитектурами.
Вот под какие-нибудь слабые микроконтроллеры что-то писать на асме это вполне норм
>> No.43011 Ответ
>>43008
Какой может быть доход от написания вируса? Продавать от него антивирус?
>> No.43012 Ответ
>>43011
Лол, сейчас 99% малвари пишется для извлечения дохода.
Вымогательство денег, спам, ддос, воровство паролей от всяких платежных систем, майнин биткоина, всякие инжекты рекламы и редиректов в страницы и прочее.
>> No.43013 Ответ
>>43012
Классический вирус ничем подобным не занимается. Если встраивать в вирус подобный функционал, это уже не вирус будет
>> No.43014 Ответ
>>43013
Ну вот нахуя, блядь, нужно это лексическое значение твоего "классического вируса", а? У тебя, естественно, нет источников вроде учебников или словарей, чтобы доказать, что оно правильное. Как и аргументов в его пользу. Но ты всё равно будешь использовать наименее популярное значение. Ты понимаешь, что всё, чего ты добиваешься, - это исключительно подрыв коммуникации и ничего больше? Ты считаешь, что это умно?
>> No.43015 Ответ
>>43014
Подрыв коммуникаций получается как раз тогда, когда к категории вирусов причисляют всякие криптолокеры, кейлоггеры, червей и троянов. На обычном вирусе, который просто заражает файлы, заработать можно только если продавать к нему антивирус. На вопрос "Что такое компьютерный вирус и чем он по функционалу отличается от троянов, червей и проч?" можно легко найти ответ, воспользовавшись поисковыми системами, например Google, Yandex. Там источников достаточно
>> No.43016 Ответ
>>43015
Ты словоблуд и отклоняешься от сути. Хорошо, я переформулирую ответ - ассемблеры нужны для писания малвари с целью заработать шекели. Всё?
>> No.43017 Ответ
>>43015
Ну вот я и воспользовался. И знаешь что? По википедии вирус - программа которая может воспроизводить свой собственный код. Даже есть определение на машине Тьюринга(Не воспользуюсь её знанием на работе, так хоть тут!). Ну и при чём тут грёбаные файлы? Малварь, знаимающаяся ддосам, может распостраняться через флешки, воспроизводя свой код, так что это вирус. Q.E.D.
> Компьютерный вирус — вид вредоносного программного обеспечения, способного создавать копии самого себя и внедряться в код других программ, системные области памяти, загрузочные секторы, а также распространять свои копии по разнообразным каналам связи с целью нарушения работы программно-аппаратных комплексов, удаления файлов, приведения в негодность структур размещения данных, блокирования работы пользователей или же приведения в негодность аппаратных комплексов компьютера.
Слово "файлы" есть только в словосочетании "удаление файлов"!!!

Где!? Где твоё определение с файлами! Я требую словари, энциклопедии, учебники, научные работы и лекции! Где они, блядь!? Давай их сюда.
>> No.44906 Ответ
Что означают числа в названиях функций MessageBox@16 и ExitProcess@4?
Что означает imp_ в названиях? Где про все это можно прочитать?
>> No.44947 Ответ
>>44906
@16 это число байт, пропихиваемое в стек при вызове функций для передачи аргументов для определенных соглашений вызова. См http://www.agner.org/optimize/calling_conventions.pdf enwiki://X86_calling_conventions enwiki://Name_mangling#C_name_decoration_in_Microsoft_Windows
> In the stdcall and fastcall mangling schemes, the function is encoded as _name@X and @name@X respectively, where X is the number of bytes, in decimal, of the argument(s) in the parameter list (including those passed in registers, for fastcall). In the case of cdecl, the function name is merely prefixed by an underscore.
__imp это import https://stackoverflow.com/questions/11236789/what-is-the-difference-be[...]d-imp
>> No.44948 Ответ
>>44906
> Где про все это можно прочитать?
В интернете об этом инфа есть, надо просто уметь гуглить. Попробуй гуглить на английском. Могу еще понакидать каких-нибудь примеров на асме, и примеров как можно вызвать код на асме из кода на Си используя компилятор mingw-gcc под виндой. Со студиями я не работаю
>> No.44950 Ответ
>>43017
> Где!? Где твоё определение с файлами! Я требую словари, энциклопедии, учебники, научные работы и лекции! Где они, блядь!? Давай их сюда.
> способного создавать копии самого себя и внедряться в код других программ
А как ты предлагаешь внедряться в код других программ, если ФАЙЛОВ нет? Инжектиться в уже работающий процесс, да?
>> No.44951 Ответ
>>44950
Господи, еле вспомнил, о чём я вообще писал тогда, пол-года уже прошло. Ты посмотрел, на что был это ответ? Чувак сказал, что если ПО делает ещё что-то кроме заражения файлов, то это не вирус. На вике написано, что может массу других вещей за одно делать, одновременно самокопируясь. А он сказал, что "классический вирус" только самокопируется и ничего больше, даже заработать на нём нельзя. Да ещё добавил, что определение "классического вируса" есть ну просто везде. Ты прочёл предыдущие посты вообще?
>> No.44952 Ответ
>>44951
Прочитал. Какой-то бесполезный терминологический спор. Классический-неклассический, да какая к черту разница? Вон возьмите например файловые вирусы, объявите что файловые вирусы это классические, и будет вам "классические вирусы это те, которые заражают файлы". Нет никакой общепризнанной классификации вредоносного ПО. Нет общепринятого определения вируса.
Лучше б чем-нибудь полезным занялись
>> No.44953 Ответ
https://blog.kaspersky.ru/klassifikaciya-vredonosnyx-programm/2200/ вот например
> Вирус. Если просто, то это самовоспроизводящийся программный код, который внедряется в установленные программы без согласия пользователя.
Чтобы вирусу внедриться в установленные программы, надо их определенным образом пропатчить. Т.е. минимальный вирус, удовлетворяющий подобному определению, будет обычным таким файловым вирусом, который при запуске просто дописывает себя в какой-нибудь исполняемый файл, изменяя точку входа на свое тело.
>> No.47247 Ответ
Файл: 1487229840689.png
Png, 1056.21 KB, 1920×1200 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1487229840689.png
Здравствуйте, господа. На ассемблере не пишу, но получилась очень ебанутая ситуация, препод уже старый и впадает в маразм. По предмету С++ задал написать программу с ассемблерной вставкой. Шифр Цезаря (+ дешифратор).
https://clintonbale.wordpress.com/2011/11/23/cpp-caesar-shift-using-inline-assembler/ прогу нашел здесь, но она легко гуглится. Буду благодарен тому, кто ее немного переделает, чтобы не было палева.
>> No.47248 Ответ
>>47247
Могу переделать на GCC с at&t синтаксисом ассемблерной вставки, подойдет?
>> No.47249 Ответ
>>47248
Если не сильно затруднит.
>> No.47250 Ответ
>>47248
Если не затруднит.
>> No.47257 Ответ
>>47250
Вот, под линуксом в GCC собирается и работает под 32 бит, в виндах не тестировал.
https://paste.debian.net/hidden/d14e0a7a/
>> No.47258 Ответ
>>47257
Вот этот комментарий убрать можно, он не нужен
// "mov eax, data\n\t"
и еще можешь имена меток поменять на какие-нибудь другие, например вместо done: сделать end: и тому подобное
>> No.47262 Ответ
>>47257
Столько лет, а все никак не могут прикрутить мультилайн для асма без вот этого вот пердолинга с кавычками\newline и отдельных .s-файлов.
>> No.47263 Ответ
>>47262
Это все ерунда на самом деле. Нормальному программисту не составит труда написать примитивнейщий скрипт, который бы на вход принимал код на ассемблере, и приводил его к виду, подходящему для асмовставки, т.е. на каждую строчку чтобы были эти открывающие/закрывающие кавычки и \n\t. Да и наверняка такие скрипты уже кем-то написаны
>> No.47264 Ответ
>>47263
Однострочник на перле или авк.
>> No.47327 Ответ
>>47263
Всё можно, но толку от этого пердолинга? Надо, чтобы gcc собирал микс сразу, а не для каждого файла делать пердолинг. И чтобы читаемость была.
>> No.47333 Ответ
>>47327
Ассемблерные вставки используются сейчас настолько редко, что никого это не волнует
>> No.47904 Ответ
Файл: ass00.PNG
Png, 98.53 KB, 1213×643 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
ass00.PNG
Раз-раз, проверка связи!
Такое дело, даже дела: собрался учить ассемблер, читаю теорию, попытался в практику (пик) – облом. Пишу русские буквы, открываю в Hiew – вместо них хуита. Запускаю этот prax00.com – "Версия этого файла несовместима с используемой версией Windows". DosBox не запускается (потому что Windows 7 x64).
Может кто что-нибудь подскажет?
P.S. Тред почти не читал.

Инфа на всякий случай – www.democoder.ru переехал на demoscene.ru.
>> No.47905 Ответ
>>47904
Пиши сразу hex код, какие русские буквы?
> DosBox не запускается (потому что Windows 7 x64).
С чего бы?
>> No.47906 Ответ
>>47904
Не занимайся такой ерундой, как дос. И не используй виндовс. Используй GNU/Linux, и пиши на ассемблере в нем
>> No.48193 Ответ
Можно заняться системным программированием под DOS с досбокса? Пробовал скопипастить прогу, которая блокирует нажатие определенных клавиш - что-то не робит.
>> No.48208 Ответ
Файл: 05ab9670091e82adc1c63cb464af652c.jpg
Jpg, 353.40 KB, 765×472 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
05ab9670091e82adc1c63cb464af652c.jpg
>>48193
Ты лучше, анон, вздрочни вприсядку. И поебёшься — и попляшешь!
>> No.48213 Ответ
>>48193
> Можно заняться системным программированием под DOS с досбокса?
Можно, но зачем? Я знаю лишь один реальный способ, которым можно заработать на программировании под дос на ассемблере - делать домашку студентам из стран СНГ
>> No.48307 Ответ
>>48193
DOXBox - только для игор. Это не полноценный эмулятор DOS со всеми потрохами, это просто среда для запуска игрушек:

> > DOSBox emulates an Intel x86 PC, complete with sound, graphics, mouse, joystick, modem, etc., necessary for running many old MS-DOS games that simply cannot be run on modern PCs and operating systems, such as Microsoft Windows XP, Windows Vista, Linux and FreeBSD.

> > Q: What is the focus of DOSBox?

> > A: According to its developers, DOSBox is focused on DOS games. Non-gaming DOS applications are not the primary focus of DOSBox, even though most DOS applications might in fact work within DOSBox. The DOSBox project has a policy of not adding features that aren't used by DOS games if they take significant effort to implement, are likely to be a source of bugs or portability problems, and/or impact performance. ... If you want to run serious DOS applications within a DOS emulator, you'd better try dedicated emulators such as vDos and vDosPlus instead, which are designed to run DOS applications rather than games.
>> No.48308 Ответ
>>48307
Добавить к нему TCP/IP и будет полноценная среда для запуска BTrieve.
>> No.48309 Ответ
>>48307
Я точно знаю что на DOSBox сдают лабы студенты, которых заставляют под дос писать всякую хрень на асме т.е. всякие там переключение видеорежима, резиденты и прочее. В DOSBox можно даже Windows 95 запускать при желании
>> No.48313 Ответ
А смысл вообще в ассемблере сейчас?

Со времен WinNT программы работают в максимально изолированном от аппаратного обеспечения режиме ибо правильно: в случае, если пойдет что-то не так, то у ОС будет возможность аварийно отключиться и не допустить повреждения аппаратных ресурсов. Набор функций WinAPI позволяет писать на С/С++ код, который будет взаимодействовать с системой (драйвера пишутся исключительно на С, пользовательский код разрешает С++).

Ассемблер сейчас - чисто академический язык, лабы по Ассемблеру в местном вузе например сочетают с обучением работе в Убунту (решают задачки в fasm, отлаживают в gdb)
>> No.48314 Ответ
>>48313
> А смысл вообще в ассемблере сейчас?

1. Крэкерство
2. Реверсинг
3. Для запатчивания готовых программ без исходников, например создания модов к компьютерным играм, всевозможных читов типа прозрачных стен и автоприцелов во всяких контрстрайках
4. Написание всякой малвари (вирусы, трояны и пр.)
5. Умышленное запутывание кода (в т.ч. в вирусах, в т.ч. в проприетарном софте, дабы усложнить работу тем, кто его будет крякать и реверсить).
6. Анализ кода, порожденного компилятором. Компиляторы часто генерируют неоптимальный код, и проанализировав его, можно улучшить компилятор, чтобы он порождал более эффективный код. Есть еще ситуации, когда компилятор выдает неправильный бинарник на выходе из-за багов в самом компиляторе, такие случаи тоже можно выявить чтением ассемблера.
7. Низкоуровневая оптимизация. Видеокодеки и всякая криптографическая ерунда часто пишется на ассемблере. Можете например исходники FFmpeg посмотреть https://github.com/FFmpeg/FFmpeg/search?l=assembly . А еще библиотеки для длинной арифметики, типа https://gmplib.org/ и всякие там перемножения матриц, майнеры криптовалют на CPU
8. Программирование под микроконтроллеры

думаю, список можно продолжить
>> No.48315 Ответ
>>48314
Да, можно еще вспомнить написание шеллкодов и эксплоитов всяких, написание платформозависимой части операционных систем


Пароль:

[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]