masm615怎样链接obj文件?

guangdongmutou 2011-02-23 11:22:32


TITLE Add and Subtract (addsubalt.asm)

; This program adds and subtracts 32-bit integers.
; 32-bit Protected mode version
; Last update: 06/01/2006

.386
.MODEL flat,stdcall
.STACK 4096

ExitProcess PROTO,dwExitCode:DWORD
DumpRegs PROTO

.code
main PROC

mov eax,10000h ; EAX = 10000h
add eax,40000h ; EAX = 50000h
sub eax,20000h ; EAX = 30000h
call DumpRegs

INVOKE ExitProcess,0
main ENDP
END main


在cmd里输入"ml addsubalt.asm"
出现提示如下:
Assembling: addsubalt.asm
Invalid keyboard code specified

Microsoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992
Copyright (C) Microsoft Corp 1984-1992. All rights reserved.

Object Modules [.obj]: addsubalt.obj
Run File [addsubalt.exe]: "addsubalt.exe"
List File [nul.map]: NUL
Libraries [.lib]:
Definitions File [nul.def]:
LINK : warning L4054: addsubalt.obj : cannot find file
Change diskette in drive H and press <ENTER>
...全文
141 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2011-02-23
  • 打赏
  • 举报
回复
你这程序,应该是 Win32 类的,前面的选项和程序里对系统函数的调用可以看出来。
编译:ml /c /coff addsubalt.asm
链接:link /subsystem:console addsubalt.obj
上面命令行的选项 /subsystem:console 是由你程序类型来定的。如果是命令行输入输出的,就是这个;如果窗口类的,就是 /subsystem:windows
如果上面这些选项程序都能认可,不提示无效或非法的命令行参数之类的,这个编译器就是可以的;否则,版本就不对了。现在,对 Win32 类的程序,一般多是采用 Masm32v7/8/9/10 之类。
guangdongmutou 2011-02-23
  • 打赏
  • 举报
回复
这次输入"ml /c addsubalt.asm"
在目录下多了一个addsubalt.obj文件
又输入"link addsubalt.obj"
在cmd出现了下面信息:
Run File [addsubalt.exe]: //我按下了回车键
List File [nul.map]: //我按下了回车键
Libraries [.lib]: //我按下了回车键
Definitions File [nul.def]://我按下了回车键
LINK : warning L4054: addsubalt.obj : cannot find file
Change diskette in drive H and press <ENTER>
这是什么错误?


难道我下载的编译器不行?
[Quote=引用 1 楼 zara 的回复:]
只编译的话,加 /c 选项吧;如果是 Win32 类的 COFF 格式的 obj ,再加 /coff 选项:
ml /c /coff addsubalt.asm
[/Quote]
guangdongmutou 2011-02-23
  • 打赏
  • 举报
回复
上面那个程序是什么win32类吗 ?[Quote=引用 1 楼 zara 的回复:]
只编译的话,加 /c 选项吧;如果是 Win32 类的 COFF 格式的 obj ,再加 /coff 选项:
ml /c /coff addsubalt.asm
[/Quote]
zara 2011-02-23
  • 打赏
  • 举报
回复
只编译的话,加 /c 选项吧;如果是 Win32 类的 COFF 格式的 obj ,再加 /coff 选项:
ml /c /coff addsubalt.asm
  • 打赏
  • 举报
回复
用ml 10.00.30319.01测试你的程序,是可以生成.obj的,link,我没有irvin32.lib,所以生成不了exe。:)
  • 打赏
  • 举报
回复
5.31.009的link这应该是masm 6.11里面带的,我没有测试,不过印象是这一版本不能连接32位目标文件。

zara 2011-02-23
  • 打赏
  • 举报
