微机原理与接口技术 第3章ppt课件.ppt

微机原理与接口技术 第3章ppt课件.ppt

ID:58793027

大小:272.50 KB

页数:58页

时间:2020-10-03

微机原理与接口技术  第3章ppt课件.ppt_第1页
微机原理与接口技术  第3章ppt课件.ppt_第2页
微机原理与接口技术  第3章ppt课件.ppt_第3页
微机原理与接口技术  第3章ppt课件.ppt_第4页
微机原理与接口技术  第3章ppt课件.ppt_第5页
资源描述:

《微机原理与接口技术 第3章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章8086/8088指令系统与 汇编语言设计西安石油大学电子工程学院3.38086/8088汇编语言源程序的结构3.3.1汇编语言的语句格式在介绍汇编语言的语句格式之前,我们先简单介绍一个基本的汇编语言源程序结构.一个基本的汇编语言程序框架如下:stackSEGMENTDB100DUP(‘stack’)stackENDSdataSEGMENT<数据、变量在此定义>dataENDScodeSEGMENTASSUMECS:code,DS:data,ES:data,SS:stackstart:MOVAX,dataMO

2、VDS,AXMOVES,AX<此处加入你自己的程序段>MOVAH,4CHINT21HcodeENDSENDstart堆栈段数据段代码段从上例可以看出汇编语言的源程序是分段的,由几个段形成一个源程序,每一段有一个段名,以SEGMENT为段开始,以ENDS为段结束;一般一个程序含有数据段、代码段和堆栈段等;一个段由若干语句组成;源程序最后以END作为结束。3.3.1汇编语言的语句格式汇编语言的语句有两类:指令性语句——由8088指令助记符构成的语句指示性语句——由伪指令构成的语句指令性语句的格式为:标号:指令助记符目的

3、操作数,源操作数;注释指示性语句的格式为:名字伪指令操作数1,操作数2,…,操作数n;注释3.3.1汇编语言的语句格式指令性语句由CPU执行;每一条指令性语句都有一条机器指令与其对应指示性语句由汇编程序执行;它指出汇编程序应如何对源程序进行汇编,如:定义变量、分配存储单元以及指示程序开始和结束等;指示性语句无机器指令与其相对应指令性语句汇编时生成机器码; 指示性语句汇编时不生成机器码汇编语言语句的构成元素1.标号(名字):是给指令或某一存储单元地址所起的名字。可由下列字符组成:字母:A~z;数字:0~9;特殊字符:

4、?、.、@、一、$。数字不能作标识符的第一个字符,而圆点仅能用作第一个字符,标识符最长为31个字符,不能用保留字(如寄存器名,指令助记符,伪指令)当标识符后跟冒号时,表示是标号。它代表该行指令的起始地址;当标识符后不带冒号时,表示变量;伪指令前的标识符不加冒号。汇编语言语句的构成元素2.(伪)指令助记符:表示不同操作的指令,可为指令助记符,或伪指令。3.操作(参)数:是指令的操作对象。对指令性语句——0,1,2个对指示性语句——根据需要而定操作数之间以逗号分隔操作数可以是:寄存器、存储单元、常数或表达式例如:AX,

5、[DI+BX+10],200,16*8+TABLE,等等汇编语言语句的构成元素4.注解:该项可有可无,是为源程序所加的注解以分号开头,可放在指令后,也可单独一行。注意注解的写法。要写指令(段)在程序中的作用,而不要写指令的操作。例如:以下为同一条指令写的注释1)MOVCX,100;传送100到CX2)MOVCX,100;循环计数器置初值显然,第二种写法要比第一种写法要好。3.3.2段定义伪语句1.SEGMENT和ENDS伪指令我们从一个汇编语言的实例入手,介绍一些有关的伪指令和相关的知识。汇编语言的一个实例:hel

6、lo.asmdataSEGMENTHelloDB‘Hello,world!’,0DH,0AH,’$’dataENDSprogSEGMENTASSUMECS:prog,DS:datastart:MOVAX,dataMOVDS,AXLEADX,hello;取字符串首地址MOVAH,9INT21H;显示字符串MOVAH,4CHINT21H;退回DOSprogENDSENDstart名字标号一般来说,一个完整的汇编源程序由3个段组成,即堆栈段、数据段和代码段。段定义伪指令一般格式为:段名SEGMENT[定位类型][组合类型

7、][类别]…段名ENDS其中,SEGMENT表示一个段的开始,ENDS表示一个段的结束。STACK表示所定义的段为堆栈段。DOS将程序装入内存执行时,自动将SS指向堆栈段。2.ASSUME伪指令一般形式:ASSUME段寄存器名:段名,……,段寄存器名:段名功能:说明段与段寄存器之间的缺省对应关系,即指出某个段的段地址在哪个段寄存器中。例如:ASSUMECS:cseg,DS:dseg,es:eseg,SS:sseg指出cseg、dseg和sseg分别为代码段、数据段和堆栈段。2.ASSUME伪指令注意,由于ASSUM

8、E伪指令只指明某一个段名对应于哪一个段寄存器,并没有包含将段地址送入该寄存器的操作。因此要将真实段地址装入段寄存器还需用汇编指令来实现。【例】对DS进行初始化,将数据段的段地址装入DS。CODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKMOVAX,DATAMOVDS,AX<此处加入你自己的程序段>MOVAH,4CHINT21H

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

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

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