配置 UltraEdit 为 MASM32 的IDE

news/2024/7/5 20:58:07
  一段老文字,存此,权当存档。(主要是为 UE 的语法高亮文件 WordFile.txt 存档:)

  闲着没事,随意写一下怎样配置 UltraEdit,使之成为 MASM32 的IDE。


一、准备工作

  这里先假设:
    1. UltraEdit 安装在 C:Program FilesUltraEdit,我的是 10.0a 汉化版;
    2. MASM32 安装在 F:MASM32。


二、建立批处理

  先说说 MASM32 中一些命令的参数,初学者经常犯的一个错误是在编译连接的时候忘记添加库的路径。以下是
常用的命令简介,详细情况请参见相关的命令帮助。

  1. Ml.exe /c /coff /IMASM32Include x.asm
    以上参数请注意大小写;/I参数和路径之间没有空格。

  2. Rc.exe /iMASM32Include Resource.rc
    同上,注意参数/i。

  3. Link.exe /SUBSYSTEM:Console /LIBPATH:MASM32Lib %1.OBJ
    SUBSYSTEM 是目标文件的子系统类型,一般有 Windows 和 Console;/LIBPATH 是 lib 库文件的路径。

  建立一个符合自己的 编译连接批处理文件,比如我的为 MASM32ASMBAT.bat:


@ECHO OFF

IF NOT EXIST Masm32BinMl.Exe GOTO _NoMasm32

IF EXIST %1.obj DEL %1.obj
IF EXIST %1.asm MASM32BinMl.exe /IMASM32Include /c /coff %1.asm
IF EXIST Resource.rc GOTO _ExistRC
IF EXIST %1.obj MASM32BinLink.exe /SUBSYSTEM:Console /LIBPATH:MASM32Lib %1.obj
GOTO _Done

:_ExistRC
IF NOT EXIST Resource.res MASM32BinRc.exe /iMASM32Include Resource.rc
IF EXIST %1.obj MASM32BinLink.exe /SUBSYSTEM:Windows /LIBPATH:MASM32Lib %1.obj Resource.res

:_Done:
IF EXIST %1.obj DEL %1.obj
GOTO :_End

:_NoMasm32
ECHO Could not find "Masm32BinMl.Exe".

:_End


  上面的批处理请根据实际需要修改。当然,你也可以使用 MASM32 中自带的批处理文件,但是我觉得不方便。


三、配置 UltraEdit

  修改 UltraEdit 的语法高亮文件 Wordfile.txt,使之支持 ASM 语法高亮,附件中带有支持 ASM 语法高亮的
Wordfile.txt,用它覆盖 UltraEdit 自带的即可。

  打开 UltraEdit,从菜单“高级”->“工具配置”添加一条外部命令:


命令行:F:MASM32BINBW.BAT %N
工作目录:%P
菜单项名称:汇编连接(&B)
选定“保存活动文件”
选定“采集输出”
选定“输出到列表方块”
然后点“插入”


  以上 %N 代表当前打开文件的名称(不包括扩展名),%P 代表当前打开文件所在的目录,这些都是宏替换,
详细情况请参看 UltraEdit 的帮助。在“工具配置”的对话框中,还有“高级”按钮,里面可以自定义此命令的
图标。

  最后自定义 UltraEdit 的工具栏,添加“高级”菜单下面的“工具1”等到工具栏中,以后可以从工具栏中直
接执行这条命令。当然,也可以通过内置的热键调用这条命令:Ctrl+Shift+工具号。


下载附件: UEASM.rar,包括示例 BAT 文件和 UE 的语法高亮文件 WordFile.txt。

http://www.niftyadmin.cn/n/2559822.html

相关文章

Linux调试器-gdb使用、makefile、进度条及yum

一:gdb -g 向可执行程序中添加调试信息: 然后用gdp调试:gdb ./test -->run ->start run:运行程序 start:开始逐步调试; n 进行下一步调试(不进入函数); s 进行下一步调试(进入…

Intent中的各种FLAG

Task Task就是一个任务栈,里面用来存放Activity,第一个进去的(Activity)处于栈的最下面,而最后创建的(Activity)则处于栈的最上面。从Task中取出(Activity)是从最顶端取…

冯诺依曼体系、操作系统、进程(PCB,getpid(),fork)

首先,简画下各进程间关系: 一:冯诺依曼体系 硬件结构决定软件行为----数据信号流向,控制信号的流向。 当然对冯诺依曼体系的理解不能停留在概念上,需要深入对软件数据流的理解,接下里将会解释从我登上qq开…

LinearLayout 与RelativeLayout的区别

LinearLayout:是线性布局控件,它包含的子控件以横向或纵向的方式排列,超过边界时,某些控件将缺失或消失。 RelativeLayout:是相对布局,允许子元素指定以相对于父元素或兄弟元素的位置,这是实际布局中最常用的方式之一…

x86机器码识别及其反汇编算法

x86机器码识别及其反汇编算法x86体系结构CPU的每条指令都可能由以下六个域组成,并且它们在指令中的排列顺序是不能改变的。这六个域分别是:prefixescodeModR/MSIBdisplacementimmediate在任何一条指令中code域是必须出现的,其他的域都是可选的…

进程优先级、环境变量、虚拟地址空间

一:进程优先级 cpu分配资源的先后顺序即为进程的优先级; 优先级高的进程有优先执行权利。配置进程优先级对多任务环境的linux很有用,可以改善系统性能; 可以把进程运行到指定的cpu上,把不重要的进程安排到某个CPU&…

改造PE中的函数为导出函数

改造PE中的函数为导出函数 1、前言:为什么要这么做 很多时候,我们发现一个PE(EXE或DLL)中非常有用且功能独立的函数(call xxxxxxxx),并且已经知道了这个函数的各个入口参数的类型和具体含义,我们想在其他的软件中使用这个函数。于…

如何控制控件的可见性

在xml布局文件中 android:visibility"visible" android:visibility"invisible" android:visibility"gone" 在代码中 view.setVisibility(View.VISIBLE); view.setVisibility(View.INVISIBLE);//view不可见,占用空间 view.setVisib…