首先,我们需要安装一个编译器,如:ASM、MASM
在编译器中开始代码的编写:
定义数据段、代码段和堆栈段。
首先定义一个数据段 给你要定义的段起一个符号名,最好就是相对应的英文:DATA1。然后写入SEGMENT ‘DATA’。
用ORG定义偏移地址的值
接下来进行数据定义:先起一个数据变量名,然后确定数据类型,然后输入表达式也就是数据。可以定义多个数据变量。如:
DA DB 5 DUP(00H)
定义好数据后,结束数据段,使用 DATA1 ENDS
接下来定义堆栈段,与数据段大同小异
STACK 1 SEGMENT STACK’;此时SS已经自动装入
…
STACK1 ENDS
最后定义代码段,形如
CODE SEGMENT
ASSUME CS:CODE DS:DATA1 ;声明段
然后起一个标号START:后开始装入DS地址,如下:
MOV AX,DATA1
MOV DS,AX
都设置好后,就可以进行真正功能指令的编写了
…
代码端结束后,使用中断返回:
MOV AH 4CH
INT 21H
CODE ENDS来结束代码段
最后
END START;使CS:IP指向START
至此,一个完整的汇编代码就结束了。下面是实例:
DATA SEGMENT 'DATA'
ORG 0100H
DA1 DB 5 DUP(?)
DA2 DW 5 DUP(?,?)
DATA ENDS
STACK SEGMENT STACK
ST1 DB 10 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATA ,SS:STACK ,CS:CODE
START: MOV AX,DATA
MOV DS,AX
LEA DI,DA1
MOV CX,05H
LP: MOV AL,[DI]
INC DI
LOOP LP
MOV AX 4CH
INT 21
CODE ENDS
END START