其中标号指示程序开始执行的起始地址。如果多个程序模块相连接,则只有主程序要使用标号,其他子程序模块则只使用END 而不必使用标号。······,用END START表示程序结束。end叫做结束语句,它的格式为: END 表达式
也就是说,end start是一条语句,不是两条,它是一个完整的表达式!
你要知道的是“汇编程序并非将在遇END时结束汇编”,而是在“遇END语句时结束汇编”
DATA SEGMENTSTR1 DB 'INPUT:X=$'
STR2 DB ' Y=2X+3=$'
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
GO: MOV AX,DATA
MOV DS,AX
LEA DX,STR1
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
SUB AL,30H
MOV BH,AL
LEA DX,STR2
MOV AH,09H
INT 21H
MOV AL,BH
MOV BL,2
MUL BL
ADD AL,3
MOV BL,10
DIV BL
MOV BH,AH
MOV DL,AL
ADD DL,30H
MOV AH,02H
INT 21H
MOV DL,BH
ADD DL,30H
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END GO
end指的是程序结束。endstart指是是程序结束,并指明程序的入口(也就是程序执行的第一条指令)在start处。
一个程序可以由多个源程序组成,由于程序入口只可以有一个,所以其它的源程序就在end后不应该有标号,否则多个程序入口指定会让连接程序无所适从而拒绝后续操作。