声明:这篇文章转自我的一个学长,由于讲解十分清晰,因此收藏。原出处:www.reyoung.me
这篇日志介绍了如何在Windows下使用RadASM进行汇编开发,并配置Irvine的库。分为如下几个步骤:* 安装汇编语言的集成开发环境RadASM* 下载Irvine的开发库* 新建项目,配置Irvine库* 运行Hello World
安装汇编语言的集成开发环境RadASM
RadASM可以从这里下载。下载完成后,是一个安装包,安装过程没有什么注意事项,正常的安装程序就可以了。(也许会报病毒,我用Avast检测报毒。
安装完毕后,可以找到程序RadASM
下载Irvine的开发库
可以在Kip Irvine的官方网站下载它书籍的配套资料。大家可以下载vs2012的example就可以了。(八卦一下,下面那个Curtis Wong的Linux版本的Irvine32库,是天津大学咱的大学长黄耀龙写的。^V^)
下载完了是一个zip包。解压缩完毕了后,提取出Irvine32.inc, Irvine32.lib, Kernel32.lib, SmallWin.inc, User32.lib, VirtualKey.inc到某一个目录中
新建项目,配置Irvine库

打开RadASM,选择文件,新建工程。选择Console,填写完名称,一路下一步。

到目录的文件夹内,把刚才解压出来的那些文件,拷到项目的根目录。
输入课本中的示例程序:
TITLE Add and Subtract (AddSub.asm); This program adds and subtracts 32-bit integers.INCLUDE Irvine32.inc.codemain PROCmov eax,10000h ; EAX = 10000hadd eax,40000h ; EAX = 50000hsub eax,20000h ; EAX = 30000hcall DumpRegsexitmain ENDPEND main
点击菜单构建–构建并运行(Ctrl+Shift+F5),会报错
Test.obj : error LNK2001: unresolved external symbol _ExitProcess@4Test.obj : error LNK2001: unresolved external symbol _DumpRegs@0Test.exe : fatal error LNK1120: 2 unresolved externals
报的错是Link Error,也就是Irvine32.lib没找到。那么在源代码加入如下几行即可
INCLUDELIB Irvine32.libINCLUDELIB user32.libINCLUDELIB kernel32.lib
现在所有的程序为: TITLE Add and Subtract (AddSub.asm)
; This program adds and subtracts 32-bit integers.INCLUDE Irvine32.incINCLUDELIB Irvine32.libINCLUDELIB user32.libINCLUDELIB kernel32.lib.codemain PROCmov eax,10000h ; EAX = 10000hadd eax,40000h ; EAX = 50000hsub eax,20000h ; EAX = 30000hcall DumpRegsexitmain ENDPEND main
运行结果为:
EAX=00030000 EBX=7FFDE000 ECX=00000000 EDX=00401000ESI=00000000 EDI=00000000 EBP=0018FF90 ESP=0018FF88EIP=00401014 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1Press Enter key to continue...
本文详细介绍了在Windows环境下使用RadASM进行汇编语言开发,并配置Irvine库的过程。包括RadASM的安装、下载Irvine库、新建项目、配置库以及运行示例程序等步骤。
851

被折叠的 条评论
为什么被折叠?



