微机原理、汇编语言与接口技术 唐瑞庭 第05章 汇编语言程序设计

微机原理、汇编语言与接口技术 唐瑞庭 第05章 汇编语言程序设计

ID:40245969

大小:1.53 MB

页数:125页

时间:2019-07-28

微机原理、汇编语言与接口技术 唐瑞庭 第05章 汇编语言程序设计_第1页
微机原理、汇编语言与接口技术 唐瑞庭 第05章 汇编语言程序设计_第2页
微机原理、汇编语言与接口技术 唐瑞庭 第05章 汇编语言程序设计_第3页
微机原理、汇编语言与接口技术 唐瑞庭 第05章 汇编语言程序设计_第4页
微机原理、汇编语言与接口技术 唐瑞庭 第05章 汇编语言程序设计_第5页
资源描述:

《微机原理、汇编语言与接口技术 唐瑞庭 第05章 汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章汇编语言程序设计内容提要本章描述了汇编语言源程序结构、汇编语言语句及其格式, 讲解了常用伪指令语句、语句中操作数项表达式及常用操作符, 介绍了常用汇编技术、汇编语言上机过程、DOS功能调用及BIOS中断调用、DEBUG调试程序, 叙述了常用程序设计方法和保护方式下的编程、模块化程序设计以及汇编语言和C语言的混合编程。5.1汇编语言程序结构5.2汇编语言语句5.3汇编语言程序上机过程5.4汇编语言程序设计5.5模块化程序设计5.1汇编语言程序结构1.方式选择伪指令Intel系列微处理器不断发展换代并保持向上兼容,不同

2、版本的MSAM对应不同代的微处理器的指令集和汇编伪指令。因此方式选择伪指令既是选择微处理机,实质上也是选择相应的指令集。MASM宏汇编程序提供的方式选择伪指令如下:.8086——只汇编8086/8088的指令,此为默认方式.286或.286C——同.8086并只汇编80286非特权(实模式)指令.286P——同.8086并汇编80286全部指令(包括保护方式).287——用于汇编80287协处理器指令.386或.386C——同.286并汇编80386非特权(实模式)指令.386P——同.286P并汇编80386全部指令(

3、包括保护方式).387——用于汇编80387协处理器指令.486或.486C——同.386并汇编80486非特权(实模式)指令.486P——同.386P并汇编80486全部指令(包括保护方式).586或.586C——用于汇编Pentium微处理器非特权(实模式)指令.586P——用于汇编Pentium微处理器保护方式在内的所有指令1.方式选择伪指令(续)以下三条伪指令是MASM6.12引入的:.686——用于汇编PentiumPro到Pentium4微处理器非特权(实模式)指令.686P——用于汇编PentiumPro到

4、Pentium4微处理器保护方式在内的所有指令.MMX——用于汇编MMX指令.K3D——用于汇编AMD微处理器3DNOW!指令。是MASM6.13引入的.XMM——用于汇编SSE和SSE2指令。是MASM6.15引入的2.完整的段定义使用完整的段定义伪指令来定义一个段,可具体控制汇编程序MASM和连接程序LINK在内存中组织代码和数据的方式。 整个逻辑段必须用段定义语句括起来。(1)SEGMENT——ENDS伪指令<段名>SEGMENT[定位类型][组合方式][段长度][分类名]{段体}<段名>ENDS每个逻辑段都以S

5、EGMENT语句开头,以ENDS语句结束; 两语句前的段名作为逻辑段的标识符,它必须是唯一的,确定该段在存储器中的位置。(1)SEGMENT——ENDS伪指令(续)段开始和结束语句之间部分是段的内容—— 对数据段、堆栈段和附加段而言,一般由存储单元定义、分配等伪指令所组成,对代码段,则主要是由可执行指令以及某些伪指令组成。方括号中是定位类型、组合方式、分类名和段长度等的说明,视情况可以省略。若对本逻辑段在内存中的定位加以限定、或需与其它段相连接,则须按规定选择这些项。定位类型(Align-type)规定该段的起始位置。有

6、以下几种选择:BYTE:段的起始地址可以从任何单元开始,段间不留空隙,存储器利用率最高;WORD:段的起始地址为偶数,即从字的边界开始;适合字类型的数据段定位;DWORD:段的起始地址是4的整数倍,适合双字类型的数据段定位;PARA:段的起始位置是16的整数倍,即从节(24=16为一节)的边界开始;PAGE:段的起始地址必须是256的整数倍,即从页(28=256为一页)的边界开始;INPAGE:该段长度不超过256个字节(一页之内),不允许跨页存放。定位类型缺省时为PARA方式。(1)SEGMENT——ENDS伪指令(续

7、)组合方式(Combinetype)又称连接方式,规定连接程序LINK处理本段与其它逻辑段时如何进行相互连接。可以有以下几种:NONE:本段与其它段无组合关系,这是缺省方式。也可用等价的关键字PRIVATE。PUBLIC:在满足定位的条件下,将本段与其它具有PUBLIC属性的同名段连接 成一个连续的大逻辑段,公用一个段基址;连接次序由连接命令指定。COMMON:本段和其它具有COMMON属性的同名段重叠,对各段指定相同的 起始地址(即段基址),因而产生复盖。COMMON连接后段的长度是 各连接段中最大段的长度。STACK

8、:把不同模块中具有STACK属性的同名段连接成一个连续的堆栈段,连 接后的堆栈空间是被连接的各个堆栈空间之和。LINK自动将新段的段 基址送SS,将新段的长度送SP;定义堆栈段时没有将其说明为STACK类型,就要在程序中用指令给SS和SP赋值;连接程序LINK在 连接时会给出一个警告信息。MEMORY:早期版本的选项

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

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

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