前言
汇编指令和伪指令前面学了不少,现在时候开始写一段完整的汇编程序了。
一个完整的汇编程序
; 定义了一个堆栈段
SSEG SEGMENT PARA STACK
DW 256 DUP(?)
SSEG ENDS
; 定义一个数据段
DSEG SEGMENT
MESS DB \'HELLO\',0DH,OAH,\'$\'
DSEG ENDS
; 定义一个代码段
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG ;初始化了相关的寄存器
START: MOV AX,DSEG ; 具体程序开始了
MOV DS,AX
MOV DX, OFFSET MESS
MOV AH,9
INT 21H ; int 21 是系统调用
MOV AH,4CH
INT 21H
CSEG ENDS
END START ; end表示程序结束了,汇编编译器在遇到end之后就停止下面内容的编译了,同时end 也指定了程序从什么位置开始运行,如果这个程序是一个模块那么 也可以只用end而不带任何标号
编译环境说明
我的系统是win 10的, 安装masm的编译器似乎总是存在问题,而且调试的什么的需要用到debug这个在win10 上安装也是很麻烦的事情。所以我直接安装了一个MS-DOS的虚拟机,并在其中安装MASM。 这部分教程还是有很多的,可自行百度。