Обьясните идиоту

Тема в разделе "WASM.BEGINNERS", создана пользователем Plague, 28 май 2009.

  1. Plague

    Plague New Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    15
    Ребята, вынужден просить у вас помощи... Так как я уже окончательно задолбался пролшу не обращять внимания на том и не судить обо мне скверно...
    Решил вот я изучить Ассемблер, Купил книжечку "Рудольф Марек - АССЕМБЛЕР на пример. Базовый курс.". Кв Книге довольно не плохо и доступно описаны команды и возможности Ассемблера... Но только вот автор советует пользоватся NFSM'ом, Ну я полез на официальный сайт и выдрал последнюю версию. Но я обнаружил что там одни исходники этого самого NASM'а, и что мне с ними делать? ну это первый вопрос!
    Накачал я также кучу другой литературы, Калашников, Зубков, Юров, кароче всю доступную литературу, но вот проблема, программы которые приводятся в примерах почти всегда не рабочие, или я дурак липо примеры гальмо... Я решил что все дело в компиляторе , перекачал все компилиторы Асма, перепробовал их все, и с большинством не разобрался. Вот например FASM, пообще нифига у меня компилить не хочет, даже самую фигню...
    Спрашивается, какой учебник лучше читать, с нормальными и доступными примерами, и чтобы проги были рабочие, и чтобы было ясно написано - Синтаксис TASM или MASM...
    Разобратся мне одному тяжело, так как никто из знакомы не знает Ассемблера, да я и сам если че надо было, то писал на QBasic.
    Подскажите идиоту, что мне делать, а то вся эта фигня у меня отбивает всякое желание изучать Ассемблер...((((((((((((((((((((((((((((((((

    P.S. Да и еще, вот у Калашникова выдрал пример который оказался рабочим, выводится сообщение Hello World!, но если я его заменяю на сообщение на русском, то выдает иероглифы, причем я копался в интеренете, и нашол пример где сообщение выдается на цветном фоне, но таже самая бодяга, опять теже иероглифы, хотя в оригинале было написано сообщение на русском. Что это за фигня... Мож мне винду перебить не помешает?
     
  2. AndreyMust19

    AndreyMust19 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2008
    Сообщения:
    714
    Plague
    Компилировать, выбрав версию для Windows. Я не знаю NASM но могу предположить что бинарники там должны быть.
    FASM - это особый случай. Там надо весь бинарник надо "вручную" создавать, описывая не только функции и переменные, но и раскладку секций и таблицы импорта. То есть "самая фигня" будет нифигово большая.
    "Юров, 2 том, Ассемблер для вузов", эту книгу все знают. Пристрели меня, если эту книгу нельзя купить (даже у меня в "провинции" она и библиотеке и в магазине есть).
    Должно быть ты ASCII-строку выводишь UNICODE-функцией. Выводи ASCII-строку функцией MessageBoxA, а UNICODE-строку - функцией MessageBoxW. Может в у тебя установлены опции, которые ф-ю MessageBox превращают в MessageBoxW, вместо MessageBoxA. Винду бить не надо, тут исходник виноват.
    А по поводу ассемблера - ты попал куда надо - здесь море статей, документов и исходников на асме всех видов. В смысле примеров - море, а учить язык ты сам будешь.
     
  3. Intelfx

    Intelfx Шаповалов Иван

    Публикаций:
    0
    Регистрация:
    5 июн 2009
    Сообщения:
    2
    Адрес:
    ffff0
    To AndreyMust19
    Насчет иероглифов: у Калашникова проги досовские, там MessageBox ни при чем, там проблема с кодировками. Исходник наверняка сохраняется в блокноте, там utf8. А в досе 866. Решение - либо не писать на русском вообще, либо писать прямо в досе, но это геморой.
     
  4. elestrago

    elestrago New Member

    Публикаций:
    0
    Регистрация:
    25 янв 2009
    Сообщения:
    56
    http://website.assemblercode.com/masm32/m32v10r.zip кликай сюда качай.... устанавливай

    затем запускай qeditor пиши туда

    Код (Text):
    1. .386
    2. .model FLAT, stdcall
    3. option Casemap:none
    4.  
    5. includelib D:\masm32\lib\user32.lib
    6. includelib D:\masm32\lib\kernel32.lib
    7.  
    8. EXTERN MessageBoxA@16:NEAR
    9. EXTERN ExitProcess@4:NEAR
    10.  
    11. .data
    12. text        db "My First MsgBox on ASM",0
    13.  
    14. .code
    15. START:
    16.  
    17.       push      0
    18.       push      0
    19.       push      offset text
    20.       push      0
    21.       call      MessageBoxA@16
    22.  
    23.       push  0
    24.       call      ExitProcess@4
    25. END START
    сохраняй этот файл куда нибуть на жесткий с именем name.asm

    затем открывай вкладку меню в Project > Assemble & Link

    Вуаля прога готова... :) теперь осталось только её запустить, ехе шник появится там же куда ты сохранил файл
     
  5. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    Intelfx, elestrago
    этот топик -- double. Первый топик с этим же названием и тремя страницами ответов сейчас на 2 странице wasm.beginners