第五章汇编语言程序设计new

第五章汇编语言程序设计new

ID:40229159

大小:422.00 KB

页数:192页

时间:2019-07-27

第五章汇编语言程序设计new_第1页
第五章汇编语言程序设计new_第2页
第五章汇编语言程序设计new_第3页
第五章汇编语言程序设计new_第4页
第五章汇编语言程序设计new_第5页
资源描述:

《第五章汇编语言程序设计new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第五章汇编语言程序设计32位微机系统中,CPU可以工作在实模式、保护虚拟模式下,本章仅介绍基于实模式的程序设计。5.1汇编源程序的编程格式EXE格式COM格式COM文件的执行级别高于EXE文件。5.1.1EXE文件的编程格式源程序可使用多逻辑段在实模式下,每个逻辑段大小不超过64KB适合编写大型程序例显示10行HELLO(EXE文件的编程格式);FILENAME:611.ASM.486DATASEGMENTUSE16MESGDB‘HELLO’,0DH,0AH,’$’DATAENDSSTACKSEGMENTDB100DUP(?)STACKENDSCODESEG

2、MENTASSUMECS:CODE,DS:DATA,SS:STACK_SEGMENT;段约定BEG:MOVAX,STACK_SEGMENT;程序启动地址指令MOVSS,AXMOVSP,100;以上置堆栈段初值,可以省略MOVAX,DATAMOVDS,AX;以上设置DS初值MOVCX,10LAST:MOVAH,9 MOVDX,OFFSETMESG INT21H LOOPLAST MOVAH,4CH;返回DOSINT21H CODEENDS ENDBEG;显示一行HELLO5.1.2COM文件的编程格式源程序只允许使用一个逻辑段,即代码段,不允许设置堆栈段;数据可以集

3、中设置在段的开始或末尾;程序的启动指令必须存放在偏移地址为100H的单元;代码段长度小于64KB,适合于编写中小型程序。例显示10行HELLO(COM文件的编程格式);FILENAME:612.ASM.486CODESEGMENTASSUMECS:CODEORG100HBEG:JMPSTART;程序的启动指令须放在偏移地址为100H的单元MESGDB‘HELLO’,0DH,0AH,’$’;用户程序数据区START:MOVCX,10LAST:MOVAH,9MOVDX,OFFSETMESGINT21HLOOPLASTMOVAH,4CHINT21HCODEENDSEND

4、BEGDOS把COM文件调入内存后,自动使DS=CS,所以DS不必初始化。COM文件的生成首先源程序的编程格式必须符合以上规定。如果使用低版本的汇编和链接程序,生成COM文件需4步:①编辑生成ASM文件②汇编生成OBJ文件③链接生成EXE文件④用EXE2BIN.EXE文件将EXE文件转换成COM文件。COM文件的生成使用高版本的汇编和链接程序,需要3步:①编辑生成ASM文件②汇编生成OBJ文件③链接时使用小写‘t’做链接参数即可直接生成COM文件由汇编语言源程序到可执行文件的处理过程5.1.3EXE和COM文件的内存映象1.EXE文件的内存映像EXE文件包括

5、:装入模块和“重定位信息”。DOS装入文件时两部分都调入内存,DOS根据重定位信息,完成对装入模块的重定位后就丢弃重定位信息。程序段前缀(PSP)DOS在用户程序上方(低地址)偏移地址为00~FFH的内存单元中生成一个256个字节的数据块,即程序段前缀(PSP)。EXE文件的内存映像DOS自动使CS:IP指向用户程序的启动指令所在的存储单元,SS:SP指向用户堆栈段的栈顶(SS指向堆栈段的段基址),同时自动给DS、ES、FS和GS赋值,使DS=ES=PSP所在段的段基址,FS=GS=0。然后,把计算机的控制权交给用户程序。EXE文件的内存映象图:用户程序无须对CS

6、,SS进行赋值。在程序开始需重新给DS和ES赋初值。DOS对DS和ES赋给的初值并不等于用户程序中数据段和附加段的段基址,所以在程序开始需重新给DS和ES赋初值。2.COM文件的内存映像COM文件没有重定位信息,文件体积比EXE小。程序段前缀(PSP)DOS装入COM文件时会在用户程序上方(低地址)偏移地址为00~FFH的内存单元中生成一个256个字节的数据块,即程序段前缀(PSP)。在偏移地址为100H的内存单元开始存放程序的第一条指令。DOS自动使CS=DS=ES=SS=PSP所在段的段基址,FS=GS=0,且IP=100H,SP=FFFEH(SS:SP指向用

7、户堆栈段的栈顶)。然后,把计算机的控制权交给用户程序。COM文件的内存映象图IP=100HSP=FFFEH5.1.4程序段前缀PSP程序段前缀PSP程序段前缀占256B的存储单元,其中的信息是DOS装载可执行文件时自动生成的。PSP是程序运行不可分割的部分,内存中的每一个执行程序都有相应的PSP。DOS是通过PSP管理用户程序的。DOS通过PSP向用户程序传递参数,通过PSP向用户程序提供程序正常结束或者异常结束时返回DOS的途径。当程序结束返回DOS,程序以及相应的PSP所占据的内存空间同时释放,交还给DOS。PSP格式PSP+00~01HINT20H返回D

8、OSPSP

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

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

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