Assembler

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by xeonx86, 15 May 2012.

  1. xeonx86

    xeonx86 New Member

    Joined:
    6 May 2012
    Messages:
    43
    Likes Received:
    1
    Reputations:
    0
    народ, решил учить ассемблер под win32 ,но какой компилятор выбрать не знаю. WASM ,FASM, TASM32. MASM32. хотя масм мне не нравиться , а тасм под win32 не доделанный всё ровно хочу услышать ваше мнение... :)
     
    1 person likes this.
  2. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    По MASM32 доков хватает, самый актуальный под win32.
    За 20 лет-то? Это пять :)
     
  3. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Выбирай MASM32, если под win32 прогать собрался. Огромный набор макросов и стандартных функций имеет, поддерживает макросы вроде .if, .while и т.п. Под WinAPI большое количество примеров прямо с ним в комплекте идет.
     
  4. xeonx86

    xeonx86 New Member

    Joined:
    6 May 2012
    Messages:
    43
    Likes Received:
    1
    Reputations:
    0
    у меня не компилет ......

    и ещё . Какую программу редактор посоветуете
     
    #4 xeonx86, 15 May 2012
    Last edited by a moderator: 17 May 2012
  5. Jakeroid

    Jakeroid Member

    Joined:
    9 May 2009
    Messages:
    199
    Likes Received:
    12
    Reputations:
    1
    Мой друг юзает FASM. Я пока еще не определился.

    Что бы не создавать новую тему, спрошу здесь. Кто-то юзал VIM для кодинга на асме? Как впечетления? Есть ли полезные плагины? Я сегодня писал скрипт на питоне в VIMe, понравилось.
     
  6. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    по поводу среды разработки - использую ASM EDIT. вполне хватает. по поводу ассемблера - выбирай между масмом и фасмом. фасм более специфический что ли. так что для старта я выбрал бы масм(хотя я в свое время выбрал все же фасм :D).
     
  7. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
  8. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    fasm не умеет делать .pdb в отличии от masm'а
    ну а в качестве редактора Visual Studio просто
    потому что много удобных хоткеев есть и плюс
    встроенный отладчик это удобно плюс редактор
    ресурсов и вообще много всяких удобных плюшек
    вообще же проект может состоять из нескольких
    ассемблерных файлов и из нескольких сишных что
    очень удобно
     
  9. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Для начала проще FASM. Потому что:
    1) компиялция и линковка сразу
    2) не нужно знать какие lib файлы подключать
    3) не надо думать про ключи компияляции
    4) синтаксис довольно простой и описывается всё в одном файле.
    5) поддержка x64 и linux
    6) также поддержка макросов есть.
    7) дока тоже более менее норм и даже на русском есть.

    Для большинства задач хватит FASM. Если потребуется что-то по мощнее то тогда masm встроенный в Visual Studio (и x64 тянет и прочие плюшки озвученные выше)
     
  10. xeonx86

    xeonx86 New Member

    Joined:
    6 May 2012
    Messages:
    43
    Likes Received:
    1
    Reputations:
    0
    очет хотелось бы узнать что такое .pdp
    .
    Вообще моя Цель для которой я учу асм это переход с ring3 на ring0. [hidden by the moderator]
    -----------
    From Moderator: Высокомерность свою лучше оставить при себе, прочитав в википедии пару умных слов - это еще не повод чтобы понтоваться знаниями.
     
    #10 xeonx86, 16 May 2012
    Last edited by a moderator: 17 May 2012
  11. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 xeonx86, с ASM в ядро лучше вообще не лезть. Проблем много очень будет, тем более при минимальном знании ассемблера.
    Драйвера под Windows чаще всего пишут на Си с использованием WDK и всё это в Visual Studio. Отладка только с использованием виртуалки. Или если хочешь потерять исходники и перегружать винду каждые пару минут, то можешь и помучаться без виртуалки.

    Переход c r3 на r0. Главный вопрос - зачем?

    Сейчас реально ассемблер используется только в очень специфических моментах, которые в обыденной жизни программиста вряд ли встретятся (отладка исключение). В данный момент компиляторы способны построить такой код, который будет работать намного быстрее чем то, что самолично написать на асм'e.
    т.е. все хитрости и особенности конкретных платформ, а также вычисления оптимальности кода, вручную сделать довольно сложно и чаще всего невозможно.
     
  12. Jakeroid

    Jakeroid Member

    Joined:
    9 May 2009
    Messages:
    199
    Likes Received:
    12
    Reputations:
    1
    Хм, значит, что бы писать драйвера на Си, можно и не знать ASM?
     
  13. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    или если на xp sp2 то ставь softice версии 4.3.2 загугли
    "SICE_4321_LiTE.zip"
    MD5 (128 bit)
    E75F72D6A57538E7BB8E8E926F5D454A
    или вот прямой линк
    https://rapidshare.com/#!download|520p8|191458352|SICE_4321_LiTE.zip|6863|R~B745FF4FA99ECE9446E5A4DF0FD1D5E6|0|0

    получиш отладку прямо по исходнику без второй
    машины важно проекты размещать в корне диска "c:" иначе айс
    не находит исходники

    система не синий экран будет выдавать а будет всплывать айс
    например на такой код

    Code:
    xor eax, eax
    mov [eax], eax
    
    после всплытия просто nop'иш эти инструкции
    и запускаеш драйвер дальше и никакого бсода
    тоесть в многих случаях в синьку можно и не
    падать если не убиты какие то внутренние
    структуры и не нарушена критически важная
    логика


    важное замечание если компилить драйвера новыми компиляторами
    то айс не до конца парсит отладочную информацию работать то можно
    основная часть символов загружена но не все

    поэтому для айса лучше компилить драйвера старым компилятором из
    VC++ 6.0 тогда он прекрасно отпарсит все символы но вообще разумней было бы
    методом тыка подобрать самый последний компилятор от которого айс прекрасно
    парсил все символы наверняка можно подобрать что то получше
     
    #13 greki_hoy, 17 May 2012
    Last edited: 17 May 2012
  14. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Лично сам предпочитаю виртуалку + syser. В нем удобство в том, что сам может грузить дрова и сразу на EP кидать, а далее GUI с мышкой и прочими плюшками. И исходники цепляет легко.
     
  15. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    slesh

    я вот чего понять в syser'е не могу когда он загрузит исходники то автоматически переключается на них из окна дизассемблера и не дает никакой возможности дебажить по ассемблерному коду это только у меня так ?
     
  16. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Предпочитаю виртуалку и WinDbg.

    В тред призывается sn0w.
     
    _________________________
  17. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    можно вопрос? зачем кодить на асме что-либо?
    там, конечно, можно делать очень малые по весу лодыри и разную малварь, но полезного ничего не представляю :)
     
  18. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Ну знаешь, с примыми руками, можно и на Си накодить ничем не уступающий по размеру ассемблеру кода.
     
  19. xeonx86

    xeonx86 New Member

    Joined:
    6 May 2012
    Messages:
    43
    Likes Received:
    1
    Reputations:
    0
    "special for administrators" во первах никто знаниями не понтовался . Я Это написал чтобы форумчане лучше поняли для чего это мне всё нужно и смогли мне помоч.
    на счет ядра ничего страного если у менч политит система переустановлю.
    3) писал программу для открытия-закрытя привода при компиляции выдаёт ошибку вот видюшку заснял чтобы всё понятно было
     
  20. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    если тебе через прямой запрос к драйверу сидюка надо, то привод можно и на пасцале открыть отправив из узермода IRP-запрос:
    только cx, в котором номер сиюдка, разный на разных тачках(у меня например 4).
    а если тупо любым способом открыть: