文档详情

匯编语言源程序的结构及上机步骤.doc

发布:2017-01-12约3.5千字共6页下载文档
文本预览下载声明
汇编语言源程序的结构及上机步骤 汇编语言源程序有两类:其一,经汇编后生成扩展名为.EXE的可执行文件(简称EXE文件);其二,经汇编后生成扩展名为.COM的紧凑格式文件(可执行,简称COM文件)。这两种文件具有不同的优先级,其源程序结构也有较大差异。 1.EXE文件的汇编格式 ? (1) 特点:程序可带重定位信息,程序分段,每段64K,文件较长 ??? 程序装入内存时,CS、SS由系统赋值,DS、ES由用户赋值 ? (2)EXE汇编语言源程序一般结构如下: ; program title goes head---(程序题目放这里) ; ?;EQU? STATEMENT GO HEAD---(等值语句放这里) ; ************* ?STACK SEGMENT PARA STACK STACK;堆栈段 ?????? DB 20 DUP(STACK?? ) ?STACK ENDS ;******************** DATASG SEGMENT??????????????????? ;数据段 ; DATA GOES HEAR ?DATASG ENDS ; ********************* EXTRA SEGMENT???????????????????? ;附加段(可有可无)????????????? ; DATA GOES HEAR ?EXTRA ENDS ; ********************* CODESG SEGMENT??????????????????? ;代码段 ; ---------------------- MAIN PROC FAR???????????????????? ;主过程 ?? ASSUME CS:CODESG,DS:DATASG,ES:EXTRA,SS:STACK ?? PUSH DS????????????????????????? ;程序段前缀PSP ?? MOV AX,0???????????????????????? ;首地址入栈 ?? PUSH AX ?? MOV? AX,DATASG?????????????????? ;将数据段的段地址传送给 ?? MOV? DS,AX?????????????????????? ;段寄存器DS ?? MOV? AX,EXTRA??????????????????? ;将附加段的段地址传送给 ?? MOV? ES,AX?????????????????????? ;段寄存器ES ?? ; MAIN PART OF PROGRAM GOES HEAR(程序的主要部分放这里) ?? RET????????????????????????????? ;(返回) MAIN ENDP ;----------------------- CODESG ENDS ;************************** END MAIN?? ??????????????????????;程序结束 ? 说明: 系统在为用户文件分配内存空间时,会多分配256个BYTE(100H)内存空间给该文件,而这256 BYTE时放在程序的机器码前面,所以这个区域称为程序段前缀(PSP Program System Prefix),此区域内所纪录的内容为用户跟系统沟通的一些相关信息. 在程序段前缀PSP的首地址中,存放了一条INT 20H(程序结束)的指令。 ? (3) EXE文件装入内存中的情况如图3.3.1所示(一开始,段寄存器DS、ES指向段前缀PSP的段地址 ) ? ???? 低地址 ? 程序段前缀 ??? PSP DS:0H,ES:0H ? ?? 代码段 CS:0H(IP=0) ???????????????????????? ?CS:IP(指向下一条要执行的指令) ? ?? 数据段 ? ? ?? 附加段 ? ???????????????????????? ? ? ????? 高地址 ?? 堆栈段 SS:0H? ???????????????? ? SS:SP(指向栈顶) 图3.3.1 2. .COM文件的汇编格式 ? (1) 特点:程序不能带可重定位信息;整个源程序只能使用一个逻辑段;程序装入内存时,CS、SS 、DS、ES指向同一段,均由系统赋值;第一条可执行指令位于段内偏移量为0100H的地方 (前面256个字节为程序段前缀PSP所在地);数据区可设置在代码段的开始或末尾(与指令代码的合计总长度小于64KB等。 ? (2) COM汇编语言源程序一般结构如下: ; program title
显示全部
相似文档