《计算机接口技术及应用》课件-5.1 指令系统概述_第1页
《计算机接口技术及应用》课件-5.1 指令系统概述_第2页
《计算机接口技术及应用》课件-5.1 指令系统概述_第3页
《计算机接口技术及应用》课件-5.1 指令系统概述_第4页
《计算机接口技术及应用》课件-5.1 指令系统概述_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

微机原理及应用第五章8086指令系统第一讲指令系统概述指令系统概述首先,我们来看几个概念,第一个是指令,指令是控制计算机完成指定操作并能够被计算机所识别的命令,也就是说我们人类下达给计算机让他去执行某项操作的一些命令指令控制计算机完成指定操作能被计算机所识别机器指令,机器指令是指令的二进制代码的形式。我们说计算机能够识别的只有二进制数,所以计算机能够识别并且能够看懂的指令就是二进制的代码表示的,比如CD21h,它的二进制代码的形式是这样子的,指令写成这样计算机才能够识别,但是,写成这样的指令对于人类来说既不好识别,也不好理解机器指令指令的二进制代码形式例:CD21H(1100110100100001)计算机能识别,人类不好识别理解于是就有汇编指令,汇编指令是我们把二进制的代码用助记符的形式表示出来的指令,助记符就是帮助人来记忆的符号,所以说汇编指令纯粹是为了便于人写代码和看懂代码而设计的编程语言,比如int21h,它就是把二进制代码用助记符的形式来表示了,这样人比较容易能够看懂,但是,这样的话,人看懂了,计算机又看不懂了呀,没关系,程序员开发了编译软件,能够将汇编语言编程成二进制代码的形式,再给计算机去执行。汇编指令用助记符形式表现的指令便于人写代码和看懂代码例:INT21H编译软件:将汇编语言编程成二进制代码形式同学们都学过C语言,汇编语言和C语言的不同,C语言汇编语言C语言属于高级语言,而汇编语言属于低级语言,这里的高级和低级的含义是相对硬件来说。高级语言C语言低级语言汇编语言硬件由于汇编语言更贴近硬件的处理,所以它属于低级语言,而C语言更贴近人的想法和需求所以它属于高级语言。学习了汇编语言更便于你去理解计算机的硬件在做的处理。高级语言C语言低级语言汇编语言更贴近硬件的处理更贴近人的想法和需求最后是指令系统,指令系统是CPU所有指令和它的使用规则构成的系统,指令系统CPU所有指令及其使用规则的集合我们将要学习的就是8086指令系统,包括一系列的指令和这些指令的使用规则。下面来看一下指令的基本构成,我们这里说的指令是汇编语言写成的指令8086指令系统(一系列指令及其使用规则)指令的基本构成(汇编语言写成的指令)指令一条指令包括操作码和操作数,这里我们把操作数放到方括号里的含义是说这个操作数它可能有也可能没有,换句话说,在一条指令中,可能有一个操作数,也可能有两个操作数,也可能没有操作数,这要看具体的指令使用规则操作码操作数指令一条指令包括操作码和操作数,这里我们把操作数放到方括号里的含义是说这个操作数它可能有也可能没有,换句话说,在一条指令中,可能有一个操作数,也可能有两个操作数,也可能没有操作数,这要看具体的指令使用规则该操作数可有可无可以有0个、1个或2个操作码操作数[]指令操作码体现的是我们想要需要计算机执行什么样的操作,说明要执行什么操作操作码操作数[]指令比如,你想让他传送数据,还是让他进行算数运算,这些都在操作码中体现,操作码(例:传送数据、算数运算)说明要执行什么操作操作数[]指令一般操作码用三个大写字母表示,通常是对应的英文单词的简写操作码用三个大写字母表示(对应英文单词的简写)操作数[]指令比如数据传送指令用MOVE的前三个大写字母MOV来表示,加法运算用Addition的前三个大写字母ADD来表示,这才便于人去记忆和使用操作码数据传送指令MOVE:MOV操作数[]加法运算Addition:ADD便于记忆便于使用指令我们说操作数最多有两个,那我们来看两个操作数的情况,两个操作数中间要用逗号分隔,它们表示本操作要执行的那个对象。比如说我们要进行加法运算,那要给两个数才能相加呀,操作码操作数[]操作数[],本操作的执行对象加法运算指令所以你看ADD的后面就有两个操作数,这两个操作数就是加数和被加数操作码操作数[]操作数[],ADDAX,[SI+6]加数和被加数但是,操作数放的位置不一样,它们的含义也不同指令操作码操作数[]操作数[],位置不同,含义不同离操作码比较近的这个操作数是目的操作数,指令操作码操作数[]操作数[],目的操作数指令操作来源或是操作后的存储目的地它既可能是操作的来源,也可能是操作完成后要存储的目的地操作码操作数[]操作数[],目的操作数指令逗号后边的这个操作数是操作数的来源操作码操作数[]操作数[],操作数来源指令只表示来源不表示目的地他只表示操作数的一个来源不表示操作数的目的地,说到这里,老师就要提醒同学们,源操作数可以是任何数字或者CPU能够获取的数值,但是目的操作数它要存放操作的结果,所以它必须是一个能够存放数据的地方,否则就不能做目的操作数使用。操作码操作数[]操作数[],操作数来源源操作数:任何数字或者CPU能够获取的数值目的操作数:可以存放数据的空间下面通过几条指令来熟悉一下操作码和操作数通过指令熟悉操作码和操作数下面通过几条指令来熟悉一下操作码和操作数,第一个moveax逗号bx,这里的操作码是mov,ax和bx是两个操作数,MOVAX,BX操作码操作数因为他们用逗号相隔了,AX更靠近操作码因此它是目的操作数,MOVAX,BX目的操作数BX在逗号的后面,所以BX是源操作数MOVAX,BX源操作数这条指令的含义是把BX的内容传送给AX,你看作为目的操作数,AX必须要能够存放数据的空间。MOVAX,BX含义:把BX的内容传送给AXAX:能够存放数据的空间下一条指令中add是操作码,AX是目的操作数,SI加六加方括号是源操作数ADDAX,[SI+6]操作码目的操作数源操作数这里SI+6用方括号括起来了,表示它来自内存单元,由于这是一个数据,所以它应该在数据段里,它的段基址是DSADDAX,[SI+6]方括号表示来自内存单元在数据段里,段基址是DSSI+6的值就是偏移地址,当你知道了DS和SI+6的大小,就可以按图索骥,从内存中找到这个操作数了ADDAX,[SI+6]值为偏移地址再看下一条指令,操作码是INC,操作数是BX加方括号INC[BX]操作码操作数这里只有一个操作数,那这个操作数既是源操作数又是目的操作数最后一条指令hlt它没有操作数,只有一个操作码,这就是操作数是零的情况INC[BX]既是源操作数又是目的操作数这里只有一个操作数,那这个操作数既是源操作数又是目的操作数,最后一条指令hlt它没有操作数,只有一个操作码,这就是操作数是零的情况HLT没有操作数,只有一个操作码操作数是零我们将会在这一章里面介绍这些常用的指令,包括进行数据传送的指令,进行算术运算的指令,还有逻辑运算指令,移位的指令以及串操作的指令和进行控制转移相关的指令数据传送指令算术运算指令逻辑运算指令移位指令串操作指令控制转移相关指令请同学们在学习的过程中注意理解操作码的含义,通过多使用去掌握这些指令的用法00000助记符数据传送数据传送MOV,PUSH/POP,XCHG等地址传送LEA,LDS,LES输入输出IN,OUT算术运算加法ADD,ADC,INC减法SUB,SBB,DEC,NEG,CM

温馨提示

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

评论

0/150

提交评论