Real Assembler

Тема в разделе "WASM.BEGINNERS", создана пользователем Veter, 16 окт 2007.

  1. Veter

    Veter New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2006
    Сообщения:
    161
    Изучаю masm. Всё вроде неплохо - проще,чем в яву,больше возможностей для творчества, программы работают быстрей, меньше по размеру, и т.д.

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

    Как вы относитесь к идее написать на а. что-то вроде Апи функций, контролы всякие и т.д. - получится стандартная библиотека.
    Программы получатся больше по размеру, но работать будут быстрее наверное.
    Главное - код будет прозрачен.
    Короче, прикольный опен-сурс под форточки будет.
    Можно использовать , на первых порах и стандартные Апи, пока не будут написаны свои - ведь всё будет полностью совместимым.....Но необходимо выполнять условие: внутри а-функций не должно быть Апи.
     
  2. KiNDeR

    KiNDeR New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    258
    Адрес:
    Russia
    это про что? разве лицензия запрещает разрабатывать программы для этой ОС?

    если все это написать получиться wine
    данного добра хватает, хоть и написаны они на Сях...

    по-моему ты не понимаешь что прячется за аббревиатурой API...
     
  3. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    зачем стоить построенный дом? ты думаешь что напишешь функции лучше, чем коллектив разработчиков в Microsfot?
     
  4. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    Ну в принципе это логично. асм в своем чистом виде довольно объемен и написание на нем программ потяжелее чем на С, поэтому ничего не вижу плохого в том что бы писать на С, а на асм дорабатывать и оптимизировать слабые места, обычно так и делают.
     
  5. Veter

    Veter New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2006
    Сообщения:
    161
    СОГЛАСЕН , но дело - совершенно не в этом, а принципе и трудности с написанием или ещё что-то - это совсем другой вопрос. Никто же не удивляется, почему студенты ( и профессионалы - всю жизнь, по 12 часов в день) художественных и музыкальных училищ малют и пиликают на пианине ... Зачем? ведь уже всё нарисовано и вся музыка написана и исполнена, а сделать что-то новое так трудно....
    Отличные мальчишки ( и девчонки наверное) пишут отличные программы . Я вот тоже парочку написал :), но когда задумываюсь, а как же работает та или иная функция - в голову не приходит ни одной мысли ... просто не представляю - не было необходимости знать это.

    Ну и ладно, насильно заставлять не буду-же , метать бисер тоже надо завязывать.... Попробую покопать немного в сторону Солара и Линукса ( где-то промелькнуло - в нём апи функции на ассемблере, передраны с форточек, но до ума их пока ещё не довели - глючат немного...)
     
  6. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    у меня не так много опыта в программировании на асме, но тема очень интересная, сам постаянно задаюсь такими вопросами. Если ты в серьез то готов помочь чем смогу. пиши мне в асю 401166472
     
  7. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    готов посвятить этому дело максимум свободного времени
     
  8. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    Ничего себе а смысл этом какой, если большая часть api это переходники к коду, который вы не напишите в ring3?
    Все алгоритмы программы можно описывать на чем угодно, но если требуется что-то от операционной системы, будте добры использовать предоставленный для этого интерфейс или пишите свою операционную систему.
     
  9. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    А что вы собрались делать? Я так и не понял честно говоря.
     
  10. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    лично я бы не прочь разобраться как функционируют апи функции, их алгаритмы и принципы работы
     
  11. Veter

    Veter New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2006
    Сообщения:
    161
    Всё гораздо сложнее, чем я представлял , но что мешает попробовать начать?
    Простой пример - строковые функции реализуются просто, работают быстрее апи, и на ринг0 не нужно, кажется, выходить.

    А CreateFile, например ? Кто-нибудь может сказать, хотя-бы приблизительно как она работает? Странно, но все известные мне книжки - всего лишь описание использования того, что сделали программисты мелкософта. Может поэтому многие не любят форточки ? ( Комплекс неполноценности на подсознательном уровне.
    Такая же фигня у люмпен - пролетариата, те бухгалтеров,санинспекторов всяких - они ненавидят всех, кто что-то делает, создаёт )
     
  12. KiNDeR

    KiNDeR New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    258
    Адрес:
    Russia
    могу даже сказать где посмотреть можно, в нормальном, удобочитаемом виде - сорцы ReactOS!

    за что не любят это отдельный вопрос, но явно не за это...
     
  13. Veter

    Veter New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2006
    Сообщения:
    161
    Ну вот опять - " Зачем всё это, есть дяди, которые уже всё знают, иди скачай 40 метров кода, написаного неизвестно на чём и неизвестно кем, пару дней поковыряйся в нём и ты будешь знать тоже.... может быть "

    Идея очень проста, никому и ничему не мешает и ничего не требует сверхестественного - " ПОПЫТЫТЬСЯ НАЧАТЬ писать инвокабельную библиотеку аналогов апи-функций на "чистом" ассемблере.

    Зачем это нужно - см. выше...

    Названия функций лучше оставить такие-же, добавлять в конце R, например:

    invoke CreateWindowExR,.... :)

    Не со всеми ф. такой фокус пройдёт, НО ЭТО НЕ ИМЕЕТ ЗНАЧЕНИЯ
     
  14. KiNDeR

    KiNDeR New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    258
    Адрес:
    Russia
    ты хочешь сказать, что напишешь лучше?

    ты просто не видишь что получится в результате - а варианта два: 1 - ты ничего не напишешь, 2 - у тебя получится еще один клон виндов, в обоих случаях ты забьешь на проект...
     
  15. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    KiNDeR
    Не мешай, пусть пишет;)
     
  16. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    Хрм, бессмысленное занятие! Клон виндов не получится - это сверхзадача. Ничего не получится. Ты испишешь несколько тетрадок своими "гениальными" идеями, потом даже накатаешь пару функций, заменяющих какие-то из намеченных АПИ, потом забьешь на это дело. Аналога CreateWindowEx ты вообще НИКОГДА не создашь - потому что для этого надо куда-то в системные таблицы писать инфу о создаваемом окне (хендл, координаты и размеры, признак валидности содержимого, и до шута всего типа ссылки на родительское окно, на структуру с классом, на зарегистрированную процедуру обработки событий...), а ни таблицы (месторасположение), ни их формат не документированы. Я не говорю о переносе всего этого в другую операционку - там придется еще вдобавок И ЕЕ (другую ОС) ПЕРЕПИСЫВАТЬ, потому что тоже сделано неизвестно кем...

    Извиняюсь, а когда под ДОС писали, почему бы аналогично не призывать отказаться от "гнусных, написанных неизвестно кем и вызывающих комплекс неполноценности" int 10h...int 21h??? И все нафиг через порты и прямое обращение к видеопамяти. И 4 месяца на разработку вместо 1 недели. И полная несовместимость при переходе на другую машину - ага, харды появились SATA или SCSI, БИОС, идущая с материнкой, умеет с ними работать, а твоя библиотека ни фига. Чуешь, к чему веду?
     
  17. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Veter

    Напиши хотя бы одну функцию, которая лучше (быстрее) Win32 API. Я однажды написал собственный аллокатор памяти (замена для HeapAlloc()). Простейший! Только для единственного потока. HeapAlloc() - многопотоковый аллокатор. Гордый своим достижением я измерил сколько времени занимает HeapAlloc() против моей "функции". Это был настоящий удар! Только после тщательных разборок (что было весьма интересно) удалось "побить" HeapAlloc() на несколько миллисекунд (пол-миллиона аллоцированных блоков). Нет сомнения, что в "мелко-мягком" сидит целый отдел и вылизывает ассемблер из API до последних тактов. И делается это уже много лет.

    Амбиции у тебя есть и это хорошо, кстати. Но наверное практического результата (библиотеки) не получится. Зато есть возможность познать вещи, которые ещё не познаны - что тоже замечательно.

    К слову, если будешь замерять код - можно использовать QueryPerformanceCounter().
    А можно и простой RDTSC.
     
  18. Veter

    Veter New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2006
    Сообщения:
    161
    Solar OS - RealTime Operating System
    Copyright (c) 2001-2007 Ontanu Bogdan Valentin
    All rights reserved.
    Address: Romania, Bucuresti, Bd. Eroilor Sanitari nr 73B, suite 2
    site: www.oby.ro, email: bogdanontanu@yahoo.com

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    Это написано в каждом файле исходников Солара. Насколько я понял, автора разрешает использовать код , модифицировать его и т.д. Weak engl., может и ошибаюсь...

    Апи-функции даже для окна не очень большие по объёму. Они должны распрекрасно работать в форточках, после доработки конечно...Очень сомнительно, что они будут медленнее стандартных апи.
     
  19. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Я не особо разбираюсь, но могу представить, что на "доработку" какой-нибудь CreateProcess полжизни уйдет.
    Полагаю Вы и ядерные функции тоже переписать хотите (ну а как же: этот код ведь тоже написали в Microsoft)? Т.е. все должно сводиться к in/out? В результате километры Вашего кода будут работать под единственной версией системы, под единственным SP, с единственным вариантом набора обновлений... и забыл упомянуть... с единственной конфигурацией оборудования. И к тому времени, как Вы это осилите для WinXP, например, египетские пирамиды будут казаться не древнее самой WinXP. Так что пользы от этого, кроме того, что Вы досконально познаете устаревшую к тому времени структуру Windows, никакой.
    Идея бредовая... ИМХО, конечно.
     
  20. rubic_

    rubic_ Женя

    Публикаций:
    0
    Регистрация:
    9 июл 2007
    Сообщения:
    121
    Адрес:
    Омск
    как часто сотни "но", останавливают людей, которые могли совершить революцию...