回复
上面的提示是说没有找到 addsubalt.obj 文件,应该是编译时就没成功吧,或者是没在同一目录下。
我编译是没有问题,但由于没有 DumpRegs 子程的内容,所以链接上会过不去的。
编译器版本,你的好像比我的还高。我这的 ml 提示版本为 6.14.8444;link 提示版本为 5.12.8078;是 Masm32v7 的吧。不过,提示信息好像大不一样。如果要重新下载的话,Masm32 有自己网站的
guangdongmutou 2011-02-23
  • 打赏
  • 举报
回复
输入这两条命令,链接的时候还是出现
Run File [addsubalt.exe]: //我按下了回车键
List File [nul.map]: //我按下了回车键
Libraries [.lib]: //我按下了回车键
Definitions File [nul.def]://我按下了回车键
LINK : warning L4054: addsubalt.obj : cannot find file
这样的错误
您编译上面的程序能生成exe吗?

前辈用的masm是什么版本,在哪下载的?可否给个下载链接?或发到xiancheng.wu@gmail.com

希望能够尽快回复!!!在线等,家里停网了

希望能够尽快[Quote=引用 4 楼 zara 的回复:]
你这程序,应该是 Win32 类的,前面的选项和程序里对系统函数的调用可以看出来。
编译:ml /c /coff addsubalt.asm
链接:link /subsystem:console addsubalt.obj
上面命令行的选项 /subsystem:console 是由你程序类型来定的。如果是命令行输入输出的,就是这个;如果窗口类的,就是 /subsystem:windows……
[/Quote]
前言最近随着计算机的发展,软件日益更新,有很多公司发布的产品遭到篡改和破解,在总众多年的历史种逐渐形成了软件保护与软件破解之间的对抗产生了软件逆向工程这本门技术将在如下的课程讲解各种软件逆向知识,软件保护知识,已经破解脱壳反调试知识,为初期学软件逆向不懂而又迷茫的同学门指明一条道路此套课堂能有效帮助同学们解决软件逆向中所遇到的大部分问题大纲软件逆向工程高级班分为反调试篇汇编篇算法篇补丁篇HOOK篇将在如上这几篇对软件逆向的各个方面进行详解,包括网络验证的分析思路,封包算法的提取,以及各种软件保护技术,无论哪一篇都会从诸多个方面的细节进行详解反调试篇:分为PEB,时间校验,CRC,NtQuery函数,内核过渡等知识要领与诸多方面的综合性详解,细节分为每一节课,每一节课目标清晰无比,每一节深入精髓进行讲解!汇编篇:一个程序编译完成之后是如何通过在计算机运行起来的,其中少不了底层知识的汇编指令,汇编篇中将深入浅出的带领同学们对MASM32SDK的一套汇编库中开发程序,熟悉汇编的原理,如何运用汇编写出一套花指令,并且去除指令,方便以后的算法学习以及为今后的学习打下坚实的基础算法篇:随着编程语言的发展,编程语言的标准也在发展,一些编译器善于运用数学的手法,对程序进行各种优化,然后我们进行分析,我们得需要一步步还原这个优化或清晰了解这个优化才有可能掌握这个数学模型优化,进一步还原代码,算法篇知识要领将在优化,技巧这方面表现的玲离尽致!此篇会带领同学们分析多个语言的算法,包括C/C++算法还原代码还原易语言代码还原 算分开库的实现,制作自己的第一个注册机等!补丁篇:说到补丁,同学们可能第一个想到的就是对方一些网络验证所用到的技巧,我的课程这一方面虽有涉及,但是补丁技术远远不止这一点,我的课程会详解更多的补丁知识原理,包括什么是补丁,补丁的真正概念,前辈们是如何善用补丁对程序的漏洞进行修补损坏的程序。将在此篇一一介绍HOOK篇:详细详解了各种HOOK的原理以及实现代码,包括网上流行所说的超级HOOK,COMHOOK,协议HOOK,代理中转等方法,怎么定位关键位置,环境的保存知识要领,hook关键的注意事项,为自己以后做hook行业打下坚实的基础课程每一个细节讲究的深入骨髓,通俗易懂的学习方式,全程贯彻原理,软件逆向中必不可少少的教程!

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