masm6编译
1. 汇编语言MASM6.X三题编程
运行时在屏幕右上角显示时间,按任意键退出。
(不要问我任意键是哪个键哦^_^)
data segment
str db ' : : $'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
test:
mov ah,1
int 16h
jnz exit
mov ah,2
int 1ah
mov al,cl
mov ah,al
mov cl,4
shr ah,cl
or ah,30h
mov str+3,ah
and al,0fh
or al,30h
mov str+4,al
mov ah,ch
shr ah,cl
or ah,30h
mov str,ah
and ch,0fh
or ch,30h
mov str+1,ch
mov ah,dh
shr ah,cl
or ah,30h
mov str+6,ah
and dh,0fh
or dh,30h
mov str+7,dh
mov dh,0
mov dl,72
mov ah,2
int 10h
lea dx,str
mov ah,9
int 21h
jmp test
exit:
mov ah,4ch
int 21h
code ends
end start
2. masm 6.15怎么用刚学汇编,求回答。
就你的操作,接下来几步应该可以帮你实现你需要的效果。
1.启动你子创建的CMD窗体(即你重新命名为masm615的快捷方式)
2.在启动后弹出的黑色DOS命令提示符下输入"masm 文件名.asm"(文件名为你创建的asm文件前缀名称,另外要注意的是如果你的asm文件编译时需要的其他资源文件需要和该文件存放在同一路径)
3.当你执行完第2步后会有一个"文件名.obj“文件被创建,存放于你安装Masm 6.15的文件夹下
4.继续在命令提示符下输入”link 文件名.obj“然后会提示信息,如果没有特殊需求可以点击回车键忽略
5.第4步完成后会有一个”文件名.exe“文件被创建,存放于你安装Masm 6.15的文件夹下
注:
如果你的asm文件没有错误,那么该exe文件可以直接运行,反之则可能根本就不会被创建;另外值得提醒的是有部分程序顺利执行完成后将直接退出(比如网上流传的”Hello word“程序),此时你可以右键点击该exe文件,在弹出的属性窗体上选择”程序“选项卡,可以找到一个”退出时关闭“的复选框,去掉前面的勾选。如上步骤本人完成了一次完整的操作,具体点的参数可到我空间看一篇名叫《汇编程序masm.exe及link.exe的参数》文章,祝君好运。
3. 为什么用masm编译源程序文件老是出现Unable to open input file
unabletoopeninputfile这个错误,是汇编时找不到源文件。执行MASM汇编命令(或ML)时,需要指定你的.asm的源程序文件。这个文件,若在你执行命令的当前目录中,可以不加路径。若文件不在当前目录里,必须要加上源文件的路径。当然,若你打错了文件名,也会找不到文件,出现这个提示。==================对问题补充的回复:在DOSBOX中,只有mount过的盘符才存在。也就是说,你的DOSBOX里,只有C:盘,不存在D:盘。你指定D:\.这样的文件,是找不到的。如果在windows里,你的源程序是D:\Myassembly\tt\aa.ASM,那么,在你的DOSBOX里,文件应当使用C:\tt\aa.ASM来访问。
4. 怎样用masm6.0
汇编没有专门的调试平台。所以不像高级语言那么容易上手。 你可以看看这个软件,也许能满足你的要求。http://www.ote.com/soft/3539.html 下面是编译链接选项(ML的帮助信息):/AT Enable tiny model (.COM file) /omf generate OMF format object file
/Bl<linker> Use alternate linker /Sa Maximize source listing
/c Assemble without linking /Sc Generate timings in listing
/Cp Preserve case of user identifiers /Sf Generate first pass listing
/Cu Map all identifiers to upper case /Sl<width> Set line width
/Cx Preserve case in publics, externs /Sn Suppress symbol-table listing
/coff generate COFF format object file /Sp<length> Set page length
/D<name>[=text] Define text macro /Ss<string> Set subtitle
/EP Output preprocessed listing to stdout /St<string> Set title
/F <hex> Set stack size (bytes) /Sx List false conditionals
/Fe<file> Name executable /Ta<file> Assemble non-.ASM file
/Fl[file] Generate listing /w Same as /W0 /WX
/Fm[file] Generate map /WX Treat warnings as errors
/Fo<file> Name object file /W<number> Set warning level
/FPi Generate 80x87 emulator encoding /X Ignore INCLUDE environment path
/Fr[file] Generate limited browser info /Zd Add line number debug info
/FR[file] Generate full browser info /Zf Make all symbols public
/G<c|d|z> Use Pascal, C, or Stdcall calls /Zi Add symbolic debug info
/H<number> Set max external name length /Zm Enable MASM 5.10 compatibility
/I<name> Add include path /Zp[n] Set structure alignment
/link <linker options and libraries> /Zs Perform syntax check only
/nologo Suppress right message
5. 汇编语言编译器的MASM编译器介绍
MASM是Microsoft公司推出的汇编编译器。它的版本从低到高经过了很多次的升级(微软的通病,升级补丁多如牛毛)。每次升级除了例行的错误修正外都增加了一些新的功能,以至于到最后高版本和低版本的语法和功能相差很多,向下兼容性也不好。低版本的MASM固然无法编译高版本的源程序,但高版本的MASM也可能无法正常编译低版本的源程序,如MASM 4.0写的源程序常常无法在MASM 6.x上编译成功。在使用MASM系列编译器时,如果不先搞清楚特定的语法和编译选项可以在哪个版本上用,编译中就会错误连篇。所以在这里有必要了解一下MASM各版本的演变过程
下表列出了不同版本MASM编译器的区别。
版 本
简 介
MASM 4.00
这是最先广泛使用的一个MASM版本,适用于DOS下的汇编编程。它很精巧,但使用起来不是很智能化,需要用户自己一板一眼地写出所有的东西。很多教科书上讲的8086汇编语法都是针对这个版本的,对程序员来说。它只比用Debug方便一点点。
MASM 5.00
MASM 5.00比4.00在速度上快了很多,并将段定义的伪指令简化为类似 .code与.data之类的定义方式,同时增加了对80386处理器指令的支持,对4.00版本的兼容性很好
MASM 5.10
对程序员来说,这个版本最大的进步是增加了对@@标号的支持。这样,程序员可以不再为标号的起名花掉很多时间。另外,MASM 5.10增加了对OS/2 1.x的支持
MASM 5.10B
1989年推出,比上一个版本更稳定、更快,它是传统的DOS汇编编译器中最完善的版本
MASM 6.00
1992年发布,有了很多的改进。编译器可以使用扩展内存,这样可以编译更大的文件,可执行文件名相应从Masm.exe改为Ml.exe。从这个版本开始可以在命令行上用*.asm同时编译多个源文件,源程序中数据结构的使用和命令行参数的语法也更像C的风格。最大的改进之一是开始支持 .if/.endif这样的高级语法,这样,使用复杂的条件分支时和用高级语言书写一样简单,可以做到几千行的代码中不定义一个标号;另外增加了invoke伪指令来简化带参数的子程序调用。这两个改进使汇编代码的风格越来越像C,可读性和可维护性提高了很多
MASM6.00A
未发售的版本
MASM 6.00B
最后一个支持OS/2的MASM版本,修正了上一版本中的一些错误
MASM 6.10
修正了一些错误,同时增加了/Sc选项,可以在产生的list文件中列出每条指令使用的时钟周期数
MASM6.10A
1992年发布,修正了一些内存管理方面的问题
MASM 6.11
1993年11月发布,支持Windows NT,可以编写Win32程序,同时支持Pentium指令,但不支持MMX指令集
MASM6.11C
1994年发布,增加了对Windows 95 VxD的支持
MASM 6.12
1997年8月发布,增加 .686,.686P,.MMX声明和对相应指令的支持
MASM 6.13
1997年12月发布,增加了 .K3D声明,开始支持AMD处理器的3D指令
MASM 6.14
这是一个很完善的版本,它在 .XMM中增加了对Pentium III的SIMD指令集的支持,相应增加了OWORD(16字节)的变量类型
MASM 6.15
6. masm6.11 怎样编译出com文件
程序中用简化段定义伪指令
.TINY
这种模型会生成.com,程序不能超过64K
主程序为NEAR型,因为只有一个64K的段
这个版本用的不多,具体不大清楚,书上说要注意大小写,AT是大写.
7. 怎么编译连接16位的汇编程序
如果是写16位汇编,下载masm5.0(微软的16位宏汇编包),网络一下就有下载!使用masm.exe编译16位汇编源代码生成*.obj文件,在用link.exe连接生成16位可执行文件*.exe。在32位机器上是可以写16位程序的,因为x86的计算机体系就是为了兼容低阶程序而存在的,计算机在启动的时候就是以实模式(可以简单理解为16位的)启动的,之后操作系统才使用机器指令转向32位保护模式(因为这样从硬件级支持多任务)。编写16位、32位、以及64位汇编程序只要下载安装相应的汇编包就可以了。
8. 用masm编译汇编程序怎么产生OBJ文件和EXE文件
开始--运行--输入cmd,打开的窗口就是模拟的DOS
不是直接打开masm.exe,在DOS下打开
debug用来调试的,使用的方法 debug 文件名.exe
用它把exe文件载入内存,有U命令查看每一条指令
用T命令一步步执行每一条指令,查看寄存器的变化
1、下载个masm5.0(简单,适合初学者),里面至少应包含masm.exe和link.exe,可能还包含其他的,不过我们只需要最基本的这两个。
2、将masm5.0压缩包里的程序解压(包含masm.exe和link.exe),放到一个目录中(如D:\masm),然后就在这个目录下建立个文本文件(如XX.txt)写入个汇编程序,保存,将后缀名改为XX.asm。
3、进入命令提示行(开始--运行--输入cmd)
4、进入程序所在文件夹(用dos的cd命令),以2中的为例,键入“d:”,回车,键入“cd masm”,回车,键入“masm XX”,回车3下,键入“link XX”,再回车3下,再键入“XX”,就运行完了。
补充:
1、若程序有问题,在4步骤中会提示,这时就要返回修改
2、如果程序本身并不显示输出结果,则4步骤运行完后也不会看到什么反应,初学者建议找个有显示输出结果的程序做试验
3、第二个步骤中,试验程序xx.asm应当和masm.exe link.exe放在一起,若不再一起,则需要添加masm环境变量。
9. 什么是MASM
怎么说呢,MASM是汇编语言的调试工具吧,我是这样理解的.
自二十世纪80年代初 Microsoft 公司推出 MASM 1.0 以来,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4指令系统。
MASM 4.0支持80286/80287的处理器和协处理器;MASM 5.0支持80386/80387处理器和协处理器,并加进了简化段伪定义指令和存储模式伪指令,汇编和连接的速度更快。
MASM 6.0是1991年推出的,支持80486处理器,它对MASM 进行重新组织,并提供了许多类似高级语言的新特点。MASM 6.0之后又有一些改进,微软又推出MASM 6.11,利用它的免费补丁程序可以升级到MASM 6.14,支持到Pentium III指令系统。
MASM 6.x安装文件(链接下载文件MASM611FULL.ZIP)包含在5张软盘上,在DOS(或Windows的MS-DOS模拟环境)下,运行第一张盘上的SETUP.EXE程序就可以开始安装,通常选择在MS-DOS / Microsoft Windows操作系统下使用MASM。
一个MASM汇编系统,主要包含如下内容:
• MASM 6.15的汇编程序ML.EXE和配套的汇编错误信息文件ML.ERR,连接程序LINK.EXE,子程序库管理文件LIB.EXE;
• CV目录下的CodeView调试程序CV.EXE以及配套的库文件;
• HELP目录下的快速帮助文件QH.EXE,以及MASM宏汇编语言、汇编程序ML、连接程序LINK、调试程序CV等所有帮助文件;
• 本书作者为方便操作建立的批处理文件、I/O子程序库等。书中例题程序文件也可以建立在某个子目录(例如HBYYLT)下。
10. 什么是masm汇编工具包
MASM32是一个由个人开发的包含了不同版本工具组
masm32书写记录建的汇编开发工具包。它的汇编编译器是MASM6.0以上版本中的Ml.exe,资源编译器是Microsoft
Visual
Studio中的Rc.exe,32位链接器是Microsoft
Visual
Studio中的Link.exe,同时包含有其他的一些如Lib.exe和DumpPe.exe等工具。该工具是由Steve
Hutchesson开发的。
完整的MASM汇编系统包含很多文件,但最基本的有如下几个:
ML.EXE
汇编程序
ML.ERR
汇编错误信息文件
DOSXNT.EXE
MS-DOS扩展文件
LINK.EXE
连接文件
LIB.EXE
子程序库管理文件
如果采用集成开发环境PWB,主要涉及如下文件:
PWWB.EXE
程序员工作平台
NMAKER.EXE
工程维护程序
NMAKE.EXE
nmaker的MS-DOS扩展驱动程序
CV.EXE
源代码调试器CodeView
CVPACK.EXE
调试信息压缩器,它为CODEVIEW准备一个可执行文件
HELPMAKE.EXE
帮助文件维护程序
BSCMAKE.EXE
浏览数据库创建程序
SBRPACK.EXE
浏览信息程序
PWBRMAKE.EXE
BSCMAKE兼容驱动程序
*.MXT
各种PWB扩展工具文件
*.XXT
各种语言的PWB扩展文件