2 汇编语言源程序的格式 在第四章介绍指令系统时曾给出若干程序举例,但是,它们仅仅是一些程序片段,并不是完整规范的汇编语言源程序
下而给出一个比较简单,然而比较规范的汇编语言源程序
1 要求将两个五字节16进制数相加,可以编写出以下汇编语言源程序
DATA SEGMENT ;定义数据段 DATA1 DB 0F8H,60H,0ACH,74H,3BH ;被加数 DATA2 DB 0C1H,36H,9EH,0D5H,20H ;加数 DATA ENDS ;数据段结束 CODE SEGMMENT ;定义代码段 ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX ;初始化 DS MOV CX,5 ;循环次数送CX MOV SI,0 ;置 SI 初值为0 CLC ;清 CF 标志 LOOPER:MOV AL,DATA2[SI] ;取一个字节加数 ADC DATA1[SI],AL ;与被加数相加 INC SI ;SI 加1 DEC CX ;CX 减1 JNZ LOOPER ;若不等于0,转 LOOPER MOV AH,4CH INT 21H ;返回 DOS CODE END ;代码段结束 END START ;源程序结束 5
1 分段结构 由上面的例子可以看出,汇编语言源程序的结构是分段结构形式,一个汇编语言源程序由若干段(SEGMENT)组成,每个段以 SEGMENT 语句开始,以 ENDS 语句结束
整个源程序的结尾是 END 语句
这里所说的汇编语言源程序中的段与前面讨论的 CPU 管理的存储器的段,既有联系,又在概念上有所区别
我们已经知道,微处理器对存储器的管理是分段的,因而,在汇编语言程序中也要求分段组织指令、数据和堆栈,以便将源程序汇编成为目标程序后,可以分别装入存储器的相应段中
但是,以8086/8