精华内容
下载资源
问答
  • MASM使用教程

    2015-05-25 11:02:56
    MASM汇编软件的使用的简单介绍。微机原理课程用到
  • masm使用教程 教程

    2011-05-31 13:59:21
    masm使用教程1、 学习如何安装MASM; 2、 学习如何使用和使用编译和链接汇编语言程序。
  • Masm32使用教程

    2012-03-17 20:41:52
    Masm32使用教程详细描述了Masm32基本使用方法、思路,本人认为较好
  • MASM32使用教程

    2017-06-01 11:51:00
    代码如果你在用汇编语言来开发windows下的...1、基本使用方法如何在MASM32中建立、汇编、链接源程序文件和运行生成的可执行文件。 2、如何开启MASM32的在线帮助功能 3、汉化QEDITOR菜单 一、基本使用方法以在C:\...

    代码如果你在用汇编语言来开发windows下的程序的话,MASM32是很好的选择。

    (Masm32下载地址请用google搜索罢。)

    工欲善其事,必先利其器。

    本文主要针对masm32 v8来说明三点:

    1、基本使用方法
    如何在MASM32中建立、汇编、链接源程序文件和运行生成的可执行文件。

    2、如何开启MASM32的在线帮助功能

    3、汉化QEDITOR菜单

    一、基本使用方法
    以在C:\PWIN951\TEMP文件夹下建立TEST.ASM和生成TEST.EXE为例.

    安装好MASM32后,打开“资源管理器”或“我的电脑”,进入MASM32所在文件夹(假设为C:\MASM32),双击QEDITOR.EXE
    的图标,这就进入了MASM32的集成开发环境。

    1.[这一步是可选的,以下可选的步骤均简称为“可选”] 输入资源文件, 然后使用菜单栏上的菜单File -> Save 或 快捷工具栏中的代表存盘功能的磁盘状图标,第一次需要输入文件名,注意要指定扩展名 .RC并存盘,注意如果是在集成环境中编译此资源文件,文件名必须是RSRC.RC(大小写均可)。

    2.[可选] 编译资源文件。使用菜单栏上的菜单Project -> Compile Resource File。这时系统会打开一个DOS窗口运行相关的批处理文件,并报告结果。

    若不编译成功,信息为(具体错误信息因错误而异):

    Microsoft (R) Windows (R) Resource Compiler, Version 5.00.1823.1 - Build 1823
    Copyright (C) Microsoft Corp. 1985-1998. All rights reserved.

    Using codepage 936 as default
    Creating rsrc.RES
    RC: RCPP -CP 936 -f C:\PWIN951\TEMP\RCa83947 -g C:\PWIN951\TEMP\RDa83947 -DRC_IN VOKED -D_WIN32 -pc\:/ -E -I. -I .

    rsrc.rc.

    rsrc.rc (1): error RC2135 : file not found: MAINICON.ICO.
    Writing MENU:600, lang:0x409, size 128
    Microsoft (R) Windows Resource To Object Converter Version 5.00.1736.1
    Copyright (C) Microsoft Corp. 1992-1997. All rights reserved.

    CVTRES : fatal error CVT1101: cannot open rsrc.res for reading
    Press any key to continue . . .

    其中给出了出错语句的行号,错误类型代码及错误信息。
    按任一键结束,再关闭此DOS窗口,并按错误信息修改资源文件,存盘后,重新编译。

    技巧小提示: 在qeditor.exe中,按Ctlr+G可跳到指定的行

    直到显示如下成功信息:

    Microsoft (R) Windows (R) Resource Compiler, Version 5.00.1823.1 - Build 1823
    Copyright (C) Microsoft Corp. 1985-1998. All rights reserved.

    Using codepage 936 as default
    Creating rsrc.RES
    RC: RCPP -CP 936 -f C:\PWIN951\TEMP\RCa81843 -g C:\PWIN951\TEMP\RDa81843 -DRC_IN
    VOKED -D_WIN32 -pc\:/ -E -I. -I .

    rsrc.rc.
    Writing MENU:600, lang:0x409, size 128
    Microsoft (R) Windows Resource To Object Converter Version 5.00.1736.1
    Copyright (C) Microsoft Corp. 1992-1997. All rights reserved.

    Press any key to continue . . .

    说明生成了rsrc.RES和rsrc.obj文件,按任一键结束,再关闭此DOS窗口。

    ⒊输入源程序,然后使用菜单栏上的菜单File -> Save 或 快捷工具栏中的代表存盘功能的磁盘状图标,第一次需要输入文件名,注意要指定扩展名 .ASM[本例中为C:\PWIN951\TEMP\TEST.ASM]。

    ⒋汇编源程序。使用菜单栏上的菜单Project -> Assemblier ASM file。这时系统会打开一个DOS窗口运行相关的批处理文件。结束后会弹出一个名为“\masm32\bin\asmbl.txt”的窗口报告结果。

    若汇编不成功,则显示信息如下(具体错误信息因错误而异):

    Assembling: C:\PWIN951\TEMP\test.asm
    C:\PWIN951\TEMP\test.asm(60) : error A2006: undefined symbol : NULL
    C:\PWIN951\TEMP\test.asm(60) : error A2114: INVOKE argument type mismatch : argument : 1

    Volume in drive C is LIU 
    Volume Serial Number is 4061-17D7
    Directory of C:\PWIN951\TEMP

    TEST ASM 8,402 06-05-02 19:29 test.asm
    file(s) 13,010 bytes
    dir(s) 24,403,968 bytes free
    其中包括了详细出错信息。如

    C:\PWIN951\TEMP\test.asm(60) : error A2006: undefined symbol : NULL

    C:\PWIN951\TEMP\test.asm 为源程序文件的文件说明符
    (60) 其中60为源程序中引起错误的语句的行号
    error A2006 A2006为错误类型代号
    undefined symbol : NULL 为具体错误信息

    这时应按这些信息修改源程序中相应行,存盘后重新汇编。直至窗口显示如下成功信息:

    Assembling: C:\PWIN951\TEMP\test.asm

    Volume in drive C is LIU 
    Volume Serial Number is 4061-17D7
    Directory of C:\PWIN951\TEMP

    TEST ASM 8,401 06-05-02 19:34 test.asm
    TEST OBJ 3,720 06-05-02 19:35 test.obj
    file(s) 16,729 bytes
    dir(s) 22,298,624 bytes free

    其中包括了新生成的目标文件TEST.OBJ的有关信息。


    ⒌链接目标文件。使用菜单栏上的菜单Project -> Link OBJ file。这时系统会打开一个DOS窗口运行相关的批处理文件,并弹出名为“\masm32\bin\lnk.txt”的窗口报告结果如下:

    Volume in drive C is LIU 
    Volume Serial Number is 4061-17D7
    Directory of C:\PWIN951\TEMP

    TEST ASM 8,401 06-05-02 19:34 test.asm
    TEST OBJ 3,720 06-05-02 19:35 test.obj
    TEST EXE 4,608 06-05-02 19:38 test.exe
    file(s) 16,729 bytes
    dir(s) 24,395,776 bytes free

    其中包括新生成的可执行文件TEST.EXE的有关信息.


    注:没有找到资源文件不属于错误,因此如果你的程序使用了窗口,汇编和链接均顺利完成,但运行时却看不到程序窗口,很可是你将窗口信息放在资源文件中,但资源文件尚未编译或编译没有成功。

    ⒍ 运行生成的可执行文件.使用菜单栏上的菜单Project -> Run program。

    看到程序运行的结果了吗?

    如果你的程序使用了窗口,但运行时看不到窗口,很可能是你将窗口信息放在资源文件中,但资源文件尚未编译或编译没有成功。

    总之,要注意的是,对源程序文件或资源文件修改后一定要先存盘,然后再进行后继操作,否则错误依旧。

    Project菜单中其它菜单项的功能和用法:

    Assemble & Link 汇编源程序并链接,适用于资源文件未修改,但修改了源程序的情况
    Build All 编译资源文件,汇编源程序并链接,适用于资源文件和源程序均修改的情况


    Console Link OBJ File 汇编控制台型源程序
    &Console Assemble Link 汇编并链接控制台型源程序
    Console Build All 生成控制台可执行程序


    二、开启MASM32的在线帮助功能
    在用MASM32编写程序时,大量使用了WINDOWS API函数,众多的函数不同的参数我们很难记住,只能现用现查。

    MASM32提供了在线帮助功能,但必须进行相应设置,才能“招之即来”。

    在QEDITOR中按功能键 F1 ,弹出对话框,帮助文件?.Hlp没找到?怎么办?跟我做:

    选择菜单TOOLS -> Change Editor settings,弹出名为“Change Quick Editor settings”的窗口,从Double Click Item to Edit下的列表框中找到“F1 Help File = ?.hlp”项,刚才我们看到的?.hlp就在其中,原来MASM32不知我们的帮助文件放在何处,所以只能由我们用户自己来指定位置。

    双击这一项,弹出一个对话框,直接输入我们所用的帮助文件的文件说明符,[如我的是“C:\PWIN951\HELP\WIN32.HLP”,是DLEPHI附带的。],或则单击"Browse..."按钮从选择文件对话框中选择。做完后单击"Save"按钮,然后关闭此窗口。

    重新启动QEDITOR,将光标定位在一个API函数名,如MessageBox上,按下功能键 F1, 帮助信息出来了吧!


    注意:修改设置后要重新启动QEDITOR,新的设置才起作用。


    三、汉化QEDITOR菜单

    QEDITOR的菜单内容保存在文件QEDITOR.INI中,将其中的菜单项文本改为中文,就完成汉化了(当然你要使用中文版的WINDOWS)。

    由于QEDITOR.INI是非常重要的文件,所以修改前一定要备份,修改时也要小心。下面是我将其中对应Project菜单的菜单项文本的汉化后的内容。


    ; --------------------------------------------------------
    ; Do not edit this file manually, the sequence of settings
    ; must be in the correct order and it must have the correct
    ; number of settings otherwise the editor may not function
    ; properly.
    ; --------------------------------------------------------

    [editor settings]
    MASM32 Version 6
    command.com
    1
    4
    2
    80
    *
    *
    *
    *
    \pwin951\help\win32.hlp
    [menu settings]
    ;------------------------------------------------------------
    ; File paths should have the drive added so that the relative
    ; paths become absolute paths. This allows the tools to be
    ; accessed from different drives on the computer.
    ; -----------------------------------------------------------

    [&R工程]
    &R 编译资源文件,\MASM32\BIN\Bres.bat {b}
    &A 汇编源程序文件,\MASM32\BIN\Assmbl.bat {b}
    -
    &L 链接目标文件,\MASM32\BIN\Lnk.bat {b}
    汇编源程序并链接目标文件,\MASM32\BIN\Build.bat {b}
    &B 编译资源文件、汇编源程序并链接目标文件,\MASM32\BIN\Bldall.bat {b}
    运行 &Makeit.bat 生成可执行文件,makeit.bat
    -
    &O 链接控制台目标文件,\MASM32\BIN\Lnkc.bat {b}
    &C 汇编和链接控制台文件,\MASM32\BIN\Buildc.bat {b}
    &A 一步生成控制台可执行文件,\MASM32\BIN\Bldallc.bat {b}
    -
    &R 运行程序,{b}.exe

    [&Tools]

    转载于:https://www.cnblogs.com/yangmingyu/p/6928143.html

    展开全文
  • Masm使用教程

    千次阅读 2017-11-03 14:11:52
    如果你在用汇编语言来开发windows下的程序的话,MASM32是很好的...1、基本使用方法 如何在MASM32中建立、汇编、链接源程序文件和运行生成的可执行文件。 2、如何开启MASM32的在线帮助功能 3、汉化QEDITOR菜单
    如果你在用汇编语言来开发windows下的程序的话,MASM32是很好的选择。

    (Masm32下载地址请用google搜索罢。)

    工欲善其事,必先利其器。

    本文主要针对masm32 v8来说明三点:

    1、基本使用方法
    如何在MASM32中建立、汇编、链接源程序文件和运行生成的可执行文件。

    2、如何开启MASM32的在线帮助功能

    3、汉化QEDITOR菜单

    一、基本使用方法
    以在C:\PWIN951\TEMP文件夹下建立TEST.ASM和生成TEST.EXE为例.

    安装好MASM32后,打开“资源管理器”或“我的电脑”,进入MASM32所在文件夹(
    假设为C:\MASM32),双击QEDITOR.EXE
    的图标,这就进入了MASM32的集成开发环境。

    1.[这一步是可选的,以下可选的步骤均简称为“可选”] 输入资源文件, 然后使用菜单栏上的菜单File -> Save 或 快捷工具栏中的代表存盘功能的磁盘状图标,第一次需要输入文件名,注意要指定扩展名 .RC并存盘,注意如果是在集成环境中编译此资源文件,文件名必须是RSRC.RC(大小写均可)。

    2.[可选] 编译资源文件。使用菜单栏上的菜单Project -> Compile Resource File。这时系统会打开一个DOS窗口运行相关的批处理文件,并报告结果。

    若不编译成功,信息为(具体错误信息因错误而异):

    Microsoft (R) Windows (R) Resource Compiler, Version 
    5.00.1823.1 - Build 1823
    Copyright (C) Microsoft Corp. 
    1985-1998. All rights reserved.

    Using codepage 
    936 as default
    Creating rsrc.RES
    RC: RCPP -CP 936 -f C:\PWIN951\TEMP\RCa83947 -g C:\PWIN951\TEMP\RDa83947 -DRC_IN VOKED -D_WIN32 -pc\:/ -E -I. -I .

    rsrc.rc.

    rsrc.rc (
    1): error RC2135 : file not found: MAINICON.ICO.
    Writing 
    MENU:600lang:0x409, size 128
    Microsoft (R) Windows Resource To Object Converter Version 
    5.00.1736.1
    Copyright (C) Microsoft Corp. 
    1992-1997. All rights reserved.

    CVTRES : fatal error 
    CVT1101: cannot open rsrc.res for reading
    Press any key to continue . . .

    其中给出了出错语句的行号,错误类型代码及错误信息。
    按任一键结束,再关闭此DOS窗口,并按错误信息修改资源文件,存盘后,重新编译。

    技巧小提示: 在qeditor.exe中,按Ctlr+G可跳到指定的行

    直到显示如下成功信息:

    Microsoft (R) Windows (R) Resource Compiler, Version 
    5.00.1823.1 - Build 1823
    Copyright (C) Microsoft Corp. 
    1985-1998. All rights reserved.

    Using codepage 
    936 as default
    Creating rsrc.RES
    RC: RCPP -CP 936 -f C:\PWIN951\TEMP\RCa81843 -g C:\PWIN951\TEMP\RDa81843 -DRC_IN
    VOKED -D_WIN32 -pc\:/ -E -I. -I .

    rsrc.rc.
    Writing 
    MENU:600lang:0x409, size 128
    Microsoft (R) Windows Resource To Object Converter Version 
    5.00.1736.1
    Copyright (C) Microsoft Corp. 
    1992-1997. All rights reserved.

    Press any key to continue . . .

    说明生成了rsrc.RES和rsrc.obj文件,按任一键结束,再关闭此DOS窗口。

    ⒊输入源程序,然后使用菜单栏上的菜单File -> Save 或 快捷工具栏中的代表存盘功能的磁盘状图标,第一次需要输入文件名,注意要指定扩展名 .ASM[
    本例中为C:\PWIN951\TEMP\TEST.ASM]。

    ⒋汇编源程序。使用菜单栏上的菜单Project -> Assemblier ASM file。这时系统会打开一个DOS窗口运行相关的批处理文件。结束后会弹出一个名为“\masm32\bin\asmbl.txt”的窗口报告结果。

    若汇编不成功,则显示信息如下(具体错误信息因错误而异):

    Assembling: C:\PWIN951\TEMP\test.asm
    C:\PWIN951\TEMP\test.asm(60) : error A2006: undefined symbol : NULL
    C:\PWIN951\TEMP\test.asm(60) : error A2114: INVOKE argument type mismatch : argument : 1

    Volume 
    in drive C is LIU 
    Volume Serial Number is 
    4061-17D7
    Directory of 
    C:\PWIN951\TEMP

    TEST ASM 8,402 06-05-02 19:29 test.asm
    1 file(s) 13,010 bytes
    0 dir(s) 24,403,968 bytes free
    其中包括了详细出错信息。如

    C:\PWIN951\TEMP\test.asm(60) : error A2006: undefined symbol : NULL



    C:\PWIN951\TEMP\test.asm 为源程序文件的文件说明符
    (
    60) 其中60为源程序中引起错误的语句的行号
    error A2006 A2006为错误类型代号
    undefined symbol : NULL 为具体错误信息

    这时应按这些信息修改源程序中相应行,存盘后重新汇编。直至窗口显示如下成功信息:

    Assembling: C:\PWIN951\TEMP\test.asm

    Volume 
    in drive C is LIU 
    Volume Serial Number is 
    4061-17D7
    Directory of 
    C:\PWIN951\TEMP

    TEST ASM 8,401 06-05-02 19:34 test.asm
    TEST OBJ 3,720 06-05-02 19:35 test.obj
    2 file(s) 16,729 bytes
    0 dir(s) 22,298,624 bytes free

    其中包括了新生成的目标文件TEST.OBJ的有关信息。


    ⒌链接目标文件。使用菜单栏上的菜单Project -> Link OBJ file。这时系统会打开一个DOS窗口运行相关的批处理文件,并弹出名为“\masm32\bin\lnk.txt”
    的窗口报告结果如下:

    Volume 
    in drive C is LIU 
    Volume Serial Number is 
    4061-17D7
    Directory of 
    C:\PWIN951\TEMP

    TEST ASM 8,401 06-05-02 19:34 test.asm
    TEST OBJ 3,720 06-05-02 19:35 test.obj
    TEST EXE 4,608 06-05-02 19:38 test.exe
    3 file(s) 16,729 bytes
    0 dir(s) 24,395,776 bytes free

    其中包括新生成的可执行文件TEST.EXE的有关信息.


    注:没有找到资源文件不属于错误,因此如果你的程序使用了窗口,汇编和链接均顺利完成,但运行时却看不到程序窗口,很可是你将窗口信息放在资源文件中,但资源文件尚未编译或编译没有成功。

    ⒍ 运行生成的可执行文件.使用菜单栏上的菜单Project -> Run program。

    看到程序运行的结果了吗?

    如果你的程序使用了窗口,但运行时看不到窗口,很可能是你将窗口信息放在资源文件中,但资源文件尚未编译或编译没有成功。

    总之,要注意的是,对源程序文件或资源文件修改后一定要先存盘,然后再进行后继操作,否则错误依旧。

    Project菜单中其它菜单项的功能和用法:

    Assemble & Link 汇编源程序并链接,适用于资源文件未修改,但修改了源程序的情况
    Build All 编译资源文件,汇编源程序并链接,适用于资源文件和源程序均修改的情况


    Console Link OBJ File 汇编控制台型源程序
    &Console Assemble Link 汇编并链接控制台型源程序
    Console Build All 生成控制台可执行程序 


    二、开启MASM32的在线帮助功能
    在用MASM32编写程序时,大量使用了WINDOWS API函数,众多的函数不同的参数我们很难记住,只能现用现查。

    MASM32提供了在线帮助功能,但必须进行相应设置,才能“招之即来”。

    在QEDITOR中按功能键 F1 ,弹出对话框,帮助文件?.Hlp没找到?怎么办?跟我做:

    选择菜单TOOLS -> Change Editor settings,弹出名为“Change Quick Editor settings”的窗口,从Double Click Item to Edit下的列表框中找到“F1 Help File = ?.hlp”项,刚才我们看到的?.hlp就在其中,原来MASM32不知我们的帮助文件放在何处,所以只能由我们用户自己来指定位置。

    双击这一项,弹出一个对话框,直接输入我们所用的帮助文件的文件说明符,[如我的是“
    C:\PWIN951\HELP\WIN32.HLP”,是DLEPHI附带的。],或则单击"Browse..."按钮从选择文件对话框中选择。做完后单击"Save"按钮,然后关闭此窗口。

    重新启动QEDITOR,将光标定位在一个API函数名,如MessageBox上,按下功能键 F1, 帮助信息出来了吧! 


    注意:修改设置后要重新启动QEDITOR,新的设置才起作用。


    三、汉化QEDITOR菜单

    QEDITOR的菜单内容保存在文件QEDITOR.INI中,将其中的菜单项文本改为中文,就完成汉化了(当然你要使用中文版的WINDOWS)。

    由于QEDITOR.INI是非常重要的文件,所以修改前一定要备份,修改时也要小心。下面是我将其中对应Project菜单的菜单项文本的汉化后的内容。


    ; --------------------------------------------------------
    ;
     Do not edit this file manually, the sequence of settings
    ;
     must be in the correct order and it must have the correct
    ;
     number of settings otherwise the editor may not function
    ;
     properly.
    ;
     --------------------------------------------------------

    [editor settings]
    MASM32 Version 
    6
    command.com
    0
    1
    1
    4
    2
    2
    76
    80
    70
    *
    *
    *
    *
    \pwin951\help\win32.hlp
    0
    [menu settings]
    ;------------------------------------------------------------
    ;
     File paths should have the drive added so that the relative
    ;
     paths become absolute paths. This allows the tools to be
    ;
     accessed from different drives on the computer.
    ;
     -----------------------------------------------------------

    [&R工程]
    &R 编译资源文件,\MASM32\BIN\Bres.bat {b}
    &A 汇编源程序文件,\MASM32\BIN\Assmbl.bat {b}
    -
    &L 链接目标文件,\MASM32\BIN\Lnk.bat {b}
    汇编源程序并链接目标文件,\MASM32\BIN\Build.bat {b}
    &B 编译资源文件、汇编源程序并链接目标文件,\MASM32\BIN\Bldall.bat {b}
    运行 &Makeit.bat 生成可执行文件,makeit.bat
    -
    &O 链接控制台目标文件,\MASM32\BIN\Lnkc.bat {b}
    &C 汇编和链接控制台文件,\MASM32\BIN\Buildc.bat {b}
    &A 一步生成控制台可执行文件,\MASM32\BIN\Bldallc.bat {b}
    -
    &R 运行程序,{b}.exe

    [&Tools]
    展开全文
  • MASM 编译器各版本的区别 版 本 简 介 MASM 4.00 这是最先广泛使用的一个 MASM 版本,适用于 DOS 下的汇编编程。它很精巧,但使用起来不是很智能化,需要用户自己一板一眼地写出所有的东西。很多教科书上讲的 8086 ...

    汇编语言的实现也是先利用某种编辑器编写汇编语言源程序(*.ASM),然后经过汇编得到目标模块文件(*.OBJ)、连接后形成可执行文件(*.EXE)。

    1、汇编语言程序的语句格式

    汇编语源程序由语句序列构成。语句一般由分隔符分成的四个部分组成,它们有两种格式:

    (1)执行性语句——由硬指令构成的语句,它通常对应一条机器指令,出现在程序的代码段中:

    标号:硬指令助记符 操作数,操作数 ;注释

    (2)说明性语句——由伪指令构成的语句,它通常指示汇编程序如何汇编源程序:

    名字 伪指令助记符 参数,参数,... ;注释

    ◆执行性语句中,冒号前的标号反映该指令的逻辑地址;说明性语句中的名字可以是变量名、段名、子程序名或宏名等等,既反映逻辑地址又具有自身的各种属性。标号和名字很容易通过是否具有冒号来区分。

    ◆硬指令助记符可以是任何一条处理器指令,也可以是一条宏指令,伪指令助记符主要完成一些不产生CPU动作的说明性工作,在程序执行前由汇编程序完成处理。

    ◆处理器指令的操作数可以是立即数、寄存器和存储单元。伪指令的参数可以是常数、变量名、表达式等,可以有多个,参数之间用逗号隔开。

    ◆语句中由分号开始的部分是注释。

    2、汇编语言源程序

    这个以前已经学过,主要有简化段定义格式和完整段定义格式

    3、宏汇编程序MASM

    MASM6.11,安装文件5张软盘,默认安装在C:\MASM目录下,完整的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扩展文件

    4、汇编语言的命令行开发过程

    (1)原程序的编写

    用编辑软件书写*.asm源程序,如

    LI6-1.ASM

    ;LI6-1.ASM

    .MODEL SMALL

    .STACK

    .DATA

    STRING DB 'Hello,Everybody!'

    .CODE

    .STARTUP

    MOV DX,OFFSET STRING

    MOV AH,9

    INT 21H

    .EXIT 0

    END

    (2)原程序的汇编

    汇编是将原程序翻译成由机器代码组成的目标模块文件的过程,如下:

    ML /c LI6-1.ASM

    如果源程序没有语法错误,则生成一个目标模块文件LI6-1.OBJ

    (3)目标文件的连接

    连接程序能把一个或多个目标文件和库文件和成一个可执行文件(.EXE、.COM文件),如下:

    LINK LI6-1.OBJ

    连接程序的一般格式:

    LINK [/参数选项] OBJ文件列表 [EXE文件名,MAP文件名,库文件][;]

    连接程序可以将多个模块文件连接起来,形成一个可执行文件;多个模块文件用“+”分隔。给出EE文件名就可以替代与第一个模块文件名相同的缺省名。给出MAP文件名将创建连接映像文件,否则不生成映像文件。库文件是指连接程序需要的子程序库等。“;”表示采用缺省值

    事实上,ML汇编程序可以自动调用LINK连接程序(ML表示MASM和LINK),实现汇编和连接依次进行,如下即可完成可执行文件的生成:

    ML LI6-1.ASM

    ML的命令行格式如下:

    ML [/参数选项] 文件列表 [/LINK连接参数选项]

    参数选项如下(注意参数是大小写敏感的):

    /AT——允许tiny存储模式(创建一个COM文件)

    /c——只汇编源程序,不进行自动连接

    /fl 文件名——川建一个汇编列表文件(扩展名LST)

    /Fr 文件名——创建一个可在PWB下浏览的.SBR源浏览文件

    /Fo 文件名——根据指定的文件名生成模块文件,而不是采用缺省名

    /Fe 文件名——根据指定的文件名生成可执行文件,而不是采用缺省名

    /Fm 文件名——创建一个连接映像文件(扩展名MAP)

    /I 路径名——设置需要包含进(INCLUDE)源程序的文件的所在路径

    /Sg——在生成的文件列表文件中,列出由汇编程序产生的指令

    /Sn——在创建列表文件时不产生符号表

    /Zi——生成模块文件时,加入调试程序CODEVIEW需要的信息

    /Zs——只进行语法检查,不产生任何代码

    /LINK——传递给连接程序LINK的参数

    列表文件是一种文本文件,含有源程序和目标代码,创建列表文件,输入如下命令:

    ML /Fl /Sg LI6-1.ASM

    该命令除产生模块文件LI6-1.OBJ和可执行文件LI6-1.EXE,还产生列表文件LI6-1.LST,采用/Sg,如果源程序具有.STARTUP、.EXIT伪指令以及流程控制伪指令.IF、.WHILE等,将在列表文件中得到相应的硬指令;否则列表文件只给出上述伪指令。LI6-1.LST如下:

    li6-1.lst

    Microsoft (R) Macro Assembler Version 6.11 08/10/05 14:09:13

    li6-1.asm Page 1 - 1

    ;LI6-1.ASM

    .MODEL SMALL

    .STACK

    0000 .DATA

    0000 48 65 6C 6C 6F 2C STRING DB 'Hello,Everybody!'

    45 76 65 72 79 62

    6F 64 79 21

    0000 .CODE

    .STARTUP

    0000 *@Startup:

    0000 BA ---- R * mov dx, DGROUP

    0003 8E DA * mov ds, dx

    0005 8C D3 * mov bx, ss

    0007 2B DA * sub bx, dx

    0009 D1 E3 * shl bx, 001h

    000B D1 E3 * shl bx, 001h

    000D D1 E3 * shl bx, 001h

    000F D1 E3 * shl bx, 001h

    0011 FA * cli

    0012 8E D2 * mov ss, dx

    0014 03 E3 * add sp, bx

    0016 FB * sti

    0017 BA 0000 R MOV DX,OFFSET STRING

    001A B4 09 MOV AH,9

    001C CD 21 INT 21H

    .EXIT 0

    001E B8 4C00 * mov ax, 04C00h

    0021 CD 21 * int 021h

    END

    Microsoft (R) Macro Assembler Version 6.11 08/10/05 14:09:13

    li6-1.asm Symbols 2 - 1

    Segments and Groups:

    N a m e Size Length Align Combine Class

    DGROUP . . . . . . . . . . . . . GROUP

    _DATA . . . . . . . . . . . . . 16 Bit 0010 Word Public 'DATA'

    STACK . . . . . . . . . . . . . 16 Bit 0400 Para Stack 'STACK'

    _TEXT . . . . . . . . . . . . . 16 Bit 0023 Word Public 'CODE'

    Symbols:

    N a m e Type Value Attr

    @CodeSize . . . . . . . . . . . Number 0000h

    @DataSize . . . . . . . . . . . Number 0000h

    @Interface . . . . . . . . . . . Number 0000h

    @Model . . . . . . . . . . . . . Number 0002h

    @Startup . . . . . . . . . . . . L Near 0000 _TEXT

    @code . . . . . . . . . . . . . Text _TEXT

    @data . . . . . . . . . . . . . Text DGROUP

    @fardata? . . . . . . . . . . . Text FAR_BSS

    @fardata . . . . . . . . . . . . Text FAR_DATA

    @stack . . . . . . . . . . . . . Text DGROUP

    STRING . . . . . . . . . . . . . Byte 0000 _DATA

    0 Warnings

    0 Errors

    ◆列表文件有两部分内容。在第一部分源程序中,最左列是数据或指令在该段从0开始的相对偏移地址,向右依次是指令的机器代码字节个数、机器代码和汇编语言语句。机器代码后有字母"R"表示该指令的立即数/位移量现在不能确定或是只是相对地址,它将在程序连接或进入主存时才能定位。带有“*”的处理器指令是由前面一条伪指令产生的,采用/Sg选项时的列表文件才罗列。如果陈序中有错误(ERROR)或警告(WARMING),也会会在相应位置提示。

    列表文件的第二部分是标示符使用情况。对段名和组名给出他们的名字(NAME)、尺寸(Size)、长度(Length)、定位(Align)、组合(Combine)和类别(Class)属性;对符号给出他们的名字、类型(Type)、数值(Value)和属性(Attr)。采用简化段定义格式,有许多汇编系统的预定义标示符,例如@DATA等。

    ◆映像文件也是一种文本文件,含有每段在存储器中的分配情况。如下命令创建:

    ML /Fm LI6-1.ASM

    将产生LI6-1.MAP映像文件,如下:

    LI6-1.MAP

    Start Stop Length Name Class

    00000H 00022H 00023H _TEXT CODE

    00024H 00033H 00010H _DATA DATA

    00040H 0043FH 00400H STACK STACK

    Origin Group

    0002:0 DGROUP

    Address Publics by Name

    Address Publics by Value

    Program entry point at 0000:0000

    映像文件中首先给出了该程序各个逻辑段的起点(Start)、终点(sTOP)、长度(Length)、段名(Name)和类别(Class);然后是段组(GROUP)位置和组名;最后提示程序开始执行的逻辑地址。注意,这里的起点、终点和段地址是以该程序文件开头而言的相对地址,实际的绝对地址需要在程序进入主存后确定。

    5、可执行程序的调试

    只要在操作系统下输入文件名即可:

    LI6-1

    操作系统装在该文件进入主存,开始运行,是用DEBUG调试时:

    DEBUG LI6-1.EXE

    其中,BX.CX反映程序的大小,CS:IP指向程序开始执行的第一条指令,SS:SP指向堆栈段,DS和ES并不指向程序数据段,而是指向程序前100H处(这部分是该程序的短前缀PSP);所以,DS和ES应该在程序当中进行设置,正如该程序.STARTUP伪指令所完成的。采用简化段定义格式的程序,在主存中从低到高依次安排代码段、数据段和堆栈段。

    找的好辛苦呀

    大哥看的好的话就加给小弟呀

    呵呵

    祝你成功呀

    参考资料:http://blog.chinaunix.net/article.php?articleId=40436&blogId=8327

    MASM32 是一个为那些对学习或者编写 32 位微软汇编( MASM )感兴趣 的程序员提供的工作环境,它最流行的版本是 8.0 版,而我所知道最新版本是 9.0 版。但是请大家一定要注意,这里的 8.0 版和 9.0 版不是指 MASM 编译器 ( 即 ML) 的版本,而是 MASM32 开发环境的版本。 经常看到网上有网友发的贴把这两个概念都搞混了。

    那么 MASM(ML) 编译器的版本到底有哪些呢?教学上常用的版本是 5.0 版的,之前还有个 4.0 版的记得“全国计算机等级三级考试”就是用的 4.0 版。 5.0 版之后有个 5.1 版本,在这之后,从 6.0 版开始 MASM 就改名 ML 了,因为它把编译和连接组合在一起了。而且 6.0 版还对汇编语言进行了大幅改造,使之支持高级语言的很多特性。 6.0 版之后常看到的就是 6.11 、 6.13 、 6.14 MASM32(V8.0 和 V9.0) 就是包含有 ML6.14 版 , 而不是 ML8.0 版。 6.14 之后就是 6.15 但不常见 ,但 Microsoft 从 6.15 版开始好象就不再单独发布 MASM 的开发工具包了。

    以后的 ML 还有 7.0 、 7.1 版,最新的是 ML8.0 版。但它们都只包含在 Visual Studio.Net 和 Visual Studio 2005 里面。而且如果你 安装了 Visual Studio 2005 的 64 位开发环境,你将得到一个MASM for x64 ( ml64 .exe) 哈哈,各位这可是支持 Intel 和 AMD 的 64 位 CPU 的汇编语言编译器!有志于 64 位底层开发的赶快去试用看看吧。

    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 ,可读性和可维护性提高了很多

    MASM 6.00A

    未发售的版本

    MASM 6.00B

    最后一个支持 OS/2 的 MASM 版本,修正了上一版本中的一些错误

    MASM 6.10

    修正了一些错误,同时增加了 /Sc 选项,可以在产生的 list 文件中列出每条指令使用的时钟周期数

    MASM 6.10A

    1992 年发布,修正了一些内存管理方面的问题

    MASM 6.11

    1993 年 11 月发布,支持 Windows NT ,可以编写 Win32 程序,同时支持 Pentium 指令,但不支持 MMX 指令集

    MASM 6.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

    2000 年 4 月发布

    展开全文
  • 一、MASM5.0使用概述1.最好把MASM5.0放在根目录下例如D:\masm2.把编辑好的asm文件(用TXT文档编写程序,保存,把后缀名txt改成asm)放在masm文件夹下如(D:\masm\filename.asm)3.汇编工具使用步骤:点击开始菜单,运行-&...

    一、MASM5.0使用概述

    1.最好把MASM5.0放在根目录下例如D:\masm

    2.把编辑好的asm文件(用TXT文档编写程序,保存,把后缀名txt改成asm)放在masm文件夹下如(D:\masm\filename.asm)

    3.汇编工具使用步骤:

    点击开始菜单,运行->cmd

    d:

    cd masm

    masm filename.asm

    link filename.obj

    debug filename.exe

    4.补充下常用的DOS命令

    md --建立子目录

    cd --改变当前目录

    rd --删除子目录命令

    dir --显示磁盘目录命令

    path --路径设置命令

    copy --文件复制命令

    type --显示文件内容命令

    edit --编辑文件内容命令

    ren --文件改名命令

    del --删除文件命令

    cls --清屏幕命令

    ver --查看系统版本号命令

    data --日期设置命令

    time --系统时钟设置命令

    prompt -- 更改命令提示符

    deltree --删除整个目录命令

    format --磁盘格式化命令

    diskcopy--整盘复制命令

    label --建立磁盘卷标命令

    vol --显示磁盘卷标命令

    sys --系统复制命令

    xcopy --目录复制命令

    fc --文件比较命令

    attrib --修改文件属性命令

    mem --查看当前内存状况命令

    tree --显示磁盘的目录结构

    二、MASM详解

    masm内有10个.exe程序,其中常用的也就masm.exe,link.exe,debug.exe等,其它不用管。

    附件中是masm5.0汇编器和实验用的源程序:

    1.编写汇编源代码

    用记事本写好保存后,把后缀名txt改成asm,放在masm文件夹下如(D:\masm\filename.asm)

    下面随便写点代码试验试验,程序源代码:

    stsg    segment    stack

    dw 32 dup(?)

    stsg    ends

    data    segment

    a     dw 123

    b     dw 456

    sum    dw ?

    data    ends

    code    segment

    main    proc    far

    assume    cs:code, ds:data, ss:stsg, es:nothing

    push    ds

    xor    ax, ax

    push    ax

    mov    ax, data

    mov    ds, ax

    mov    ax, a

    add    ax, b

    mov    sum, ax

    ret

    main    endp

    code    ends

    end    main

    2.打开cmd进入D:\masm目录

    开始->运行->cmd

    d:

    cd masm

    效果图:

    3.汇编masm

    masm filename.asm

    ;注:进入masm汇编程序后,连续按下3个键,汇编出来的.obj文件名和.asm文件名相同

    ;   这里我们直接就3个键,不改变.obj名称,当然你可以自己随意重新该名称

    汇编好后将生成filename.obj,如果源程序有错误,masm会提示

    效果图:

    4.链接link

    link filename.obj

    ;注:同上,直接3个键,不改变.exe名称

    链接好后将生成filename.exe,如果源程序有错误,link会提示

    效果图:

    5.调试debug

    debug filename.exe

    -u ;反汇编

    -t ;单步执行

    -q ;退出debug

    效果图:

    补充:debug命令列表

    ? 显示 Debug 命令列表。

    a 汇编 8086/8087/8088 记忆码。

    c 比较内存的两个部分。

    d 显示部分内存的内容。

    e 从指定地址开始,将数据输入到内存。

    f 使用指定值填充一段内存。

    g 执行到断点处,后面 行号,例如-g2。

    h 执行十六进制运算。

    i 显示来自特定端口的 1 字节值。

    l 将文件或磁盘扇区内容加载到内存。

    m 复制内存块中的内容

    n 为 l 或 w 命令指定文件,或者指定正在测试的文件的参数。

    o 向输出端口发送 1 个字节的值。

    p 执行循环、重复的字符串指令、软件中断或子例程。

    q 停止 Debug 会话。

    r 显示或改变一个或多个寄存器。

    s 在部分内存中搜索一个或多个字节值的模式。

    t 执行一条指令,然后显示所有寄存器的内容、所有标志的状态和 Debug 下一步要执行的指令的解码形式。

    u 反汇编字节并显示相应的原语句。

    w 将被测试文件写入磁盘。

    xa 分配扩展内存。

    xd 释放扩展内存。

    xm 映射扩展内存页。

    xs 显示扩展内存的状态。

    三、总结

    .asm源程序-->经masm汇编-->.obj二进制文件-->link链接-->.exe二进制可执行文件-->debug进行调试

    点击开始菜单,运行->cmd

    d:

    cd masm

    masm filename.asm

    link filename.obj

    debug filename.exe

    展开全文
  • dosbox使用教程创建masm5

    千次阅读 2019-10-22 14:48:42
    dosbox使用教程创建masm5安装dosbox配置挂载路径运行 安装dosbox 我安装的是老师上课用的dosbox-0.74,使用的masmMASM5 百度网盘下载地址https://pan.baidu.com/s/1qDWuJOqcfHRIhlfChtXVIQ&shfl=sharepset 我...
  • 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...
  • 有用户反映说自己在使用电脑时发现win7系统使用masm5 0的操作步骤【详细说明】的难题,经小编研究表明,大部分的朋友还是不会处理win7系统使用masm5 0的操作步骤【详细说明】的问题,于是小编就个大家整理的win7系统...
  • WinASM studio在中国发布第一款简体中文正式版软件,这才真正是一款在我所使用的32位汇编平台中最为优秀的WIN32汇编编辑器,支持MASM、TASM、NASM等多种汇编编译器,Windows界面,支持语法高亮,智能语法提示比RadASM...
  • 关于Proteus软件添加masm代码的教程

    千次阅读 2015-06-19 11:08:09
    注:此教程纯属用于解决大家在使用过程出现的问题,比较简单,教程原创,有问题欢迎讨论~~ 【一】关于Proteus软件添加masm代码的教程: 步骤一: 在桌面新建一个文本文档: 写入以下内容: @ECHO OFF E:\masm...
  • 这是我学校用的masm5.宏汇编工具。绝对能用的好东西。呵呵,里面有我自己写的安装和使用帮助文件。照着做应该不存在不成功的问题。希望对大家有帮助!
  • 介绍:MASM是Microsoft Macro Assembler 的缩写,是微软公司为x86微处理器家族开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm,是...
  • 讲道理,能有人告诉我在win10下怎么搭建汇编的编程环境?搭建好我怎么去使用?各位大牛,求靠谱点的!ps:dosbox我弄好了。
  • 开始使用MASM

    2013-10-16 23:56:34
    Irvine的文章Getting Started with MASM ,翻译的目的在于方便学习。本人翻译水平有限,有兴趣的大侠可以直接阅读原文。  同时感谢Adam_syd的中肯意见。      本教程将在指导你在轻松、有序的过程中,完成...
  • MASM32 Editor的使用

    千次阅读 热门讨论 2018-02-10 20:03:01
    这篇教程简单介绍下上图这货的使用方法参考链接:https://www.cnblogs.com/yangmingyu/p/6928143.html#undefined1.下载masm32,安装【masm官方下载:http://www.masm32.com/download.htm】2.打开QEDITOR.EXE(我的...
  • MASM5.0的使用

    2013-05-15 22:09:41
    今天在CSDN上下了一个MASM5.0,安装完成后跟着王爽老师的汇编教程试验了一个简单程序的编译,链接,和跟踪,发现基本没什么难度,一步步的来就行,只是中间错打了一个指令,吧MOV打成了MOVE,导致汇编器报警error A...
  • 一、dosbox+masm环境的配置 1. 下载dosbox安装程序:DOSBox0.74-win32-installer.exe 链接:https://pan.baidu.com/s/1gXPKTT-xKb6BpjOJdhmudA 密码:khqs 2. 安装。注意它是32位...
  • 关于使用Dosbox时无法使用masm命令和debug的问题 本人在2020年5月22日已经崩溃了,于是来这儿写一篇博客 直接正文吧 一般在官网下载的都没有masm.exe和debug.exe,所以我们只能自己下载 在这儿我给出下载链接 链接: ...
  • 关于在Win7(64位)下使用MASM和DEBUG方法,专门开个虚拟机不仅浪费资源且麻烦,对于计算机新生或计算机爱好者,这无疑堵着汇编的门口。  首页去我的博客下载整套开发工具,网址在最后。解压后点击DOSBox0.74-win32...
  • 下载 MASM32

    2018-10-24 21:18:21
    可能很多人开始学汇编用的是在dos虚拟机编写的,然而我们选用masm32就是为了借助MASM32包对很多动态链接库支持的特点,使用的时候可以对库函数直接调用,免去自己与硬件/操作系统底层打交道实现的麻烦。看了教程才...
  • 由于在Win10中不能使用Wave6k的汇编软件,只能使用DOSBOX和MASM来调试运行所写的8086/88的汇编语言程序了。但是不常写汇编程序,也记不住那些DOSBOX之类的命令,每次要用时都要去网上找教程,自己写一个简洁版的步骤...

空空如也

空空如也

1 2 3 4 5
收藏数 82
精华内容 32
关键字:

masm使用教程