NASM. Где взять inc, lib и исходники под вин32?

Тема в разделе "WASM.BEGINNERS", создана пользователем jershell, 1 окт 2009.

  1. jershell

    jershell New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2009
    Сообщения:
    18
    Скачал с офф сайта и поставил nasm. Как поставил так тут же и упал.
    1) Своего родного линковщика у него нету.
    2) inc и lib файлы тоже отсутствуют. Подскажите где взять, попробовал от масм32, чета не подошло.
    3) Не нашел исходников виндовских приложений. Погуглив, вообще мало что нашел.
    До этого использовал masm.
     
  2. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
  3. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    "Hello world!" пойдет?
    Сохранить как .bat файл.

    Код (Text):
    1. ;@echo off
    2. ;goto make
    3.  
    4. extern __imp__ExitProcess@4
    5. ExitProcess EQU __imp__ExitProcess@4
    6. extern __imp__MessageBoxA@16
    7. MessageBox EQU __imp__MessageBoxA@16
    8. extern __imp__GetCurrentProcessId@0
    9. GetCurrentProcessId EQU __imp__GetCurrentProcessId@0
    10. extern __imp__wsprintfA
    11. wsprintf EQU __imp__wsprintfA
    12.  
    13. %macro push 2-*
    14.   %rep %0
    15.     push  %1
    16.     %rotate 1
    17.   %endrep
    18. %endmacro
    19.  
    20. %macro pop 2-*
    21.   %rep %0
    22.     %rotate -1
    23.     pop  %1
    24.   %endrep
    25. %endmacro
    26.  
    27. %macro invoke 1-*
    28.   %rotate -1
    29.   %rep %0-1
    30.     push  %1
    31.     %rotate -1
    32.   %endrep
    33.   call [%1]
    34. %endmacro
    35.  
    36. %macro cinvoke 1-*
    37.   %rotate -1
    38.   %rep %0-1
    39.     push  %1
    40.     %rotate -1
    41.   %endrep
    42.   call [%1]
    43.   %if (%0-1)
    44.     add esp, 4*(%0-1)
    45.   %endif
    46. %endmacro
    47.  
    48. global _start
    49.  
    50. section .data USE32
    51.  
    52. sz             db  "Hello, world!",0
    53. format_string  db  "PID: %08lX",0
    54.  
    55. section .bss USE32
    56.  
    57. szBuff         resb  64
    58.  
    59. section .text USE32
    60.  
    61. _start:
    62.   invoke GetCurrentProcessId
    63.   cinvoke wsprintf, szBuff, format_string, eax
    64.   invoke MessageBox, 0, szBuff, sz, 0
    65.   invoke ExitProcess, 0
    66. ;  push 0
    67. ;  call [ExitProcess]
    68.  
    69.  
    70. ;:make
    71. ;SET PROJECTNAME=Hello
    72. ;if exist %PROJECTNAME%.res del %PROJECTNAME%.res
    73. ;if exist %PROJECTNAME%.obj del %PROJECTNAME%.obj
    74. ;if exist %PROJECTNAME%.exe del %PROJECTNAME%.exe
    75. ;if exist *.rc goto rc
    76. ;\nasm\nasmw -fwin32 %PROJECTNAME%.bat
    77. ;\masm32\bin\link /nologo /opt:nowin98 /SUBSYSTEM:WINDOWS /ENTRY:start /release /LIBPATH:\masm32\lib %PROJECTNAME%.obj KERNEL32.LIB USER32.LIB
    78. ;goto exit
    79. ;:rc
    80. ;\nasm\nasmw -fwin32 %PROJECTNAME%.bat
    81. ;\masm32\bin\rc %PROJECTNAME%.rc
    82. ;\masm32\bin\link /nologo /opt:nowin98 /SUBSYSTEM:WINDOWS /ENTRY:start /release /LIBPATH:\masm32\lib %PROJECTNAME%.obj %PROJECTNAME%.res KERNEL32.LIB USER32.LIB
    83. ;del %PROJECTNAME%.res
    84. ;:exit
    85. ;del %PROJECTNAME%.obj
    86. ;echo.
    87. ;pause
    88. ;cls
     
  5. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    jershell
    Ему и не нужен линковщик, как и компилятор ресурсов. Посмотри здесь начиная с #110 уроки Iczeliona на nasm, inc-файлы можно взять на сайте http://visual-assembler.pt.vu/, там же куча примеров, lib-файлы не требуются, так как прямо в asm-файле указывают имена используемых dll. Синтаксис nasm похож на masm в режиме ideal или на fasm, который является потомком nasm. Основные отличия от masm при обращении к переменной её имя заключаешь в квадратные скобки [x], если просто имя переменной -- это её адрес т.е. x в nasm соответствует offset x в masm, отсутствует ptr т.е. dword [x] в nasm соответствует dword ptr [x] в masm
     
  6. jershell

    jershell New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2009
    Сообщения:
    18
    404, его больше нету?
     
  7. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    jershell
    А в гугл слабо набить "nagoa nasm" -- не найдешь -- кое-что могу сбросить в почту, только адрес укажи
     
  8. jershell

    jershell New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2009
    Сообщения:
    18
    Mikl___
    Пробовал ещё вчера.Мб я слепой, незнаю на что пинять, но все ссылки либо на рапиду, с которой не качать, либо 404. Зеркал нету.

    Посмотрел. У меня вот вопрос, а вот первые 3 аттача, они требуют линкер, и запускаться под вистой стали?
    И как лучше, компилировать с линкером, или всё это дело вручную вставлять?
    Вот нашел исходник:
    Код (Text):
    1. %include "c:/nasm/inc/nagoa.inc"
    2.  
    3. def WinMain
    4. def WinProc
    Больше ссылок на библиотеки, или какие либо импорты ввида
    Код (Text):
    1. LAST_BEGIN
    2.  
    3. __LIBS_   kernel32,'kernel32.DLL'
    4.  
    5. __IMPORT_ kernel32,\
    6.           GetStdHandle,'GetStdHandle',0,\
    7.       WriteFile,'WriteFile',0
    8.  
    9. LAST_END
    В самом исходнике нету. Я так понимаю что все это дело в nagoa.inc? Вчера ещё читал про эту вещь, правда на английском(в котором не силен), пробовал скачать, как уже говарил выще не вышло.
    Ну допустим не существует никакого nagoa, то списки импорта доставать из MSDN, затем компилить и линквать?
     
  9. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    jershell
    Напиши свой адрес в личку
     
  10. jershell

    jershell New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2009
    Сообщения:
    18
    Написал.
    Кто-нибудь может ответить на предыдущий вопрос?
     
  11. jershell

    jershell New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2009
    Сообщения:
    18
    Mikl___
    Большое спасибо.

    Кстати раз уж nagoa закрылся(ну по крайней мере закрыт сейчас), то вот есть альтернатива в виде nasmX IDE проекта. Распросраняется как под вин так и под линь системы. Скорее всего буду использовать его. Состав значит такой include файлы, rceditor, компилятор думаю понятно какой, линкер GoLink, компилятор rc - GoRc.