微机原理及应用 课件 6.2 汇编语言源程序的语句_第1页
微机原理及应用 课件 6.2 汇编语言源程序的语句_第2页
微机原理及应用 课件 6.2 汇编语言源程序的语句_第3页
微机原理及应用 课件 6.2 汇编语言源程序的语句_第4页
微机原理及应用 课件 6.2 汇编语言源程序的语句_第5页
已阅读5页,还剩20页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理及应用第六章汇编语言程序设计第二讲汇编语言源程序的语句下面我们来看一下汇编语言的语句类型汇编语言源程序的语句汇编语言分两大类,一类是指令性的语句一类是指示性的语句,汇编语言指令性的语句指示性的语句0102指令性的语句是由CPU可以执行的语句构成的,01指令性的语句CPU由CPU可以执行的语句构成比如这个例子,START冒:MOVAX,DSEG。这里的MOV指令大家都很熟悉了,它能够进行数据传输,这条指令经过汇编后变成CPU可以识别的语句,汇编完成以后,CPU会将DSEG的内容传输到AX中01指令性的语句能够进行数据传输汇编后变成CPU可以识别的语句CPU将DSEG的内容传输到AX中START:MOVAX,DSEG指令性语句的格式:一般是一个操作码加上他的操作数,这个操作数的个数是由操作码来定义的。01指令性的语句START:MOVAX,DSEG格式操作数的个数由操作码来定义[标号:][前缀]操作码[操作数[,操作数]][;注释]在操作码的前边可能会有标号或者前缀。它们表示这条指令的地址。01指令性的语句START:MOVAX,DSEG格式表示这条指令的地址[标号:][前缀]操作码[操作数[,操作数]][;注释]如果需要对这条指令进行注释,那就要写到这条指令的后边,用分号跟语句相隔01指令性的语句START:MOVAX,DSEG格式对指令进行注释,写指令后边[标号:][前缀]操作码[操作数[,操作数]][;注释]另一类是指示性的语句。指示性的语句只起说明的作用,不会生成目标代码,所以也叫伪操作语句。指示性的语句02只起说明作用,不生成目标代码伪操作语句我们来看一个例子,比如说DATA1DW0f865h。这里其实是定义了一个变量DATA1,它的类型是一个word。这个变量的初值是f865h。指示性的语句02定义一个变量类型是一个wordDATA1DW0F865HDATA1是这个变量的名字,DW是一个伪操作,也叫伪指令,后边的0f865h就是这个伪操作的操作数。同样的,如果对这句话有注释,也可以加在这条语言的后边,用分号相隔指示性的语句02变量的名字伪操作(伪指令)DATA1DW0F865H伪操作的操作数若有注释加在语言后边,用分号相隔我们再看一下汇编语言中的操作数操作数汇编语言汇编语言中的操作数包括数据、存储器操作数和寄存器操作数操作数汇编语言数据项存储器单元寄存器其中数据操作数又包括常数,标号,变量和表达式,操作数汇编语言数据项存储器单元寄存器常数标号变量表达式常数就是我们说的立即数。它直接跟着指令的后面放在代码段中,取操作数不需要多余的时间操作数汇编语言存储器单元寄存器常数立即数直接跟指令后面放代码段中取操作数不需要多余的时间具体来说,常数包括数字常量和字符常量,汇编语言常数数字常量字符常量数字常量就是各种进制表示的数,它们主要通过其后跟的大写字母来区分,汇编语言各种进制表示的数数字常量通过其后跟的大写字母区分如果是大写字母D它就是十进制的常量,如果是大写字母B,它就是二进制的常量,如果是大写字母H,它就是十六进制的常量。汇编语言各种进制表示的数数字常量通过其后跟的大写字母区分十进制常量以字符D结尾二进制常量以字符B结尾十六进制常量以字符H结尾字符常量通常是用单引号引起来的字母或符号,实质上在代码段中存放的是这些字母或符号的ASCII码汇编语言字符常量单引号引起的字母或符号如‘AB’存放字母或符号的ASCII码再来认识一下标号标号一般是用符号表示的地址它的使用规则是不能跟指令助记符或者伪指令重名否则会引起歧义而导致编译不通过第二个规则是标号不能用数字开头第三个规则是标号的字符个数不能太长,不能超过31个,标号用符号表示的地址汇编语言使用规则不能与指令助记符或伪指令重名不允许由数字打头字符个数不超过31个通常标号有三种属性,一种是它的段。标号所在的代码段的地址就是它的段。标号所指示的地址到段地址之间的字节数就是它的偏移量。还有一种属性就是类型。类型分段内和端外,用NEAR表示段内,用FAR表示段外标号用符号表示的地址汇编语言属性段:标号所在段的代码段地址偏移量:标号所在段的段地址到定义该标号的地址之间的字节数类型:NEAR(段内)和FAR(段间)比如这个例子Label:MOVAX,NUM1这里的label是一个标号在JMP调用这个标号的时候用了NEAR,表示它是在段内的跳转,而且LABEL高速JMP跳转指令的入口地址在哪里。汇编语言LABLE:MOVAX,NUM1标号:JMPNEARLABLE;符号目标操作数再来看一下变量,我们给一个数据块或者数据区命了一个名字,在指令中可以直接用这个名字来指代这个内存区域,从而作为一个存储器操作数来使用,变量的命名规则是必须以字母开头,由于变量的内容是可变,所以才跟它叫变量变量使用规则某个数据区的名字,在指令中可以作为存储器操作数引用必需以字母开头由于数据区内容可以改变,所以变量也可以改变变量也具有三种属性,包括段、偏移量和类型,段就是变量所在段的地址,通常变量在DS或者ES段里,它的偏移量是他所在的位置距离段首地址之间的字节数,变量的类型有Byte,word,dword,qword和tword分别表示这个变量的字长是一个字节,两个字节、四个字节、八个字节或十个字节变量属性段偏移量类型:变量所在段的地址,段值在DS或ES寄存器中:变量所在段的段地址到变量地址之间的字节数:BYTE、WORD、DWORD(双字节)、QWORD(四字节)、TWORD(十字节)最后,我们来比较一下变量和标号他们的区别是变量名就是变量的符号地址,而标号是指令的符号地址,也就是说变量指向的是数据空间的一块,而标号指向的是一个指令的地址标号变量区别变量名就是变量的符号地址标号是指令的符号地址MOVAX,VAR1MOVBL,VAR2JMPDONE.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论