Код на nasm, с ошибками и не линкуется: Код (ASM): extern WSAStartup extern WSACleanup extern socket extern Sleep extern ExitProcess extern accept extern listen extern bind SECTION .bss hSocket: resq 1 SECTION .data port: equ 777 struc WSADATA .wVersion: resw 1 .wHighVersion: resw 1 .szDescription: resb 256 .szSystemStatus: resb 256 .iMaxSockets: resd 1 .iMaxUdpDg: resd 1 .lpVendorInfo: resq 1 endstruc struc sockaddr_in .sin_family: resd 1 .sin_port: resd 1 .sin_addr: resb in_addr .sin_zero: resb 8 .size: endstruc struc in_addr .s_addr: resq 1 endstruc SECTION .code global main main: mov rdx , [WSADATA] mov rcx , 0x202 call WSAStartup mov r8 , 0 mov rdx , 1 mov rcx , 2 call socket mov [hSocket] , rax mov dword [sockaddr_in.sin_family] , 1 mov qword [sockaddr_in.sin_addr] , 0 mov ax , port xchg ah , al mov [sockaddr_in.sin_port] , ax mov r8 , sockaddr_in.size mov rdx , [sockaddr_in] mov rcx , hSocket call bind mov rdx , 13 mov rcx , hSocket call listen mov r8 , 0 mov rdx , [sockaddr_in] mov rcx , hSocket call accept mov rcx , 60000 call Sleep call WSACleanup mov rcx,0 call ExitProcess компилирую
Код (ASM): extern WSAStartup extern WSACleanup extern socket extern Sleep extern ExitProcess extern accept extern listen extern bind SECTION .bss hSocket: resq 1 SECTION .data port: equ 777 struc WSADATA .wVersion: resw 1 .wHighVersion: resw 1 .szDescription: resb 256 .szSystemStatus: resb 256 .iMaxSockets: resd 1 .iMaxUdpDg: resd 1 .lpVendorInfo: resq 1 endstruc struc sockaddr_in .sin_family: resd 1 .sin_port: resd 1 .sin_addr: resq 1 .sin_zero: resb 8 .size: endstruc SECTION .text global MainProc MainProc: mov rdx , [WSADATA] mov rcx , 0x202 call WSAStartup mov r8 , 0 mov rdx , 1 mov rcx , 2 call socket mov [hSocket] , rax mov dword [sockaddr_in.sin_family] , 1 mov qword [sockaddr_in.sin_addr] , 0 mov ax , port xchg ah , al mov [sockaddr_in.sin_port] , ax mov r8 , sockaddr_in.size mov rdx , [sockaddr_in] mov rcx , hSocket call bind mov rdx , 13 mov rcx , hSocket call listen mov r8 , 0 mov rdx , [sockaddr_in] mov rcx , hSocket call accept mov rcx , 60000 call Sleep call WSACleanup mov rcx,0 call ExitProcess Компилирую в MinGW Alexey@Antares MINGW64 ~ $ nasm.exe cmd.asm -f win64 -o cmd.obj Линкую Alexey@Antares MINGW64 ~ $ lld-link.exe cmd.obj entry point must be defined Ошибки не вижу
Можно указать entry point вручную: C:\msys64\home\Alexey>lld-link.exe -e start cmd.obj cmd.obj: undefined symbol: WSAStartup cmd.obj: undefined symbol: WSACleanup cmd.obj: undefined symbol: socket cmd.obj: undefined symbol: Sleep cmd.obj: undefined symbol: ExitProcess cmd.obj: undefined symbol: accept cmd.obj: undefined symbol: listen cmd.obj: undefined symbol: bind Link failed Помогите исправить, я вообще запутался
Я так понимаю нужны файлы типо dll.def dll.lib и подключить их к проекту надо? Вот читаю статью HOWTO Create an Import Library for a DLL using MinGW но что-то не особо получается пока. Какой именно файл нужен и как его прикрепить к проекту?
Разобрался как создавать .lib pexports C:\Windows\System32\user32.dll > user32.def dlltool -d user32.def -l user32.lib Подскажите где ошибка в коде? Код (ASM): BITS 64 extern ExitProcess extern MessageBoxA SECTION .data MessageBoxText db "Do you want to exit?", 0 MessageBoxCaption db "MessageBox 64", 0 SECTION .text global start start: nop nop nop mov r9 , 0 mov r8 , MessageBoxCaption mov rdx , MessageBoxText mov rcx , 0 call MessageBoxA mov rcx , 0 call ExitProcess SECTION .drectve info db '/defaultlib:kernel32.lib /defaultlib:user32.lib' nasm test.asm -f win64 -o test.obj lld-link -e start /LIBPATH:C:\msys64\home\Alexey\kernel32.lib C:\msys64\home\Alexey\user32.lib /SUBSYSTEM:WINDOWS test.obj Компилируется, линкуестя, но не работает
поставь в начало файла, а ты его в секцию записал. --- Сообщение объединено, 20 окт 2018 --- http://cs.lmu.edu/~ray/notes/gasexamples/
Хочу написать браузер с поддержкой MSHTML.DLL --- Сообщение объединено, 8 ноя 2018 --- С поддержкой Unicode
Вопрос остаётся открытым! Как собрать простенькую программу под nasm lld-link --- Сообщение объединено, 19 янв 2019 --- Вообщем вот код и ошибка --- Сообщение объединено, 19 янв 2019 --- Насколько я понимаю не получается импортировать функции из библиотек. Помогите пожалуйста, как это грамотно сделать? --- Сообщение объединено, 19 янв 2019 --- https://forum.nasm.us/index.php?topic=2461.0