《汇编语言程序格式》ppt课件

《汇编语言程序格式》ppt课件

ID:26948268

大小:245.50 KB

页数:76页

时间:2018-11-30

《汇编语言程序格式》ppt课件_第1页
《汇编语言程序格式》ppt课件_第2页
《汇编语言程序格式》ppt课件_第3页
《汇编语言程序格式》ppt课件_第4页
《汇编语言程序格式》ppt课件_第5页
资源描述:

《《汇编语言程序格式》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章汇编语言程序格式3.1汇编程序功能3.2伪操作3.3汇编语言程序格式3.4汇编语言程序的上机过程03.1汇编程序功能计算机是通过执行指令序列来解决问题的。计算机的指令系统就是指该计算机能够执行的全部指令的集合。指令的一般格式:[标号:]操作符OPD,OPS[;注释]算术运算和位操作类指令的部分单操作数指令的格式:[标号:]操作符OPD[;注释]1汇编语言程序的建立及开发过程编辑文本编辑器,如EDIT.COM源程序:文件名.asm汇编汇编程序,如MASM.EXE目标模块:文件名.obj连接连接程序,如LINK.EXE可执行文件:文件

2、名.exe调试调试程序,如DEBUG.EXE应用程序错误错误错误错误2汇编程序的主要功能检查源程序测出源程序中的语法错误,并给出出错信息产生源程序的目标程序,并可给出列表文件(同时列出汇编语言和机器语言的文件,称为LST文件)展开宏指令33.2伪操作硬指令——使CPU产生动作、并在程序运行期间由计算机执行的语句。伪指令(Directive)——不产生CPU动作、在程序执行前由汇编程序处理的说明性语句,例如,数据说明、变量定义等等。伪指令与具体的处理器类型无关,但与汇编程序的版本有关。4汇编语言语句实例MOVCX,0;传送指令,具有2个操

3、作数DELAY:NOP;空操作指令,没有操作数,带有标号LOOPDELAY;循环指令,标号DELAY说明转移位置BUFFERDB1,2,3,4,5,6,7;数据定义伪指令,在主存中开辟7个连续的字节单元,初值依次为1~7,BUFFER表示首地址53.2.1段定义伪操作1.完整的段定义伪操作存储器的物理地址是由段地址和偏移地址组合而成的,汇编程序在把源程序转换为目标程序时,必须确定标号和变量的偏移地址,并且需要把有关信息通过目标模块传送给连接程序,以便连接程序把不同的段和模块连接在一起,形成一个可执行程序。为此需要用段定义伪操作,格式如下

4、:段名SEGMENT[定位][组合][使用]['类别']...;对数据段,附加段和堆栈段,一般是存储单元的定...;义,分配等伪操作,对代码段则是指令及伪操作.段名ENDS6完整段定义由SEGMENT和ENDS这一对伪指令实现,SEGMENT伪指令定义一个逻辑段的开始,ENDS伪指令表示一个段的结束段定义指令后的4个关键字用于确定段的各种属性,堆栈段要采用stack组合类型,代码段应具有‘code’类别,其他为可选属性参数如果不指定,则采用默认参数;但如果指定,注意要按照上列次序。7(1)定位类型:指定逻辑段在主存储器中的边界,可为:B

5、YTE该段可以从任何地址开始,这样偏移地址可能不是0WORD该段必须从字的边界开始,即段起始地址必须为偶数DWORD该段必须从双字的边界开始,即段起始地址的最低两个十六进制数位必须为4的倍数PARA该段的起始地址必须从小段边界开始,即段起始地址的最低16进制数必须为08PAGE该段必须从页的边界开始,即段的起始地址的最低两个十六进制数位必须为0简化段定义伪指令的代码和数据段默认采用WORD定位,堆栈段默认采用PARA定位完整段定义伪指令的默认定位属性是PARA,其低4位已经是0,所以默认情况下数据段的偏移地址从0开始9(2)组合类型说明

6、程序连接时的段合并方法,即指定多个逻辑段之间的关系,可为:PRIVATE本段为私有段,与其他段没有逻辑关系,在连接时不与其他段合并,每段都有自己的段地址。这是完整段定义伪指令默认的段组合方式PUBLIC连接程序把本段与所有同名同类型的其他段相邻地连接在一起,然后为所有这些段指定一个共同的段地址,也就是合成一个物理段。这是简化段定义伪指令默认的段组合STACK本段是堆栈的一部分,连接程序将所有STACK段按照与PUBLIC段的同样方式进行合并。这是堆栈段必须具有的段组合10(3)使用类型是支持32位段而设置的属性,用来说明使用16位寻址方

7、式还是32位寻址方式对于16位x86CPU来说,它默认是16位段,即USE16而对于汇编32位x86CPU指令时,它默认采用32位段,即USE32;但可以使用USE16指定标准的16位段编写运行于实地址方式(8086工作方式)的汇编语言程序,必须采用16位段11(4)类别在引号中给出连接时组成段组的类型名。当连接程序组织段时,并不能把相同类别的段合并起来,但可将所有的同类别段相邻分配段类别可以是任意名称,但必须位于单引号中大多数MASM程序使用'code'、'data'和'stack’来分别指名代码段、数据段和堆栈段,以保持所有代码和数

8、据的连续12此外,必须明确段与段寄存器的关系,可用ASSUME伪操作来实现。格式:ASSUME段寄存器:段名[,段寄存器名:段名,...]作用:通知MASM用指定的段寄存器来寻址对应的逻辑段,即建立段寄存器

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

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

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