你说你想要纯或干净大会,这是沿着这些线?从The Assembly Programmers Master Book
语言masm32
汇编器,连接ml,link
源采取
;
.586P
; Flat memory model
.MODEL FLAT, STDCALL
;---------------------------------------
; Data segment
_DATA SEGMENT
_DATA ENDS
; Code segment
_TEXT SEGMENT
START:
RET ; Exit
_TEXT ENDS
END START
程序集&链接;
ML /c /coff PROG1.ASM
LINK /SUBSYSTEM:WINDOWS PROG1.0BJ
这项计划是从字面上叫“什么都不做”,但它是纯 MASM,只是什么都不做。
如果你想在没有C的帮助窗口编程,你将不得不使用Win32 API编程,你可以找到这个API在网络上被称为win.hlp
win32.hlp
一个参考,它似乎是对这个web-page
也许一个方便的链接 - >MASM 6.1 Documentation
编辑:使用as
(气体)& ld
;
.globl _start
_start: // ld looks for _start by default
movl $22, %eax // AT&T syntax
ret
compile;
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
是不会让你走得很远,你可以通过与-S
标志编译得到你的C/C++程序的汇编清单(-masm=intel
为您提供了英特尔的语法)。
这就是说,你需要指定一个entry point
链接器知道代码开始的地方,你还需要为代码创建一个text segment
,这里是一个真的简单的例子,返回1
;
.text
.intel_syntax noprefix
.globl _main
_main: // entry point!
mov eax, 1
ret
gcc [file].s
yeilds a.exe
我会建议得到MASM32,并与工作。 –
你可能想先看看这个问题:http://stackoverflow.com/questions/1023593/how-to-write-hello-world-in-assembler-under-windows – PhiS