순수 또는 조립품을 원한다고 말하면이 라인에 있습니까?
는 The Assembly Programmers Master Book
언어 masm32
어셈블러, 링커 ml,link
소스에서 가져온;
집합체 & 연결;
ML /c /coff PROG1.ASM
LINK /SUBSYSTEM:WINDOWS PROG1.0BJ
이 프로그램
은 문자 그대로 "동작 없음"이라고하지만, 그냥 아무것도하지 않는다
순수 MASM가되었습니다.
당신이 WIN32 API를 사용하여 프로그래밍해야합니다 C의 도움없이 창 프로그램을 개발하고자하는 경우 win.hlp
win32.hlp
라는 그물에이 API에 대한 참조를 찾을 수 있습니다,이에있을 나타납니다 web-page
아마도 편리한 링크 ->MASM 6.1 Documentation
편집 : 사용 as
(가스) & ld
;
.globl _start
_start: // ld looks for _start by default
movl $22, %eax // AT&T syntax
ret
;
c:\Users\James\Desktop\asm\>as file.s
c:\Users\James\Desktop\asm\>ld a.out
c:\Users\James\Desktop\asm\>a.exe
c:\Users\James\Desktop\asm\>echo %errorlevel%
22
섹션의 분해.텍스트 :
00401000 <_start>:
401000: b8 16 00 00 00 mov $0x16,%eax
401005: c3 ret
401006: 90 nop
401007: 90 nop
간단히 ret
이 (-masm=intel
당신에게 인텔의 구문을 제공합니다) 당신은 지금, 당신은 -S
플래그로 컴파일하여 C/C++ 프로그램의 어셈블리리스트를 얻을 수 있습니다 얻기 위하여려고하고 있지 않다 퍼팅.
당신은 또한 코드에 대한
text segment
을 만들어야합니다, 코드가 시작되는 위치를 알고 링커에 대한
entry point
를 지정해야했다
가 여기 1
를 반환하는 정말 간단한 예이다;
.text
.intel_syntax noprefix
.globl _main
_main: // entry point!
mov eax, 1
ret
gcc [file].s
내가 MASM32를 받고 그 작업을 권 해드립니다 a.exe
을 yeilds. –
이 질문을보고 시작하는 것이 좋습니다. http://stackoverflow.com/questions/1023593/how-to-write-hello-world-in-assembler-under-windows – PhiS