首页 > 编程语言 >win32下搭建汇编环境

win32下搭建汇编环境

时间:2022-12-15 14:32:07浏览次数:58  
标签:汇编 Option win32 RadAsm ini Test MASM32 asm 搭建


      这几天看罗老师win32汇编语言程序设计,其推荐的​​MASM32​​​真的不错,其IDE的功能就太弱了,找到​​RadAsm​​,配置了半天才成功,总算能正常编译程序,MASM32+RadAsm真是黄金组合.

 

一. 下载masm5.0

    ​​masm5.0​​ 最干净的汇编编译环境,不包括任何SDK库,适合初学者.

   编译: masm test.asm

   连接: link test.asm, 生成test.exe 

 

二.下载MASM32

    下载后安装MASM32, 打开qeditor.exe, 其集成了很多Complier/link/Assembly命令,倒是比命令行方便多了. 利用其编译资源文件时出错: fatal error RC110: could not open rsrc.rc, 其默认的资源文件名是rsrc.rc, 然后也没有工程这概念, 源文件不能高亮显示. 还不如手动编写Makefile来的快. 

    下面命令行编译我们第一个汇编程序:

    Test.asm: 



;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat,stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.const

szCaption db '恭喜',0
szText db '当您看到这个信息的时候,您已经可以编译Win32汇编程序了!',0

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
start:
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start



   

    Makefile:



EXE = Test.exe    #指定输出文件
OBJS = Test.obj #需要的目标文件
RES = Test.res #需要的资源文件

LINK_FLAG = /subsystem:windows #连接选项
ML_FLAG = /c /coff /I"D:\masm32\include" #编译选项,必须指定include路径

$(EXE): $(OBJS) $(RES)
Link $(LINK_FLAG) $(OBJS) $(RES)

.asm.obj:
ml $(ML_FLAG) $<
.rc.res:
rc $<

clean:
del *.obj
del *.res



    dos下输入命令:

    set MASM=D:\masm32  

    set path=%MASM%;%MASM%\bin;%path%;  // 将MASM32添加至环境变量中

    cd d:/Test

    nmake

    运行跳出对话框:  

 

 

三. 安装配置RadAsm

    MASM32是windows下汇编SDK开发包,整合一些常用的工具,RadAsm是Win32下功能比较强大的IDE, 打开 ​​http://www.oby.ro/rad_asm/​​ 主页,依次下载四个压缩包,分别是IDE,支持语言扩展包,代码高亮插件,国际化包. 

   3.1 解压文件

       将RadAsm.zip解压至D:\RadAsm下, Assembly.zip解压后的Assembly文件夹所有内容拷贝至D:\RadAsm,HighLevel.zip解压后的HighLevel所有内容拷贝至D:\RadAsm,RadLNG的Language目录拷贝至D:\RadAsm中.

   3.2 配置RadAsm,添加masm模板

      添加masm等语言支持: RadAsm -> Option -> Progrmming Languages -> Add , 添加masm.ini,fasm.ini,nasm.ini,fasm.ini

      添加语言高亮支持: RadAsm -> Option -> Programming Languages -> Add , 添加bcc.ini,cpp.ini,lcc.ini,bcet.ini,dm.ini,fb.ini

   3.3 汉化

    RadAsm -> Option -> Language 选择简体中文

   3.4 代码编辑器中文乱码

   目前已经可以编写代码了,但是发现无法在输入中文,而且拷贝的中文也无法正常显示. 此时需要配置中文字体

   RadAsm -> Option -> Font Options -> Code Edit 选择中文字体微软雅黑, 并设置字符集 CHINESE_GB2312 

   3.5 设置库路径

  Option -> Set Paths, 设置App($A):d:\Masm32

  Option -> Envrionment Variables, 添加d:\Masm32\bin

  3.6 测试

  New Project -> masm (Win32 App), next ...

  

 

 

 

 

标签:汇编,Option,win32,RadAsm,ini,Test,MASM32,asm,搭建
From: https://blog.51cto.com/u_1923895/5939841

相关文章

  • 直播平台搭建源码,纯js实现编辑器撤消/重做
    直播平台搭建源码,纯js实现编辑器撤消/重做核心JS //基类varCore=function(){}Core.prototype={arrayPrevStep:[],//存放撤消操作方法列表arrayNextStep:[],/......
  • 搭建mongodb分片集群
            注意:mongos、config、shard三个角色的实例的keyfile内容保证完全一致: 如果搭建副本集时,出错,那么删掉     config副本集配置文件内容:使用mongod启动:[w......
  • 搭建git服务器和源码安装
    创建git用户和组groupadd-g11111gituseradd-md/home/git-g11111-u11111git 安装依赖包yuminstallcurl-develexpat-develgettext-developenssl-develzlib-d......
  • Linux基础第十一章:日志文件及如何使用rsyslog搭建小型日志服务器
    一、日志文件1、日志作用2、常用日志3、日志级别二、Rsyslog日志处理系统1、使用Rsyslog创建日志有点2、Rsyslog配置文件解析3、使用rsyslog将ssh服务的日志单独设......
  • 在 Linux 下搭建 Git 服务器
    目录​​①安装Git​​​​②服务器端创建git用户,用来管理Git服务,并为git用户设置密码​​​​③服务器端创建Git仓库​​​​④客户端clone远程仓库​​​......
  • 搭建Config Server高可用集群
    我们知道在微服务架构中有了ConfigServer配置中心之后就可以让我们从远程git仓库读取配置文件,以达到配置集中管理以及配合SpringCloudBus实现配置的自动刷新。但是如果......
  • Win32 GetLastError 获取函数执行的错误码
    函数说明   一般Win32函数执行出错,没有错误码返回的情况下,可以调用该函数尝试获取最后的错误信息。例子if(!SetLocalTime(&pst)){std::int64_tnRet=......
  • 搭建ogg双向复制时,oracle 19.16向oracle 10.2.0.4 ogg复制时报警OGG-01389、OGG-02246
    文档课题:搭建ogg双向复制时,oracle19.16向oracle10.2.0.4ogg复制时报警OGG-01389、OGG-02246处理记录.源端:IP192.168.133.103数据库oracle11.2.0.464位,实例名:or......
  • spring boot+ nginx 搭建简单的文件服务器,实现上传下载
    项目中用的文件服务的上传和下载访问的问题,由于疫情没有办法接入大的分布式是文件服务器中,自己就动手搭建一个文件服务器来nginx+springboot。实现的主要思路如下:springb......
  • redis5-cluster 集群搭建
    1、安装环境信息centos7redis52、整体集群信息#以直接在一台机器上实现上述的伪集群,因为端口号特意设置为不同的。#重点:不论机器多少,对于部署过程都是一样的,只不过是在不......