1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Начало программирования.

Тема в разделе "WASM.BEGINNERS", создана пользователем Heineken, 22 ноя 2008.

  1. Ursus

    Ursus Member

    Публикаций:
    0
    Регистрация:
    15 мар 2006
    Сообщения:
    238
    Адрес:
    Russia
    Тогда уж Intel C++ Compiler.
    Watcom генерит довольно посредственный код.
     
  2. Ursus

    Ursus Member

    Публикаций:
    0
    Регистрация:
    15 мар 2006
    Сообщения:
    238
    Адрес:
    Russia
    Да без проблем. Указатель на объект есть, фактически, указатель на указатель на таблицу виртуальных функций, которая, в свою очередь, есть массив указателей на виртуальные методы...фуух...главное, не запутаться в указателях :) А так - получай и подменяй, сколько влезет.
     
  3. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.091
    Спорите вы тут...

    Все от конкретной реализации зависит.

    Вот к примеру прога на делфи и прога на си с QT:

    Файл qbutton.h
    Q_OBJECT
    Q_ENUMS( ToggleType ToggleState )
    Q_PROPERTY( QString text READ text WRITE setText )
    Q_PROPERTY( QPixmap pixmap READ pixmap WRITE setPixmap )
    Q_PROPERTY( QKeySequence accel READ accel WRITE setAccel )
    Q_PROPERTY( bool toggleButton READ isToggleButton )
    Q_PROPERTY( ToggleType toggleType READ toggleType )
    Q_PROPERTY( bool down READ isDown WRITE setDown DESIGNABLE false )
    Ниче не напоминает?
    Это на C++
    Так что все в руках кодера.

    Только мне кажется что этот топик есть "Про языки программирования: Episode II "?
     
  4. Heineken

    Heineken New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    10
    Прочел все 13 страниц, понял не многое =)
     
  5. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.943
    Ursus
    Я бы не сказал. выход часто плотнее мсвс, просто ключиков надо больше указывать, одного -os недостаточно. Очень мощные прагмы. Линкер - однозначно мощнее. кроме того опенсорс с бсд лицензией + кросс. + тулзов всяких. например конвертер С-h --> asm-inc. А интел - комковый + только на х86.
     
  6. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.943
    Heineken
    да че понимать. народу башню сорвало.

    Берите дельфу - пробуете глядеть сорсы, учить - нравится - ваше.
    Берете С (МСВС) - пробуете глядеть сорсы, учить - нравится - ваше.

    очень рекомендую также
    http://www.inr.ac.ru/~info21/
    http://oberoncore.ru/
     
  7. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Ursus
    Это понятно, а смещение на нужный метод как получить ? В дельфях есть асм-директива VMTOFFSET, а в сях как ?
    PS: Спрашиваю не для прикола, а для общего развития ;)
     
  8. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.091
    Интересно так...

    Если бы вопрос "Что учить" задали на форуме:

    форум Java : Ответ - Учите Java, она популярна;
    форум C/C++ : Ответ - Учите C/C++ - ибо свобода;
    форум Delphi : Ответ - сами знаете какой;
    форум WASM: Ответ - Нее, низачто не угадаете... аж на 14 страниц расписали;
    ДЕФОЛТ: Забудьте все, что вам тут сказали и что писали вы. Посмотрите направо и чуть чуть вверх, подумайте о языках программирования. Вам придет в голову тот язык, который вам надо изучить в первую очередь.
     
  9. Ursus

    Ursus Member

    Публикаций:
    0
    Регистрация:
    15 мар 2006
    Сообщения:
    238
    Адрес:
    Russia
    Указатели на методы идут тупо в том порядке, в каком они идут в объявлении класса. Т.е. в массиве первый указатель (по смещению 0) - это первый виртуальный метод класса, дальше - второй по смещению 4 и т.д. Виртуальные методы дочерних классов добавляются в конец таблицы.
     
  10. beginner

    beginner New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    233
    Ребятки, надо постараться и обогнать тему в WASM.HEAP "Улыбнитесь! :derisive:" с ее 93 страницами. Думаю нам это под силу.
     
  11. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Ursus
    Спасибо за информацию :D
    Но, например, в VCL все контролы наследуются от TObject по нехилой цепочке и в итоге имеют не один десяток виртуальных методов, наверняка и в MFC тоже. Что теперь прикажешь рыться в справках\сорцах и ручками подсчитывать кол-во виртуальных методов ?! Проще уж поиск известного указателя замутить, правда его сначала еще получить нужно через одно место - видимо это и есть "неограниченные возможности" ?! :D
    PS: К сожалению, без прикола не обошлось ;)
    Все же не исключено, что какие-то скрытые возможности в сях есть для всех этих штучек с указателями, просто мс и ко не спешат о них докладывать простым смертным. А в дельфях на мой взгляд справочная инфа более "демократичная", информативная и полезная, хотя до некоторых штучек все равно приходится методом тыка доходить ;)
     
  12. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    мне был интересен сплайсинг метода, который импортируется из длл, соответственно указатель на него должен получаться не анализом таблицы методов, а напрямую из таблицы импорта.
    впрочем у С(++) всегда были проблемы с импортом.
     
  13. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    beginner
    Ну, если Вам лично глубоко плевать на защиту от ошибок с помощью типизации -- дело Ваше.

    Без аналогичного определения для & и | -- бесполезная вещь, потому что ошибки как могли появляться, так и могут.

    Насчёт начала изучения Си на Студии соглашусь. Правда, хелп отнюдь не отличный -- дерьмо дерьмом. Правда, у Борландовских продуктов ещё хуже, потому и используем MSDN. Ну а действительно нормальной документации на Винду не существует, похоже (разве что в виде закрытых мануалов у самих мелкомягких).

    Heineken
    Будет желание и настойчивость -- когда-нибудь поймёшь :)

    _basmp_
    И на IA-64, он же Итаниум.
     
  14. beginner

    beginner New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    233
    SII
    Почему то на асме таких вопросов не возникает, там вообще типизации нет :)
     
  15. Ursus

    Ursus Member

    Публикаций:
    0
    Регистрация:
    15 мар 2006
    Сообщения:
    238
    Адрес:
    Russia
    Ну-ка, ну-ка, с этого места поподробнее :)
    Слова MSDN и msdn.microsoft.com - говорят о чем-нибудь?
     
  16. Ursus

    Ursus Member

    Публикаций:
    0
    Регистрация:
    15 мар 2006
    Сообщения:
    238
    Адрес:
    Russia
    Не поняла я :)
    Тогда вообще никакоих проблем быть не должно было. GetProcAddress() и вперед!
     
  17. T800

    T800 Member

    Публикаций:
    0
    Регистрация:
    7 дек 2006
    Сообщения:
    293
    Адрес:
    Moscow
    На асме ты сам выбираешь между mul/imul, jl/jb, mov/movzx, byte_ptr/word_ptr/dword_ptr и т.п. Поэтому на асме не может быть никакой типизации.
    А на ЯВУ приходится компилятору "объяcнять" как ему следует понимать написанный тобою код. Объясняешь ты ему при помощи типов данных.
     
  18. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    beginner
    На то он и асм. Его задача -- как раз давать полный доступ ко всему. А ЯВУ -- всё ж нечто иное.
     
  19. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    со статическим импортом
     
  20. Ursus

    Ursus Member

    Публикаций:
    0
    Регистрация:
    15 мар 2006
    Сообщения:
    238
    Адрес:
    Russia
    Ничё не понял. Кто такой "статический импорт"? И почему у него проблемы с GetProcAddress ?