热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MASM32配置

本文主要介绍关于工具,windows,include,工作,汇编,string的知识点,对【MASM32配置】和【masm32怎么用】有兴趣的朋友可以看下由【xgy1016】投稿的技术文章,希望该技术

本文主要介绍关于工具,windows,include,工作,汇编,string的知识点,对【MASM32配置】和【masm32怎么用】有兴趣的朋友可以看下由【xgy1016】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的【】相关技术问题。

masm32怎么用

?现在不能上网,闲着没事,随意写一下怎样配置 UltraEdit,使之成为 MASM32 的IDE。


一、准备工作

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

二、建立批处理

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

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

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

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

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


@ECHO OFF

IF NOT EXIST /Masm32/Bin/Ml.Exe GOTO _NoMasm32

IF EXIST %1.obj DEL %1.obj
IF EXIST %1.asm /MASM32/Bin/Ml.exe /I/MASM32/Include /c /coff %1.asm
IF EXIST Resource.rc GOTO _ExistRC
IF EXIST %1.obj /MASM32/Bin/Link.exe /SUBSYSTEM:Console /LIBPATH:/MASM32/Lib %1.obj
GOTO _Done

:_ExistRC
IF NOT EXIST Resource.res /MASM32/Bin/Rc.exe /i/MASM32/Include Resource.rc
IF EXIST %1.obj /MASM32/Bin/Link.exe /SUBSYSTEM:Windows /LIBPATH:/MASM32/Lib %1.obj Resource.res

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

:_NoMasm32
ECHO Could not find "/Masm32/Bin/Ml.Exe".

:_End

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


三、配置 UltraEdit

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

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


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

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

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

?

;=========================================================

; MASM32

;=========================================================

/L6"ASM32" Nocase Line Comment = ; File ExtensiOns= ASM INC DEF
/Delimiters = ~!%&^*()-+=|//{}[]:;"'<> ,???????
/Function String = "^(%[a-zA-Z_@?$]+[ ^t]^)+proc+[ ^t^p]"
/C1"Opcodes"
aaa aad aam aas adc add and arpl
bound bsf bsr bswap bt btc btr
call cbw cwd cdq clc cld cli clts cmc cmova cmovae cmovb cmovbe cmovc cmove
cmovg cmovge cmovl cmovle cmovna cmovnae cmovnb cmovnbe cmovnc cmovne cmovng
cmovnge cmovnl cmovnle cmovno cmovnp cmovns cmovnz cmovo cmovpo cmovs comvz
cmp cmpsb cmpsd cmpxchg cmpxchg8b cpuid
daa das dec div dbld dbstp
emms enter
f2xm1 fabs fadd faddp fiadd fchs fclex fnclex fcmovb fcmove fcmovbe fcmovu
fcmovnb fcmovne fcmovnbe fcmovnu fcom fcomp fcompp fcomi fcomip fcos fdecstp
fdiv fdivp fidiv fdivr fdivrp fidivr ffree ficom ficomp fild fincstp finit fninit
fist fistp fld fld1 fldl2t fld2e fldpi fldlg2 fldln2 fldz fldcq fldenv
fmul fmulp fimul fnop fpatan fprem fprem1 fptan frndint frstor fsave fnsave
fscale fsin fsincos fsqrt fst fstp fstcw fnstcw fstenv fnstenv fstsw fnstsw fsub
fsubp fisub fsubr fsubrp fisubr ftst fucom fucomp fucompp fxam fxch fxtract
fyl2x fyl2xp1
hlt
idiv imul in inc ins int into invd invlpg iretd
ja jae jbe jc jecxz je jg jge jl jle jne jno jns jo
jpe jpo js ja jae jb jbe je jg jge jl jle jne jno jns jo
jpe jpo js jmp
lahf lar lds lea leave les lfs lgs lgdt lidt lldt lmsw
lock lods loop loope loopz loopne loopnz lsl lss ltr
mov movd movq movs movsx mul
neg nop not
or out outs
packsswb packssdw packuswb paddb paddw paddd paddsb paddsw paddusb paddusw
pand pandn pcmpeqb pcmpeqw pcmpeqd pcmpgtb pcmpgtw pcmpgtd pmaddwd pmulhw
pmullw pop popad popfd por psllw pslld psllq psraw psrad psrlw psrld psrlq
psubb psubw psubd psubsb psubsw psubusb psubusw punpckhbw punpckhwd
punpckhdq punpcklbw punpcklwd punpckldq push pushad pushfd pxor
rcl rcr rol ror rdmsr rdpmc rdtsc rep ret
setae setb sete setg setge setl setle setne setno setns seto setpe setpo
sets sgdt sidt shld shld shrd sldt smsw stc std sti str sub
stos cmps scas cmps ret rsm sahf sal sar shl shr sbb seta
test
ud2
verr verw
wait fwait wbinvd wrmsr
xadd xchg xlat xor
/C2"Registers"
al ah ax
bp bh bl bx
cl cx ecx ch
dl dx di dh
ecx edx ebx eax esp ebp esi edi
sp si st st(0) st(1) st(2) st(3) st(4) st(5) st(6) st(7)
mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7
xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7
/C3"Reserved words 1"
.CODE .CONST .CONTINUE .CREF
.DATA .DATA?
.ERR .ERRB .ERRNB .ERRDEF .ERRNDEF .ERRDIF .ERRIDN .ERRE .ERRNZ .ELSE .ELSEIF
.ENDIF .ENDW .UNTIL
.IF
.LIST .LISTALL .LISTIF .LISTMACRO .LISTMACROALL
.MODEL .NOLIST .NOLISTIF .NOLISTMACRO
.RADIX .REPEAT
.TFCOND
.WHILE
ALIGN ASSUME
BREAK
COMMENT CASEMAP
DOTNAME NODOTNAME
ECHO END ENDM EQU ENDP EXITM EXTERNDEF EXTERN EMULATOR EPILOGUE
EXPR16 EXPR32 ENDS ENDIF ENDW
FOR FORC
GOTO
IF INCLUDE INCLUDELIB INVOKE
LABEL LOCAL LJMP LANGUAGE
MACRO
NOREADONLY NOSCOPED NOLJMP NOEMULATOR NOKEYWORD NOSIGNEXTEND
OPTION OFFSET ORG
PROLOGUE PROC PROC PROTO PUBLIC PURGE PUSHCONTEXT POPCONTEXT
READONLY RECORD REPEAT
SCOPED SEGMENT STRUCT
TYPEDEF TEXTEQU
UNION USES
WHILE
/C4"Reserved words 2"
ADDR
BYTE
CATSTRINSTR
DUP DB DW DD DF DQ DT DWORD
FWORD
HIGH HIGHWORD
LOW LOWWORD LENGTHOF LENGTH LROFFSET
MASK
NULL
OFFSET OPATTR
PTR
QWORD
REAL4 REAL8 REAL10
SIZEOF SIZE SHORT SIZESTR SUBSTR SBYTE SWORD SDWORD STDCALL
THIS TYPE TBYTE
WIDTH WORD
/C5"Operators"
!
%
&
*
+
,
-
// /
>
=
<
|

