汇编语言程序设计教程 教学课件 作者 王庆生 5.ppt

汇编语言程序设计教程 教学课件 作者 王庆生 5.ppt

ID:50328705

大小:290.50 KB

页数:74页

时间:2020-03-08

汇编语言程序设计教程 教学课件 作者 王庆生 5.ppt_第1页
汇编语言程序设计教程 教学课件 作者 王庆生 5.ppt_第2页
汇编语言程序设计教程 教学课件 作者 王庆生 5.ppt_第3页
汇编语言程序设计教程 教学课件 作者 王庆生 5.ppt_第4页
汇编语言程序设计教程 教学课件 作者 王庆生 5.ppt_第5页
资源描述:

《汇编语言程序设计教程 教学课件 作者 王庆生 5.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第5章伪指令与源程序格式汇编语言程序的语句:指令、伪指令、宏指令。伪指令(伪操作):主要用来定义数据变量和程序结构。5.1伪指令指令是在程序运行期间由计算机的CPU来执行的。伪指令是在汇编程序对源程序进行汇编期间由汇编程序处理的操作。5.1.1处理机选择伪指令告诉汇编程序选择哪一种指令系统。处理机选择伪指令有以下几种:.8086.286.286P.386.386P.486.486P.586.586P指令中的点“.”需要。默认选择为8086指令系统。5.1.2段定义伪指令例5.1段定义和支持386指令datasegment;定义数据段databuf

2、fdb‘hello,world!$’dataendscodesegment;定义代码段codeassumecs:code,ds:data;指定段寄存器和段的关系·386;选择386指令start:movax,data;对ds赋data段基地址movds,axleabx,buffmoveax,‘ABCD’mov[bx],eaxmovdx,offsetbuffmovah,9int21hmovah,4chint21hcodeendsendstart1.段定义伪指令段定义伪指令格式:segment_nameSEGMENT……segment_nameEND

3、SASSUME伪指令格式:ASSUMEregister_name:segment_name,register_name:segment_nameassume伪指令只是指定把某个段分配给哪个段寄存器,并不能把段地址装入段寄存器中,所以在代码段中,还必须把段地址装入相应的段寄存器中,通常用两条MOV指令完成这一操作,但是代码段不需要这样做,它在程序初始化的时候完成。2.简化的段定义伪指令.MODEL定义存储模型。.DATA定义数据段,默认段名为_DATA。@DATA表示段名_DATA,在指令中表示段地址。例5.2·modelsmall;定义存储模型为

4、small·data;定义数据段datastringdb‘hello,world!$’·code;定义代码段codestart:movax,@data;对ds赋data段基地址movds,axmovdx,offsetstringmovah,9int21hmovah,4chint21hendstart5.1.3程序开始和结束伪指令表示源程序结束的伪指令格式:END[标号]标号指示程序开始执行的起始地址。若有多个程序模块,则只需指明主程序开始时的标号,其它子程序模块则只用END而不能指定标号。5.1.4数据定义与存储器单元分配伪指令指令性语句。产生目

5、标代码。格式:[标号:]操作码操作数[;注释]指示性语句。不产生目标代码,仅提供汇编信息。格式:[变量名]伪指令N个操作数[;注释]标号就是指令的符号地址。标号的三种属性:①段值(指明存在于哪个段中)标号对应存储段的段地址②偏移值(指明段内的位置)标号在存储段内的偏移地址③类型(指明标号的类型属性)标号的类型可以是NEAR和FAR两种变量实质上就是某一个或几个存储单元。变量的三种属性:①段值(指明存在于哪个段中)变量(名字)对应存储单元的段地址②偏移值(指明段内的位置)变量(名字)对应存储单元的偏移地址③类型(指明每个变量占用的字节数)变量名的类

6、型可以是DB(1字节)、DW(2字节)、DD(4字节)、DF(6字节)、DQ(8字节)、DT(10字节)等标号与变量区别变量定义一般在非代码段,是数据在内存中存放的符号地址,是在程序运行期间可随时被修改数值的数据对象,是内存的一个数据区的名字。由标识符构成,其后不带冒号。标号定义一般出现在代码段中,表示指令在内存中存放的符号地址。它对应的值在汇编时自动计算。是由标识符及后一个冒号构成。定义数据类型的伪指令:DB:用来定义字节,其后的每个操作数都占用1个字节。DW:用来定义字,其后的每个操作数都占用1个字。DD:用来定义双字,其后的每个操作数都占用

7、2个字。DF:用来定义六个字节的字,其后的每个操作数都占用48位。DQ:用来定义4个字,其后的每个操作数都占用4个字。DT:用来定义10个字节,其后的每个操作数都占用10个字节。程序中默认的数据为十进制数。当数据第一位不是数字时,应在前面加0。负数均为补码形式存放。字符串用‘’括起来。‘?’表示只分配存储单元,不存入数值。DUP?复制伪指令格式:countDUP(operand,…,operand)操作:将括号中的操作数重复count次,count可以是一个表达式,其值应该是一个正数。DUP操作可嵌套。例5.3操作数为常数、数据表达式。D_BYT

8、EDB10,10HD_WORDDW14,100H,-5,0ABCDHD_DWORDDD4×8例5.4操作数为字符串。问号‘?’仅预留空间

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

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

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