第一步:编写汇编源程序
第二步:对源程序进行编译连接
第三步:执行可执行文件中的程序
- codesg segment ; 定义一个段,段的名称为“codesg”,这个段从此开始
-
- mov ax,0123H
- mov bx,0456H
- add ax,bx
- add ax,ax
-
- mov ax,4C00H
- int 21H
-
- codesg ends ; 名称为“codesg”的段到此结束
-
- end
伪指令:
1. segment 和 ends 的功能是定义一个段,segment 说明一个段开始,ends 说明一个段结束。一个段必须有一个名称来标识
2. end 是一个汇编程序的结束标记,编译器在编译汇编程序的过程中,如果碰到了伪指 end 就结束对源程序的编译
标号:
汇编源程序中,除了汇编指令和伪指令外,还有一些标号,比如 “codesg“ 一个标号指代了一个地址。
程序返回:
mov ax,4C00H
int 21H
完成对源程序的编辑后,可以对其进行编译,生成包含机器代码的目标文件
VS Code 中下载插件 MASM/TASM

打开DOSBox 挂载

编译过程:

解析:
1. 运行 masm 程序,第一个默认文件后缀名是 .asm,所以直接输入 1 (在同一目录下)
2. 提示输入要编译出的目标文件的名(回车默认为 1.obj)
3. 提示输入列表文件的名称(回车跳过)
4. 提示输入交叉引用文件的名称(回车跳过)
源文件是你编写的汇编代码,通常扩展名为 .asm。这是编译过程的输入文件,其中包含了你的汇编语言指令。
作用:
目标文件是汇编源文件经过编译后生成的中间文件,通常扩展名为 .obj。它包含了机器码,但还不是一个可执行文件。
作用:
列表文件是编译过程中可选生成的文件,通常扩展名为 .lst。它包含了源代码、生成的机器码、符号表以及其他调试信息。
作用:
交叉引用文件也是编译过程中可选生成的文件,通常扩展名为 .crf。它列出了源代码中每个符号(变量、标签等)的定义和使用位置。
连接过程

解析:
1. 运行 link 程序,第一个默认文件后缀名是 .obj,所以直接输入 1 (在同一目录下)
2. 提示输入要生成的可执行文件的名称,默认为 1.exe
3. 提示输入映像文件的名称(回车跳过)
4. 提示输入库文件的名称(回车跳过)
5. 最后一个警告是没有栈段
作用:
作用:
作用:
作用:
注意:同一目录下才不用加路径

为了观察程序的运行过程,可以使用 Debug

使用 T 命令单步执行每一条命令,到了 int 21H 用 P 命令结束程序
