【x86汇编】第七章:上机操作
⽂章⽬录
DOS环境下运⾏汇编源程序
必备软件
DOS系统
编辑程序,记事本等待
宏汇编程序
符号交叉处理程序(可选)
16位段连接程序:LINK.EXE
库管理程序:LIB.EXE
16位段调试程序:TURBO DEBUG(TD.EXE)
运⾏宏汇编程序的流程
建⽴汇编源⽂件,扩展名为.ASM
汇编,产⽣⽬标⽂件(.OBJ),此过程是通过宏汇编程序MASM实现的
连接⽬标⽂件,建⽴可执⾏⽂件(.EXE),此过程是通过16位段的连接程序LINK实现的
运⾏可执⾏⽂件,直接键⼊⽂件名即可运⾏
编译执⾏的命令
简单⽅式
MASM TEST;
LINK TEST;
TEST
分号表⽰使⽤简单⽅式,不⽤提问,全部默认
调⽤宏汇编程序 MASM.EXE,汇编源⽂件为TEST.ASM,⽣成TEST.OBJ
调⽤连接程序 LINK.EXE,⽣成可执⾏⽂件 TEST.EXE
执⾏TEST.EXE⽂件
提问⽅式
不加分号,即可进⼊提问⽅式
汇编提出的问题:源⽂件名、⽬标⽂件名、是否建⽴汇编列表⽂件LST、是否建⽴符号交叉引⽤⽂件CRF
汇编列表⽂件LST可以打开看,符号交叉引⽤⽂件CRF则还需要经过交叉引⽤程序CREF.EXE进⾏处理,⽣成符号交叉列表⽂件EXAM.REF才能打开看
连接提出的问题:要连接的⽬标⽂件、产⽣的可执⾏⽂件名、是否建⽴地址分配⽂件、是否要连接⼦程序库
多模块程序的运⾏及⼦程序库的使⽤
多模块程序的运⾏
如果⼀个程序,由多个模块组成,应该分别汇编,⽣成⽬标模块,再由连接⽂件,⼀起⽣成可执⾏⽂件
简单⽅式
LINK A+B+C;
默认的可执⾏⽂件以A命名
提问⽅式
⽬标名、⽣成的可执⾏⽂件名、MAP⽂件名、是否连接⼦程序库
⼦程序库的使⽤
处理复杂问题时,往往需要把反复使⽤的⼦程序集合在⼀起,组成⼦程序库(.LIB)
提问⽅式
LIB的提⽰信息及回答
提⽰信息回答
Library name :要进⾏操作的库名Opration:命令字符及模块名或⽬标⽂件名
List file交叉引⽤列表⽂件名
库管理命令字符
命令字符功能
+把⽬标代码⽂件作为最后⼀个模块加⼊库中
-从库中删除⼀个模块
*从库中取出模块,写⼊⽬标⽂件中
;剩下的提⽰缺省值
&提⽰信息在⼀⾏内回答不下时,键⼊此字符将另起⼀⾏ctrl + c终⽌库管理操作
应⽤举例
例⼦:建⽴⼀个⼦程序库(WAN.LIB),将⼦模块QUEUE、F10T2、F2T10放⼊该库建⽴⼦模块的源⽂件
将⼦模块源⽂件分别汇编
调⽤LIB将⽬标⽂件加⼊库中,按提⽰操作
windows下运⾏汇编源程序的⽅法
32位汇编必备软件
Windows操作系统
源代码编辑程序
常量和结构体预定义头⽂件:WINDOWS.INC
常⽤的API函数声明头⽂件:KERNEL.INC,USER32.INC,GDI32.INC
引⼊库:KERNEL.LIB,USER32.LIB,GDI32.LIB
宏汇编程序6.11版本以上ML.EXE
预定义头⽂件:RESOURCE.H
资源编译器:RC.EXE和CVTRES.EXE
32位段符号交叉引⽤处理程序:CREF.EXE,⽤来处理符号交叉引⽤⽂件(.SBR),⽣成符号交叉列表⽂件(.REF),如果调⽤了系统API,⽣成的REF将会⼗分复杂
32位段连接程序LINK.EXE,连接COFF格式的⽬标⽂件
调用子程序的例子库管理程序LIB.EXE
32位段调试程序:TURBO DEBUG(TD32.EXE)
Windows环境汇编的特点
从提问⽅式,变为提供多种开关供⽤户选择
连接程序的交互也通过开关选择实现
当⽤户使⽤菜单、图标、对话框、快捷键和⼀些声图资源,需要单独写资源脚本⽂件,该⽂件经过资源编译器,编译成资源⽂件(.RES),再由CVTRES.EXE转换为.OBJ类型的⽂件,这时才能连接
开关可以通过 ML / ? 查询
常⽤的开关功能:
指令功能
/c表⽰只汇编不连接
/Fl汇编的同时⽣成列表⽂件
/FR汇编的同时⽣成符号交叉引⽤⽂件(.SBR)
/coff表⽰⽤coff格式产⽣⽬标⽂件
/Bl <;连接程序名><;源⽂件名>汇编连接同时进⾏
/Fm在连接时同时⽣成地址分配⽂件
/link<⼦程序库名>表⽰要连接⼦程序库
/LIBPATH当引⼊库与⽬标⽂件不在⼀个⼦⽬录中,⽤此开关指定路径
/
Cp告诉MASM不要更改⽤户标识符的⼤⼩写
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论