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

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

ID:56466605

大小:667.50 KB

页数:99页

时间:2020-06-19

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

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

1、6.1汇编源程序的编程格式6.2系统功能调用6.3程序设计举例6.4Windows汇编语言编程初步第6章汇编语言程序设计汇编源程序有两种编程格式:EXE文件的编程格式:只能生成扩展为EXE的可执行文件;COM文件的编程格式:可以生成扩展为COM的可执行文件。COM文件的执行级别高于EXE文件,同名的BAT(批处理)文件执行级别最低。6.1源程序的编程格式EXE文件的编程格式此格式允许源程序使用多个逻辑段(包括据段、堆栈段、代码段及其它逻辑段);在实模式下,每个逻辑段的目标块不超过64K;适合编写大型程序。.486

2、DATASEGMENTUSE16;定义数据段MESGDB‘IAMASTUDENT!’,’$’DATAENDSCODESEGMENTUSE16;定义代码段ASSUMECS:CODE,DS:DATABEG:MOVAX,DATAMOVDS,AXLAST:MOVAH,9MOVDX,OFFSETMESGINT21HMOVAH,4CHINT21H;返回DOSCODEENDSENDBEGEXE文件的内存映象磁盘上的EXE文件包括两部分:装入模块和重定位信息DOS装载EXE文件时,根据重定位信息完成装入模块的重定位。同时,重定位

3、信息被丢弃。DOS在同一内存块的用户程序上方(低地址处)偏移地址为00H~FFH的单元处自动生成一个256字节的数据块,称为程序段前缀(PSP)。DOS自动使DS=ES=存放PSP的段基址,使CS:IP指向用户程序的启动地址INT20H数据段代码段堆栈段DS,ESCS:IPSSSP注:DOS把EXE文件调入内存后,自动给SS、SP赋初值,程序中给SS、SP赋初值的指令可省略。PSP(256字节)用户程序COM文件的编程格式汇编语言要求此格式必须符合以下规定:·源程序只允许使用一个逻辑段,即代码段,不允许设置堆栈段

4、;·程序使用的数据,可以集中设置在代码段的开始或未尾;·在代码段偏移地址(有效地址)为100H的单元,必须是程序的启动指令;·代码段目标块小于64K。COM文件的编程格式适合于编写中小型程序。.486CODESEGMENTUSE16ASSUMECS:CODEORG100HBEG:JMPSTARTMESGDB‘HELLO’,0DH,0AH,’$’;用户程序数据区START:MOVCX,10;设置循环次数LAST:MOVAH,9MOVDX,OFFSETMESGINT21H;显示一行HELLOLOOPLAST;循环计数

5、MOVAH,4CHINT21H;返回DOSCODEENDSENDBEGCOM文件的内存映象磁盘上的COM文件没有重定位信息,体积比EXE文件小。DOS装载COM文件时,在同一内存块的用户程序上方(低地址处)偏移地址为00H~FFH的单元处自动生成一个PSP;然后从偏移地址100H处开始存放用户程序;DOS自动使CS=DS=ES=SS=存放PSP的段基址,使IP=100H,SP=FFFEH。INT20H代码段堆栈段CS,DSES,SSIP(FFFEH)SPPSP(256字节)用户程序(64K-256)返回DOS的其

6、它方法EXE格式文件可以借用PSP首单元的INT20H返回DOS执行完用户程序后,使CS:IP指向PSP的首单元。DOS在装载EXE文件时将DS指向该单元,故可采取措施:把执行程序放在一个远过程中;用户程序在给SS、SP赋初值后,DS赋值前,用三条指令把PSP的首单元的物理地址(DS:0000H)压入堆栈,即:PUSHDSMOVAX,0PUSHAX返回DOS时,执行RET指令,栈顶四个字节弹出分别送CS和IP,即可执行INT20H指令。COM格式文件可直接执行INT20H指令.486;方式定义DATASEGMEN

7、TUSE16;定义数据段MESGDB‘HELLO’,0DH,0AH,’$’DATAENDSCODESEGMENTUSE16;定义代码段ASSUMECS:CODE,DS:DATA,SS:STACK;说明段约定MAINPROCFAR;为什么定义成远过程?BEG:PUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXLAST:MOVAH,9MOVDX,OFFSETMESGINT21H;显示显示一行HELLORET;返回DOSMAINENDPCODEENDSENDBEG;汇编结束源程序清单:6.2系统

8、功能调用DOS的4个组成部分中IBMBIO.COM和IBMDOS.COM是DOS系统的核心模块IBMBIO.COM为基本I/O设备处理程序,与BIOS一起完成数据输入和数据输出的基本操作IBMDOS.COM是磁盘文件管理程序;一片大容量的EPROM或FLASH存储器这两个模块均有若干子功能可以被用户程序调用,称为“DOS功能调用”和“BIOS功能调用”(系统功能调用)PC

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

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

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