КАК начать использование масм?

Тема в разделе "WASM.BEGINNERS", создана пользователем Stanli, 13 фев 2006.

  1. Stanli

    Stanli New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2006
    Сообщения:
    9
    Адрес:
    Russia
    скачал я масм 8.2,сервиспак, 9-бета,тасм,ресм и всё что можно+кучу теоретического материала

    НО

    неодин пример приведённый для самого начала неработает,везде какието ошибки выводит

    -----

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

    Win32ASM: Минимальное приложение,автар вроде Serrgio / HI-TECH. делал в масм 8.2



    в OBJ переводит,а в ЕХЕ уже нет,пишит типо неможет открыть кернел32.длл ,а фар,блокнот и hiew эту дллку легко откупоривают



    у мя стоит ХП домашний+СП2

    p4 3GHz

    при переводе форматов использовал фару 1,705



    p.s. в поиске ненашол,да и в FAQ нет ответа в чём трабл

    может винду 95 поставить ?
     
  2. Stanli

    Stanli New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2006
    Сообщения:
    9
    Адрес:
    Russia
    LINK : FATAL ERROR LNK1104:cannot open file "kernel32.lib"



    вот точный текст траблы
     
  3. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    fasm еще скачай для полного комплекта :derisive:



    читай туторы
     
  4. Error01

    Error01 New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2005
    Сообщения:
    30
    А ты пути прописал?
     
  5. Stanli

    Stanli New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2006
    Сообщения:
    9
    Адрес:
    Russia
    пути где ?



    воту тут всё номуль



    c:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib minimal.obj



    да и он находит,но открыть неможет



    туториалов для самого начала прочитал почти с десяток,везде траблы возникают

    фасм тоже качал



    разници между языками особой невижу,хоть на какомто начать....
     
  6. Stanli

    Stanli New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2006
    Сообщения:
    9
    Адрес:
    Russia
    отцы,ну помогите

    напишите чё куда надо тыркнуть чтобы заработало

    или через дос совсем надо этим делом заниматься ?

    или винду убировать?



    хотябы напишите сами вы на сервиспаке2 проверяли работоспособность новых версий ?



    а если отключены файлы подкачики,то неможет иззаэтого трабл быть?
     
  7. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Прицепи сюда аттач со своим проектом (файлы .asm, .inc) и батник (если батником компилируешь)
     
  8. Stanli

    Stanli New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2006
    Сообщения:
    9
    Адрес:
    Russia
    если прально понял



    проекта нет.есть тока ASM 1 в 1 как в примере тут





    в фаре удобная командная строка есть,я им делаю в 2 захода

    а чё бат надо делать полюбому?



    тут asm,OBJ который получился и lib,которую прочестьнеможет

    [​IMG] _643845007__minimal.rar
     
  9. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Вот смотри. Это нормально работает. За путями следи.

    Stanli

    а чё бат надо делать полюбому?

    Нет, но это очень удобно, попробуй.



    И ХР не причём, всё там нормально

    [​IMG] 1784753873__proba.rar
     
  10. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Вот тебе ещё пример, сравни как указаны инклюды, либы. Посмотри, что в .bat'е прописано.

    Либы должны лежать в папке \masm32\lib, инклюды соответственно в \masm32\include

    [​IMG] 1249542497__minimal.zip
     
  11. Stanli

    Stanli New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2006
    Сообщения:
    9
    Адрес:
    Russia
    благадарю,трабл действительно был в путях



    у мя масм стоит прям на С в масм32

    когда устанавливал,можнобыло выбрать тока диск,а терь он там прижился...кроме винды там всеравно ничё нет,немешает



    Спасибо огромное за помощь
     
  12. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    asd





    Это будет нормально работать, если переменные среды указаны. У меня например они не указаны, поэтому не работает.

    В таком случае нужно указывать путь к компилятору, линкеру, инклюдам и либам примерно так:
    Код (Text):
    1. \masm32\bin\ml <параметры>
    2. \masm32\bin\Link <параметры>
    3. include       \masm32\include\kernel32.inc
    4. includelib    \masm32\lib\kernel32.lib
     
  13. Stanli

    Stanli New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2006
    Сообщения:
    9
    Адрес:
    Russia
    инклюдами я и неполюзуюсь..пока непользуюсь,я с самым первым примером немог разобраться



    вот пример. здравствуй мир



    DOSSEG

    .MODEL SMALL

    .STACK 100h

    .DATA

    Message DB 'Привет!',13,10,'$'

    Message_Length EQO $ - Message

    .CODE

    mov ax,@Data

    mov dx,ax ; установить регистр DS таким

    ; образом, чтобы он указывал

    mov ah,40h ; функция DOS вывода строки

    ; на устройство

    mov bx,4 ; описатель принтера

    mov cx,Message_Length ; число печатаемых символов

    mov dx,OFFSET Message ; ссылка на "Привет!"

    int 21h ; вывести "Привет!" принтер

    mov ah,4ch ; функция DOS завершения

    ; программы

    int 21h ; завершить программу

    END



    при cоздании obj выдал 4 ошибки

    неподскажите чё тут нетак ??



    [​IMG] 1545940566__proba.asm
     
  14. held1r

    held1r New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2005
    Сообщения:
    29
    Адрес:
    Zaporozhye
    елки метелки, а где ты такой пример нашел? :)



    про зраствуй мир тут почитай: http://www.wasm.ru/article.php?article=1022006



    и в окрестностях тоже много статей хороших и доступных
     
  15. Stanli

    Stanli New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2006
    Сообщения:
    9
    Адрес:
    Russia
    читал там...



    Спасибо огромное за ответы
     
  16. Error01

    Error01 New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2005
    Сообщения:
    30


    Вот глянь такую штуку, недавно доки собирал и вот оно!

    "Самокомпилирующиеся" исходники, мне оч. понравились!


    Код (Text):
    1.  
    2. <font color="red];@echo off
    3. ;goto make</font><!--color-->
    4.  
    5. .....
    6. Здесь текст исходника
    7. .....
    8. <font color="red]
    9. :make
    10. set mdir=D:\masm32\bin\
    11. set name=window
    12.  
    13. %mdir%ml.exe /c /Fl /coff /Cp %name%.bat
    14. if errorlevel 1 goto errasm
    15.  
    16. %mdir%link.exe /subsystem:windows %name%.obj
    17. if errorlevel 1 goto errlink
    18.  
    19. del %name%.lst
    20. del %name%.obj
    21. echo _
    22. echo OK!!!
    23. goto TheEnd
    24.  
    25. :errasm
    26. echo _
    27. echo Assembly Error
    28. goto TheEnd
    29.  
    30. :errlink
    31. echo _
    32. echo Link error
    33.  
    34. :TheEnd
    35. pause>null
    36. del null
    37.  
    38. </font><!--color-->
    39.  


    и есь текстовик обзывается *.bat
     
  17. Error01

    Error01 New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2005
    Сообщения:
    30
    offtop:

    Товарищи как запомнить все это многообразие функций Win32API?
     
  18. held1r

    held1r New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2005
    Сообщения:
    29
    Адрес:
    Zaporozhye
    пользоваться, а там хочешь-нехочешь запомнишь :)



    хотя как по мне, синтакисис и параметры помнить в точности не обязательно, ддя этого есть хелп. знать нужно, что эта ф-ция делает и как примерно пишется
     
  19. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    у меня проще и универсальнее
    Код (Text):
    1. ;@echo off
    2. ;goto make
    3. .486
    4. .model flat, stdcall
    5. option casemap:none
    6.  
    7. include \masm32\include\windows.inc
    8. include \masm32\include\kernel32.inc
    9. includelib kernel32.lib
    10.  
    11.  
    12. .CODE
    13.  
    14. ALIGN DWORD
    15. start:
    16.  
    17.     invoke ExitProcess, 0
    18.  
    19. end start
    20.  
    21. :make
    22. SET PROJECTNAME=test
    23. if exist %PROJECTNAME%.res del %PROJECTNAME%.res
    24. if exist %PROJECTNAME%.obj del %PROJECTNAME%.obj
    25. if exist %PROJECTNAME%.exe del %PROJECTNAME%.exe
    26. if exist *.rc goto rc
    27. \masm32\bin\ml /nologo /c /coff /Cp %PROJECTNAME%.bat
    28. \masm32\bin\link /nologo /MERGE:.rdata=.text /SECTION:.text,ER /SUBSYSTEM:WINDOWS /LIBPATH:\masm32\lib %PROJECTNAME%.obj
    29. goto exit
    30. :rc
    31. \masm32\bin\ml /nologo /c /coff /Cp %PROJECTNAME%.bat
    32. \masm32\bin\rc %PROJECTNAME%.rc
    33. \masm32\bin\link /nologo /MERGE:.rdata=.text /SECTION:.text,ER /SUBSYSTEM:WINDOWS /LIBPATH:\masm32\lib %PROJECTNAME%.obj %PROJECTNAME%.res
    34. del %PROJECTNAME%.res
    35. :exit
    36. del %PROJECTNAME%.obj
    37. echo.
    38. pause
    39. cls
    40.  
     
  20. OlegA11

    OlegA11 New Member

    Публикаций:
    0
    Регистрация:
    12 фев 2006
    Сообщения:
    102
    Товарищи как запомнить все это многообразие функций Win32API?

    MSDN тебе в помошь:) Уходи на рынок и купи диск.