2
FASM을 마친 후 NASM 어셈블러를 시작합니다. Windows 운영 체제에서 이것을 코딩하고 있습니다. 내 코드를 읽NASM 튜토리얼에서는 int 80h를 사용하지만 Windows에서는 작동하지 않습니다
section.data ;Constant
msg: db "Hello World!"
msg_L: equ $-msg ; Current - msg1
section.bss ;Varialble
section.text ; Code
global [email protected]
[email protected]:
mov eax,4
mov ebx,1; Where to wrte it out. Terminal
mov ecx, msg
mov edx, msg_L
int 80h
mov eax, 1 ; EXIT COMMAND
mov ebx,0 ; No Eror
int 80h
를 컴파일하고 내가 사용하는 실행하려면 : 나는 현재 NASM 튜토리얼에이 비디오를 다음입니다
nasm -f win32 test.asm -o test.o
ld test.o -o test.exe
. 시작을 WIN32로 바꿨지 만, 실행하면 멈추고 실행되지 않습니다 ...이 문제가 있습니까?
하나의 질문입니다. 내 Linux VM에서 컴파일 한 다음 .o 파일을 Windows로 보내면 잘 작동합니까? – amanuel2
아니요. Linux VM에서 컴파일하고 Linux VM에서 * 실행 * 할 수 있지만 Windows에서 Linux 시스템 호출이 없으므로 Windows에서 실행할 수는 없습니다. @dsafds –
왜 Linux VM에서 컴파일 할 수 없습니까? 그것은 그를 위해 일합니다 : https : //www.youtube.com/watch? v = uca_zY8ZNpA (Ubuntu BTW) – amanuel2