《汇编语言编程》ppt电子课件教案08masm语法(2)

《汇编语言编程》ppt电子课件教案08masm语法(2)

ID:33732996

大小:121.50 KB

页数:35页

时间:2018-05-25

《汇编语言编程》ppt电子课件教案08masm语法(2)_第1页
《汇编语言编程》ppt电子课件教案08masm语法(2)_第2页
《汇编语言编程》ppt电子课件教案08masm语法(2)_第3页
《汇编语言编程》ppt电子课件教案08masm语法(2)_第4页
《汇编语言编程》ppt电子课件教案08masm语法(2)_第5页
资源描述:

《《汇编语言编程》ppt电子课件教案08masm语法(2)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、汇编语言课件08 MASM语法(2)段定义伪指令—完整段定义伪指令格式:段名SEGMENT[定位][组合][段字][‘类别’]……;语句序列段名ENDS其中:[]部分可以没有格式:段名SEGMENT[定位][组合][段字][‘类别’]……;语句序列段名ENDS表示对逻辑段起始边界的选择,可为:PAGE段从一个页边界开始(XXX00H)PARA段节边界开始(XXXX0H)DWORD段从一个4倍数地址开始WORD段从一个偶地址开始BYTE段可以从任意单元开始完整段定义伪指令的默认定位属性是PARA格式:段名SEGMENT[定位][组合][段字][‘

2、类别’]……;语句序列段名ENDS组合部分为下列之一:NONE独立段(缺省)PUBLIC连续段COMMON覆盖段STACK堆栈段AT表达式定位于表达式指定的地址处MEMORY定位于所有段之上格式:段名SEGMENT[定位][组合][段字][‘类别’]……;语句序列段名ENDSNONE独立段(缺省):本段与其它段没有连接关系,这是完整段定义伪指令默认的段组合方式格式:段名SEGMENT[定位][组合][段字][‘类别’]……;语句序列段名ENDSPUBLIC连续段在满足定位关系的前提下,连接程序把本段与所有同名段相邻地连接在一起,形成新的逻辑段。(

3、可在程序的不同位置及不同的文件中使用段定义语句定义一个逻辑段)格式:段名SEGMENT[定位][组合][段字][‘类别’]……;语句序列段名ENDSCOMMON覆盖段产生一覆盖段,两个同名段起始地址相同,用较长的段覆盖较短的段格式:段名SEGMENT[定位][组合][段字][‘类别’]……;语句序列段名ENDSSTACK堆栈段把所有的同类别段连接在一起,段基值→SS,且自动为SP初始化。在一个程序中一般应该有一个堆栈段。格式:段名SEGMENT[定位][组合][段字][‘类别’]……;语句序列段名ENDSAT表达式定位于表达式指定的地址处表示本段

4、定位在表达式所指示的节的边界上例如:AT0930H表示本段的物理地址从09300H开始格式:段名SEGMENT[定位][组合][段字][‘类别’]……;语句序列段名ENDSMEMORY定位于所有段之上表示本段定位在所有其它段的最高地址格式:段名SEGMENT[定位][组合][段字][‘类别’]……;语句序列段名ENDSUSE16/USE32选择用16/32位cpu指令缺省USE16格式:段名SEGMENT[定位][组合][段字][‘类别’]……;语句序列段名ENDS当连接程序组织段时,将所有的同类别段相邻分配段类别可以是任意名称,但必须位于单引号

5、中大多数MASM程序习惯使用'code'、'data'和'stack’来分别指名代码段、数据段和堆栈段,以保持代码和数据的连续DA1SEGMENTPARA‘DATA’DD1DB10DUP(12H)DA1ENDSSTA1SEGMENTSTACK‘STACK0’DW20HDUP(?)STA1ENDSDA2SEGMENTPARA‘DATA’DD2DB20HDUP(13H)DA2ENDSSTA2SEGMENTSTACK‘STACK0’DW30HDUP(?)STA2ENDSCODESEGMENT……CODEENDSDA11213DA2CODEDD1DD26

6、0HSTA1131212STA240H20H10PARAASSUME伪指令:指定当前段格式:ASSUME段寄存器名:段名,…..段寄存器名:段名例:ASSUMEcs:CODE,ds:DATA在程序运行过程中,可重新设置当前段,也可以删除原有的设置ASSUMEES:NOTHING;删除对ES的设置ASSUME只说明了哪些段为当前段,具体的段基值并没有装入1、DS与ES的装入用ASSUME将DS/ES与相应的段建立联系后,用数据传送指令MOVAX,段名MOVDS/ES,AX;装入DS或ES2、SS与SP的装入可以自己写一段代码,也可以由操作系统负责自

7、动给初始化。操作系统自动实现:STACKSEGMENTSTACKDB200DUP(?)STACKENDSCODESEGMENTASSUME CS:CODE,SS:STACKCODESEGEMNTASSUMECS:CODE,SS:STACK1START:…………CODEENDSENDSTART3、CS与IP的装入用结束伪指令:每个源程序都必须以END伪指令结束:一般写在代码段之后。END起始地址(标号)定位伪指令汇编程序按照书写硬指令和伪指令的先后顺序,一个接着一个分配存储空间,按照段定义伪指令规定的边界定位属性确定每个逻辑段的起始位置(包括偏移地

8、址)。可以利用定位伪指令控制数据或代码所在的偏移地址。伪指令有:ORG,EVEN和ALIGN,它们可在数据段使用,也可在代码段使用。当前

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

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

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