народ, решил учить ассемблер под win32 ,но какой компилятор выбрать не знаю. WASM ,FASM, TASM32. MASM32. хотя масм мне не нравиться , а тасм под win32 не доделанный всё ровно хочу услышать ваше мнение...
Выбирай MASM32, если под win32 прогать собрался. Огромный набор макросов и стандартных функций имеет, поддерживает макросы вроде .if, .while и т.п. Под WinAPI большое количество примеров прямо с ним в комплекте идет.
Мой друг юзает FASM. Я пока еще не определился. Что бы не создавать новую тему, спрошу здесь. Кто-то юзал VIM для кодинга на асме? Как впечетления? Есть ли полезные плагины? Я сегодня писал скрипт на питоне в VIMe, понравилось.
по поводу среды разработки - использую ASM EDIT. вполне хватает. по поводу ассемблера - выбирай между масмом и фасмом. фасм более специфический что ли. так что для старта я выбрал бы масм(хотя я в свое время выбрал все же фасм ).
Советую masm или fasm. По ним есть много примеров и хороших статей. По masm есть также цикл туториалов от Iczelion'а.
fasm не умеет делать .pdb в отличии от masm'а ну а в качестве редактора Visual Studio просто потому что много удобных хоткеев есть и плюс встроенный отладчик это удобно плюс редактор ресурсов и вообще много всяких удобных плюшек вообще же проект может состоять из нескольких ассемблерных файлов и из нескольких сишных что очень удобно
Для начала проще FASM. Потому что: 1) компиялция и линковка сразу 2) не нужно знать какие lib файлы подключать 3) не надо думать про ключи компияляции 4) синтаксис довольно простой и описывается всё в одном файле. 5) поддержка x64 и linux 6) также поддержка макросов есть. 7) дока тоже более менее норм и даже на русском есть. Для большинства задач хватит FASM. Если потребуется что-то по мощнее то тогда masm встроенный в Visual Studio (и x64 тянет и прочие плюшки озвученные выше)
очет хотелось бы узнать что такое .pdp . Вообще моя Цель для которой я учу асм это переход с ring3 на ring0. [hidden by the moderator] ----------- From Moderator: Высокомерность свою лучше оставить при себе, прочитав в википедии пару умных слов - это еще не повод чтобы понтоваться знаниями.
2 xeonx86, с ASM в ядро лучше вообще не лезть. Проблем много очень будет, тем более при минимальном знании ассемблера. Драйвера под Windows чаще всего пишут на Си с использованием WDK и всё это в Visual Studio. Отладка только с использованием виртуалки. Или если хочешь потерять исходники и перегружать винду каждые пару минут, то можешь и помучаться без виртуалки. Переход c r3 на r0. Главный вопрос - зачем? Сейчас реально ассемблер используется только в очень специфических моментах, которые в обыденной жизни программиста вряд ли встретятся (отладка исключение). В данный момент компиляторы способны построить такой код, который будет работать намного быстрее чем то, что самолично написать на асм'e. т.е. все хитрости и особенности конкретных платформ, а также вычисления оптимальности кода, вручную сделать довольно сложно и чаще всего невозможно.
или если на 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 тогда он прекрасно отпарсит все символы но вообще разумней было бы методом тыка подобрать самый последний компилятор от которого айс прекрасно парсил все символы наверняка можно подобрать что то получше
Лично сам предпочитаю виртуалку + syser. В нем удобство в том, что сам может грузить дрова и сразу на EP кидать, а далее GUI с мышкой и прочими плюшками. И исходники цепляет легко.
slesh я вот чего понять в syser'е не могу когда он загрузит исходники то автоматически переключается на них из окна дизассемблера и не дает никакой возможности дебажить по ассемблерному коду это только у меня так ?
можно вопрос? зачем кодить на асме что-либо? там, конечно, можно делать очень малые по весу лодыри и разную малварь, но полезного ничего не представляю
"special for administrators" во первах никто знаниями не понтовался . Я Это написал чтобы форумчане лучше поняли для чего это мне всё нужно и смогли мне помоч. на счет ядра ничего страного если у менч политит система переустановлю. 3) писал программу для открытия-закрытя привода при компиляции выдаёт ошибку вот видюшку заснял чтобы всё понятно было
если тебе через прямой запрос к драйверу сидюка надо, то привод можно и на пасцале открыть отправив из узермода IRP-запрос: только cx, в котором номер сиюдка, разный на разных тачках(у меня например 4). а если тупо любым способом открыть: