16位汇编智能编译环境的搭建

来源:互联网 发布:java编码格式转换 编辑:程序博客网 时间:2024/06/04 21:23

 

    16位汇编的上机有以下几步:编辑源代码,编译,链接,调试。
    (1)Uedit32或者记事本等编辑源代码,保存为.asm(此处为Hello.asm)。一般选用Uedit32,因为可以语法着色,高亮显示、显示行号、列号等。

stack segment
    db 100 dup(?)
stack ends

 

data segment
    message db 'Hello, World',0dh,0ah,'$'
data ends

 

code segment
     assume cs:code,ds:data,ss:stack
start:
    mov ax,data
    mov ds,ax
 
     mov dx,offset message
    mov ah,9
    int 21h
 
   mov ah,4ch
   int 21h
code ends
 end start

    (2)masm编译源文件,生成obj目标文件。
    在提示符键入masm Hello.asm回车
    显示:Object filename [Hello.obj]:回车
    显示:Source listing [NUL.LST]:回车
    显示:Cross-referce [NUL.CRF]:回车
    显示 0 Warning Errors
         0 Server Errors
    说明成功编译通过
   
   (3)link,生成exe文件
    在提示符键入link Hello.obj 回车
    显示:Run File [Hello.obj]:回车
    显示:List File [NUL.MAP]:回车
    显示:Libraries [.LIB]:回车
    显示:LINK:warning L4021:no stack segment
    最后显示,没有堆栈,不用理会。
   

    (4)debug调试程序,查看结果是否正确。
    具体使用,参阅相关资料。

    注:(2)、(3)为了跳过输入目标文件名、资源列表、执行文件名等,可以在后面加一个分号。分别为
    masm Hello.asm;
    link Hello.obj;


    上面(2)(3)(4)步中用到的程序假设是放到当前目录下,需要设置路径,如果每次设置路径,则会比较麻烦。为了管理方便,把masm.exe、link.exe和debug.exe等程序单独放在一个文件中。每个汇编源文件一个文件夹。

■方法一:永久设置环境变量
    把masm.exe、link.exe和debug.exe等程序放在J:/Asm16/00_Tool(自己想怎么放就怎么放,保持目录与环境变量值一致就可以了。)
    设置环境变量:我的电脑→属性→高级→环境变量→Administrator的用户变量,双击path,编辑用户变量中的变量值,在后面添加“;J:/Asm16/00_Tool”不包含引号。也可以在系统变量的path中添加。
    在J:/Asm16/00_Tool目录下新建一个文件v.bat,内容为
    MASM %1.asm;
    link %1.obj;
    新建一个CmdLine.bat文件,内容为cmd。把CmdLine.bat每个汇编例子文件夹下,需要编译、链接的时候,双击CmdLine.bat,再输入v hello就可以了。
   

■方法二:把masm.exe、link.exe、debug.exe和CmdLine.bat拷贝到系统目录下,如E:/WINNT/system32下面也是可以的。

■方法三:方法一和二都是永久性的设置,再来一个临时性的设置。
     把masm.exe、link.exe、debug.exe拷贝到J:/Asm16/00_Tool目录下,并建立SetPath.bat和v.bat文件,
SetPath.bat内容:
     set path=J:/asm16/00_Tool;%path%
     cls
v.bat文件内容:
    MASM %1.asm;
    link %1.obj;

在需要汇编的文件夹下,建立“设置路径_命令窗口.bat”文件,其内容:
call J:/asm16/00_Tool/SetPath.bat
cmd
汇编的时候,双击“设置路径_命令窗口.bat”,再输入v hello回车就可了。

说明:以上设置都是基于虚86模式而言的。在实模式下SetPath.batm内容中的set path=J:/asm16/00_Tool;%path%去掉set;设置路径_命令窗口.bat文件改成自己喜欢的字母文件名,内容中的cmd一行去掉。