win7 64位 *** 作系统radasm不能用啊,设置方法
将下载好的masm32压缩包解压,得到的整个文件夹拷贝至C盘根目录。
双击安装hla.exe,同样地,必须也安装到C盘根目录下。
完成之后,右击计算机-属性-高级系统设置-环境变量,查看系统变量,其中的三项如果如图所示的一样,证明安装hla成功,配置也是正确的。
双击安装RadASM.v2.2.1.9,由于步骤一已经复制了masm32至C盘根目录,所以安装时masm32选项不要勾选,对于hla而言,只需要勾选“文件关联”一项,如图所示。安装目录同样选择C盘根目录,确保安装完成之后RadASM.exe在C:\RadASM。
双击桌面的Radasm图标或者C:\RadASM\目录下的RadASM.exe进入程序。工具栏点击:文件-新建工程,编译器选择hla,类型选Console APP,填好工程名,使用hello world的模板。
新建的工程完成了,试着编译并运行,如图,运行成功得到结果。
点击工具栏:选项-语言,选择简体中文。然后是环境变量,发现了没,Radasm安装时自动把环境变量和路径设置为基于C盘根目录的,这也是之前的步骤为什么必须把masm32以及hla安装于C盘根目录的原因。如果masm32以及hla没有安装到C盘根目录,Radasm的自动配置环境变量将不起作用,用户必须手动更改。
至此,整个安装和配置过程已经结束了。如果能按照以上步骤做,64位WIN7下对于配置基于Radasm编辑器的hla编程环境和XP是一样的。
我就是用的64位win7/win8你这个问题应该是环境变量或者是radasm没设置好的问题.如果是是学习的话.我建议用editplus来写.然后把环境变量的批处理放在windows目录下.每次编译的时候执行下就好了用nmake+Makefile配合起来不比radasm慢,(写小程序的话)你如果只是学习的话就用我说的吧..前些天,看到这个标题,直接过了,因为这个好像根本不是问题,结果过了几天,看这个问题还没有结果,于是好奇,进来看看。
RadASM只是一个开发环境,具体使用什么语言,你要有那个语言的编译和链接器,放在任何目录都可以,然后在对应那个语言的xxxx.ini中指定编译器和连接器的位置,如果是MASM宏汇编,那么需要在MASM.INI中指定,例如:
[Enviroment]
1=path,c:\masm32\bin
[CharTab]
2=025122252222223220-2F
3=111111111124222130-3F
[Open]
0="汇编源文件 (*.asm*.inc*.mac*.txt),*.asm*.inc*.mac*.txt"
1="资源文件 (*.rc),*.rc"
2="文本文件 (*.txt),*.txt"
3="所有文件 (*.*),*.*"
src="汇编文件 (*.asm),*.asm,asm"
hdr="头文件 (*.inc),*.inc,inc"
mod="模块 (*.asm*.mac),*.asm*.mac"
1=path 这个就是用来定义宏汇编编译器的地址,填上正确的地址即可。
至于汇编源程序,你完全可以如在DOS环境下使用的那样,例如:
.data
s1 db '这里放数据‘,0
.code
entry proc
mov eax, [eax].PEB.ImageBaseAddress
call GetCurrAddr
mov hInstance[ebx], eax
......
entry endp
.data
s2 db '这里也放数据,当然也可以放到前面去。
.code
start:
mov dest, offset Mz
mov clenth, Len
invoke GetCurrentDirectory,nBufLen, addr szFName
invoke lstrcat,addr szFName, addr myFName
invoke CreateFile,addr szFName, pointer to name of the file
GENERIC_WRITE or GENERIC_READ,access (read-write) mode
null, share mode
null, pointer to security attributes
CREATE_ALWAYS, how to create
FILE_ATTRIBUTE_NORMAL, file attributes
NULL
mov hFile, eax
invoke WriteFile,hFile,dest,clenth,addr br,NULL
.if eax
invoke lstrcpy,addr szFName,addr myFName1
invoke lstrcat,addr szFName,addr szOpenOk
invoke MessageBox,null,addr szFName,
addr szCaption,MB_OK
.else
invoke MessageBox,NULL,addr szOpenEr,
addr szCaption,MB_ICONERROR or MB_OK
.endif
invoke CloseHandle,hFile
xor eax, eax
invoke ExitProcess,eax
end start
编译链接后,代码从 start开始执行,start 的级别比 entry 高,如果代码中有entry,同时有start,那么编译后,结果是start,而不是entry,准确的说法是结尾 end 后面根的启动地址名称,随便叫什么都可以,习惯上用 start。
这是我以前写书时写的一些演示代码,都是在RadASM中开发的,代码绝对都可以编译运行的,我在附件里给你发一个汇编源代码,你可以试着用RadASM来编译一下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)