?

?

本文《MASM32配置》版权归xgy1016所有,引用MASM32配置需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 本书详细介绍了在最新Linux 4.0内核环境下进行Java与Linux设备驱动开发的全面指南。内容涵盖设备驱动的基本概念、开发环境的搭建、操作系统对设备驱动的影响以及具体开发步骤和技巧。通过丰富的实例和深入的技术解析,帮助读者掌握设备驱动开发的核心技术和最佳实践。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • Linux 数据流重定向详解
    本文详细介绍了 Linux 系统中的数据流重定向技术,包括标准输出(stdout)、标准错误输出(stderr)和标准输入(stdin)的重定向方法,以及其在实际应用中的具体示例。 ... [详细]
  • 普通树(每个节点可以有任意数量的子节点)级序遍历 ... [详细]
  • 本文将介绍如何在混合开发(Hybrid)应用中实现Native与HTML5的交互,包括基本概念、学习目标以及具体的实现步骤。 ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • 本文详细介绍了如何在项目中引入和配置KindEditor网页编辑器,包括脚本引用、初始化编辑器以及文件上传功能的实现。 ... [详细]
  • 2022年2月 微信小程序 app.json 配置详解:启用调试模式
    本文将详细介绍如何在微信小程序的 app.json 文件中启用调试模式(debug),并通过实际案例展示其配置方法和应用场景。 ... [详细]
  • 安装 IIS 5.1 并注册 .NET 2.0 后,访问页面时出现 500 错误。本文提供详细的步骤和解决方案,帮助您解决该问题。 ... [详细]
  • Flutter 2.* 路由管理详解
    本文详细介绍了 Flutter 2.* 中的路由管理机制,包括路由的基本概念、MaterialPageRoute 的使用、Navigator 的操作方法、路由传值、命名路由及其注册、路由钩子等。 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 本文总结了JavaScript的核心知识点和实用技巧,涵盖了变量声明、DOM操作、事件处理等重要方面。例如,通过`event.srcElement`获取触发事件的元素,并使用`alert`显示其HTML结构;利用`innerText`和`innerHTML`属性分别设置和获取文本内容及HTML内容。此外,还介绍了如何在表单中动态生成和操作``元素,以便更好地处理用户输入。这些技巧对于提升前端开发效率和代码质量具有重要意义。 ... [详细]
author-avatar
leee
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有