注册 登录
编程论坛 汇编论坛

求一款汇编编译器。

waterstar 发布于 2011-02-06 20:13, 1307 次点击
最近在看Iczelion的win32汇编教程,可是不知道它是用什么编译器,
下了masm2010的发现编译有很多错误,请问该如何解决,或者,换个
编译器行不行?
11 回复
#2
zaixuexi2011-02-06 23:35
我觉得masm32挺好用的,写个makefile就行了,是命令行的,不知道你是不是一定要像IDE那种的,有图形界面的编译环境.
#3
你们都要疼我哦2011-02-06 23:52
命令很好用的。
如果嫌麻烦,就用AGO的那个ASMPLUS吧,好象叫这个名字。

不过如果是想比较正式的用个IDE,就用RADASM,这个是win环境下
的汇编IDE首选。

Iczelion的汇编教程超好,用编译器有问题一般都是头文件或者资源文件
这方面的事,比如RC。EXE这个资源链接器 不自带汇编预定义,必须把resource.h包含进去然后跟ASM文件放一起才可以。

总之。。。刚开始写win32汇编,基本上都是这方面的问题。

#4
waterstar2011-02-07 10:05
回复 2楼 zaixuexi
新手,不太懂。教程上是这么编译的ml /c /coff /Cp msgbox.asm
可我这样编译的时候就出错了,和masm2010编译的时候错误一样,masm32
完全不会用。
#5
waterstar2011-02-07 10:09
回复 3楼 你们都要疼我哦
程序代码:
.386
.model flat, stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib

.data
.code
start:
invoke ExitProcess,0
end start
这是教程开始的一个例子,编译出来找不到windows.inc
第二行和第三行错误都是invalid character in file
请问怎么解决?
#6
zaixuexi2011-02-07 10:36
程序代码:
.386
.model flat,stdcall  ;不要用中文的标点
option casemap:none  ;不要用中文的标点

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib

.data
.code
start:
invoke ExitProcess,0
end start
找不到windows.inc
首先你看看编译器里有没有这些头文件和相应的库文件,然后把他们对应的include和lib的路径添加到用户的环境变量里.
ml /c /coff /Cp msgbox.asm是一步步命令行编译,也是可以的.
#7
waterstar2011-02-07 13:39
回复 6楼 zaixuexi
修改之后可以生成.obj文件了,但是链接的时候出现错误
cannot open file “tempfile.obj"
#8
wisji82011-02-07 20:22
啊!伟大的楼主。啊!伟大的楼主。
ml /c /coff /Cp msgbox.asm
这是在命令行下编译的。
给楼主一篇文章,虽然说的不是同一本书,但相信楼主看到应该可以解决楼主现在的问题。
http://hi.baidu.com/am%C4%A2%B9%BD/blog/item/1f4d4f8a2476d1709e2fb49b.html
#9
waterstar2011-02-07 21:57
回复 8楼 wisji8
我知道这是编译的语句,我在编译完成后执行链接的时候出现这错误的。
#10
waterstar2011-02-07 23:06
谢谢各位了,小弟我终于弄好了,以后还要来麻烦大家的。
#11
Alar302011-02-07 23:21
MasmPlus
俺一直用来着
#12
ansic2011-02-15 00:32
ML就很好, 16bit和32bit都可以轻松汇编。
1