Tôi đang sử dụng nasm để biên dịch hội đồng sau đây. Tuy nhiên, mã bị treo trong bảng điều khiển trong Windows.Xin chào thế giới bằng cách sử dụng nasm trong cửa sổ lắp ráp
C: \> NASM -f win32 test.asm -o test.o
C: \> ld test.o -o test.exe
section .data
msg db 'Hello world!', 0AH
len equ $-msg
section .text
global [email protected]
[email protected]:
mov edx, len
mov ecx, msg
mov ebx, 1
mov eax, 4
int 80h
mov ebx, 0
mov eax, 1
int 80h
Theo này post. Chức năng main
không khả dụng trong Windows và phải được thay thế bằng WinMain
.
Vì vậy, nếu điểm vào của bạn là _start
hoặc main
, nó nên được thay đổi để [email protected]
và thay đổi ret
ở phần cuối của các thủ tục để ret 16
:
dụ làm việc của tôi:
section .text
global [email protected]
[email protected]:
mov eax, 0
ret 16
Vui lòng chỉnh sửa tiêu đề để nó hữu ích cho khách truy cập trong tương lai. Nếu không, nó có thể bị đóng như địa phương hóa quá. –
@RaymondChen đến cái gì? – fuzz