南京邮电大学微型计算机原理与接口技术 第5章 孙力娟.ppt

南京邮电大学微型计算机原理与接口技术 第5章 孙力娟.ppt

ID:55869296

大小:586.00 KB

页数:162页

时间:2020-06-11

南京邮电大学微型计算机原理与接口技术 第5章 孙力娟.ppt_第1页
南京邮电大学微型计算机原理与接口技术 第5章 孙力娟.ppt_第2页
南京邮电大学微型计算机原理与接口技术 第5章 孙力娟.ppt_第3页
南京邮电大学微型计算机原理与接口技术 第5章 孙力娟.ppt_第4页
南京邮电大学微型计算机原理与接口技术 第5章 孙力娟.ppt_第5页
资源描述:

《南京邮电大学微型计算机原理与接口技术 第5章 孙力娟.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章汇编语言程序设计一.EXE文件编程格式允许源程序使用多个逻辑段,适合编写大型程序,最终能生成.EXE文件例:将N1和N2两个单字节数以28为模求和→SUM单元5.1汇编源程序的编程格式.486DATASEGMENTUSE16N1DBxxN2DBxxSUMDB?DATAENDSSTACK_SEGMENTSTACK‘STACK’USE16DB128DUP(?)STACK_ENDSBEG:MOVAX,DATAMOVDS,AXMOVAX,STACK_MOVSS,AXMOVSP,128MOVAL,N1A

2、DDAL,N2MOVSUM,ALMOVAH,4CHINT21HCODEENDSENDBEG可省CODESEGMENTUSE16ASSUMECS:CODE,DS:DATA,SS:STACK_说明:.EXE文件中堆栈段的设置本例以“STACK_”为段名的逻辑段,选用了“STACK”链接参数,DOS自动认为“STACK_”段为堆栈段。所以,DOS将自动给SS:SP赋初值因此,源程序给SS:SP赋初值的三条语句是多余的。链接程序要求:.EXE文件中的源程序必须有堆栈段,否则链接时将给出警告信息Warni

3、ngnostacksegment但这不代表源程序有错,仅仅是警告而已如果源程序中不设置堆栈段(在链接时,会给出错误信息),DOS将自动给程序分配最少128字节的堆栈区,故源程序中,如果没有大量数据压栈的话,可以不设置堆栈段,从而简化程序。二.COM文件的编程格式1.汇编语言规定:COM文件的源程序只能有一个段:代码段,不允许有堆栈段在代码段偏移地址=100H处,必须是程序的启动指令程序中使用的数据可以放在代码段的开始或结尾.486.486CODESEGMENTUSE16CODESEGMENT

4、USE16ASSUMECS:CODEASSUMECS:CODEORG100HORG100HBEG:JMPSTARTBEG:MOVAL,N1N1DBXXADDAL,N2N2DBXXMOVSUM,ALSUMDB?MOVAH,4CHSTART:MOVAL,N1INT21HADDAL,N2N1DBXXMOVSUM,ALN2DBXXMOVAH,4CHSUMDB?INT21HCODEENDSCODEENDSENDBEGENDBEG2.例:上例,写成COM格式源程序3.COM文件的生成设上例的文件名为N1ADDN

5、2.ASM编辑生成N1ADDN2.ASM调用TASM.EXE生成N1ADDN2.OBJTASMN1ADDN2调用TLINK.EXE生成N1ADDN2.COMTLINKN1ADDN2/t注意:链接参数为小写字母t三.EXE文件、COM文件的内存映像INT20H…...数据段代码段堆栈段DS=ESCS:IPSS:SPPSP用户程序EXE文件内存映像EXE文件的内存映像DOS把EXE文件调入内存之后,自动在目标程序上方(低地址处)生成一个有256字节的数据块——程序段前缀(PSP)DOS令DS=

6、ES=PSP段基址,即DS≠用户数据段段基址,ES≠用户附加段段基址DOS令CS:IP=代码段启动指令的逻辑地址三.EXE文件、COM文件的内存映像INT20H…...数据段代码段堆栈段DS=ESCS:IPSS:SPPSP用户程序EXE文件内存映像EXE文件的内存映像DOS令SS:SP=用户堆栈段(如果有堆栈段的话)栈顶的逻辑地址,所以:用户程序必须给DS赋值,使DS=用户数据段段基址;用户程序必须给ES赋值,使ES=用户附加段段基址FS=GS=0,如果用户程序使用了FS、GS附加段,则必须给F

7、S、GS赋初值三.EXE文件、COM文件的内存映像INT20H…...代码段堆栈段00H00HCS=DS=ES=SSIP=100HSPPSP64K-256COM文件内存映像2.COM文件内存映像COM文件调入内存后,DOS也在其上方生成一个PSPCS=DS=SS=ES=PSP段基址,即用户程序的代码段、数据段、ES附加段和堆栈区都在一个64k的逻辑段中DOS自动使IP=100H,自动执行偏移地址为100H处的那条指令三.EXE文件、COM文件的内存映像INT20H…...代码段堆栈段00H00

8、HCS=DS=ES=SSIP=100HSPPSP64K-256COM文件内存映像2.COM文件内存映像DOS自动使SP=FFFEH,且SS:[SP]=SS:[SP+1]=0,这就意味在COM文件中代码段以下,FFFEH以上这一片存储单元都是用户的堆栈区FS=GS=0四.程序段前缀—PSPPSP是一个有256字节的数据块,由DOS在装载可执行文件时自动生成。DOS通过PSP向用户程序传递数据,PSP是程序运行不可缺少的部分每一个可执行文件都伴随有自己的PSP五.返回

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。