第3章 80x86指系统和寻址方式.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第3章 80x86指系统和寻址方式.ppt》由会员分享,可在线阅读,更多相关《第3章 80x86指系统和寻址方式.ppt(96页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式1.1.指令和指令系统指令和指令系统指令是指计算机进行某种操作的命令。指令是指计算机进行某种操作的命令。指令系统是指令的集合。指令系统是指令的集合。助记符是指用英文字母规定的指令符号助记符是指用英文字母规定的指令符号 第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式2.2.指令的组成指令的组成 由操作码和操作数组成。由操作码和操作数组成。指令
2、的一般格式如下:指令的一般格式如下:操作码操作码 操作数操作数,操作数操作数 操作码又称指令码,是指指令要进行的是什么样的操作码又称指令码,是指指令要进行的是什么样的操作。操作。操作数是指参加本指令运算的数据。操作数可以是操作数是指参加本指令运算的数据。操作数可以是一个,也可以是两个,还可以没有操作数或隐含操作一个,也可以是两个,还可以没有操作数或隐含操作数。操作数分为三类:立即数操作数、寄存器操作数数。操作数分为三类:立即数操作数、寄存器操作数和存储器操作数。和存储器操作数。第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式(1)立即数操作数 立即数是指具有固定数值
3、的操作数。操作数跟随指令操作码一起存放在指令区,故又称为指令区操作数。(2)寄存器操作数 操作数事先存放在某寄存器中(CPU的通用寄存器、专用寄存器或段寄存器)。(3)存储器操作数 操作数存放在存储器中,知道存储器的地址即可寻到操作数。第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式3.3.指令的表示方法指令的表示方法 指令用一组二进制编码来表示,计算机根据二进制指令用一组二进制编码来表示,计算机根据二进制代码去完成所需的操作。常用助记符与操作数来表代码去完成所需的操作。常用助记符与操作数来表示指令。示指令。第第3 3章章 80 x8680 x86指令系统和寻址方式
4、指令系统和寻址方式 寻址方式寻址方式是指如何求出操作数有效地址的方法。寻址操作是指计算机按照指令给出的寻址方式求出操作数有效地址的过程。根据操作数的类型及来源大致分为三类:数据寻址、转移地址寻址、I/O 寻址。第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式7 7 种基本的数据寻址方式种基本的数据寻址方式(1)(1)立即寻址立即寻址(2)(2)寄存器寻址寄存器寻址(3)(3)直接寻址直接寻址(4)(4)寄存器间接寻址寄存器间接寻址(5)(5)寄存器相对寻址寄存器相对寻址(6)(6)基址变址寻址基址变址寻址(7)(7)相对基址变址寻址相对基址变址寻址第第3 3章章 8
5、0 x8680 x86指令系统和寻址方式指令系统和寻址方式 1.立即寻址操作数直接包含在指令中。跟在操作码的后面,与操作码一起放在代码段区域中。例如:MOV AX,3000H立即数可以是8 位的,也可以是16 位的。若是16 位的,则存储时低位在前,高位在后。立即寻址主要用来给寄存器或存储器赋初值。第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 2.2.直接寻址直接寻址操作数地址的操作数地址的1616位偏移量直接包含在指令位偏移量直接包含在指令中。它与操作码中。它与操作码起存放在代码段区域起存放在代码段区域例如:例如:MOV AXMOV AX,DSDS:2000H
6、2000H;0000偏移量低字节偏移量低字节2020偏移量高字节偏移量高字节第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 这种寻址方法是以数据段的地址为基这种寻址方法是以数据段的地址为基础,可在多达础,可在多达64 KB64 KB的范围内寻找操作数。的范围内寻找操作数。允许段超越,即还允许操作数在以代码段、允许段超越,即还允许操作数在以代码段、堆栈段或附加段为基准的区域中。堆栈段或附加段为基准的区域中。MOV MOV AXAX,2000H 2000H;数据段;数据段MOV BXMOV BX,ESES:3000H 3000H;段超越,操作;段超越,操作数在附加段数
7、在附加段即绝对地址即绝对地址=(ESES)16+3000H 16+3000H 第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 3.寄存器寻址寄存器寻址是指操作数存放在寄存器中。对于16 位操作数,寄存器可以是:AX,BX,CX,DX,SI,DI,SP,BP,CS,DS,SS,ES;对8 位操作数,寄存器可以是:AH,AL,BH,BL,CH,CL,DH,DL。例如:MOV DS,AX MOV AL,BH第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式特点:(1)操作数在寄存器中,寄存器在CPU 内部,指令执行时,操作就在CPU 的内部进行
8、,不需要访问存储器来取得操作数,因而执行速度快。(2)寄存器符号比内存地址短,汇编后机器码长度最短。(3)寄存器寻址方式既可用于源操作数,也可用于目标操作数,还可以两者都用寄存器寻址方式。第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 4.寄存器间接寻址操作数是在存储器中,但是,操作数地址的16 位偏移量包含在以下四个寄存器SI,DI,BP,BX 之一中。可以分成两种情况:(1)以SI,DI,BX 间接寻址,则通常操作数在现行数据段区域中,即数据段寄存器(DS)16 加上SI,DI,BX 中的16 位偏移量,为操作数的地址 第第3 3章章 80 x8680 x86
9、指令系统和寻址方式指令系统和寻址方式例如:MOV AX,SI 操作数地址是:(DS)16+(SI)00偏移量低字节20偏移量高字节第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 (2)寄存器BP 间接寻址,则操作数在堆栈段区域中。即堆栈段寄存器(SS)16与BP 的内容相加作为操作数的地址 例如:MOV AX,BP 操作数地址是:(SS)16+(BP)若在指令中规定是段超越的,则BP的内容也可以与其他的段寄存器相加,形成操作数地址。例如:MOV AX,DS:BP 操作数地址是:(DS)16+(BP)第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统
10、和寻址方式 5.寄存器相对寻址(变址寻址)由指定的寄存器内容,加上指令中给出的8 位或16 位偏移量作为操作数的偏移地址。可以作为寄存器变址寻址的四个寄存器是SI,DI,BX,BP。(1)若用SI,DI 和BX 作为变址,则与数据段寄存器相加,形成操作数的地址即默认在数据段;(2)若用BP 变址,则与堆栈段寄存器相加,形成操作数的地址即默认在堆栈段。例如:MOV AX,COUNTSI;操作数地址是:(DS)16+(SI)+COUNT第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 6.基址变址寻址 把BX 和BP 看成是基址寄存器,把SI,DI 看着是变址寄存器,把
11、一个基址寄存器的内容加上一个变址寄存器的内容,再加上指令中指定的8位或16 位偏移量作为操作数的偏移地址 第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 操作数在存储器中,其偏移地址由(基址寄存器(变址寄存器)+相对偏移量形成。例如:MOV AX,BXSI 或MOV AX,BX+SI也可放置一个相对偏移量,如COUNT,MASK 等,用于表示相对寻址。MOV AX,MASKBXSIMOV BH,COUNTDIBP;MOV BH,COUNTBP+DI若用BX 作为基地址,则操作数在数据段区域若用BP 作为基地址,则操作数在堆栈段区域第第3 3章章 80 x8680
12、x86指令系统和寻址方式指令系统和寻址方式 7.相对基址变址寻址相对基址变址寻址中操作数的有效地址是一个基址寄存器和一个变址寄存器的内容和8 位或16 位位移量这三者之和。例如:MOV AX,BX+SI+0080H,即将BX 与SI 中的内容与0080H 相加作有效地址。第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 例如:设BX=0123H DI=1000H DS=3200H,默认DS 作为操作数对应的段寄存器(假定没使用段前缀),试指出下列指令的寻址方式,并写出其操作数的有效地址和物理地址。(1)MOV AX,1A38H(2)MOV AX,BX(3)MOV A
13、X,BX+1A38H(4)MOV AX,BX+DI(5)MOV AX,BX+DI+1A38H第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式(1)直接寻址有效地址=1A38H,物理地址=32000H+1A38H=33A38H(2)寄存器间接寻址有效地址=0123H,物理地址=32000H+0123H=32123H(3)寄存器相对寻址有效地址=0123H+1A38H=1B5BH,物理地址=32000H+1B5B=33B5BH第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 4)基址变址寻址 有效地址=0123H+1000H=1123H,物理
14、地址=32000H+0123H=33123H(5)相对基址变址寻址有效地址=0123H+1000H+1A38H=2B5BH,物理地址=32000H+2B5BH=34B5BH第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式指令中用到的一些符号所表示的含义。mem 存储器操作数opr 表示操作数ac 累加器操作数(AX 或AL)src 源操作数dist 目的操作数data 立即数第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式disp 8 位或16 位位移量port 输入输出端口,可用数字或表达式表示 存储单元的内容 reg 寄存器segre
15、g 段寄存器count 移位次数,可以是1 或CL第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式指令系统分为:数据传送类指令算术运算类指令逻辑运算与移位类指令串操作类指令控制转移类指令处理器控制指令 第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 1.1.数据传送数据传送MOV MOV 指令指令 一般格式:MOV OPRD1,OPRD2MOV 是操作码,OPRD1 和OPRD2 分别是目的操作数和源操作数。功能:完成数据传送 具体来说,一条数据传送指令能实现:(1)CPU 内部寄存器之间数据的任意传送 MOV CX,BX;字传送 第第
16、3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 (2)立即数传送至CPU 内部的通用寄存器组(即AX,BX,CX,DX,BP,SP,SI,DI)。MOV CL,4 (3)CPU 内部寄存器(除了CS 和IP 以外)与存储器(所有寻址方式)之间的数据传送。MOV AL,BUFFER第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式(4)能实现用立即数给存储单元赋值MOV 2000H,25H对于MOV 指令应注意几个问题:存储器传送指令中,不允许对CS 和IP 进行操作 第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式
17、 两个操作数中,除立即寻址之外必须有一个为寄存器寻址方式,即两个存储器操作数之间不允许直接进行信息传送;如我们需要把地址(即段内的地址偏移量)为AREAl 的存储单元的内容,传送至同一段内的地址为AREA2 的存储单元中去,MOV 指令不能直接完成这样的传送,但我们可以CPU 内部寄存器为桥梁来完成这样的传送第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 两个段寄存器之间不能直接传送信息,也不允许用立即寻址方式为段寄存器赋初值;如:MOV DS,0;MOV DS,ES 目的操作数,不能用立即寻址方式 第第3 3章章 80 x8680 x86指令系统和寻址方式指令系
18、统和寻址方式 2.2.堆栈指令堆栈指令堆栈是“先进后出,后进先出”的一种数据结构 (1)(1)入栈指令入栈指令PUSHPUSH一般格式:PUSH OPRD源操作数可以是CPU 内部的16 位通用寄存器、段寄存器(CS 除外)和内存操作数(所有寻址方式)。入栈操作对象必须是16 位数。功能:将数据压入堆栈执行步骤为:SP=SP-2;SP=操作数低8 位;SP+1=操作数高8 位第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式例如:PUSH BX执行过程为:SP=SP-1,SP=BH;SP=SP-1,SP=BL第第3 3章章 80 x8680 x86指令系统和寻址方式指
19、令系统和寻址方式 (2)(2)出栈指令出栈指令POPPOP一般格式:POP OPRD功能:将数据弹出堆栈对指令执行的要求同入栈指令。例如:POP AX POP BX POP DS在调用子程序或转入中断服务程序时,堆栈被用于保存返回地址。第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 3.3.交换指令交换指令XCHGXCHG一般格式:XCHG OPRD1,OPRD2功能:完成数据交换段寄存器和立即数不能作为一个操作数,不能在累加器之间进行。例如:XCHG AL,CL XCHG AX,DI第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 利
20、用XCHG,实现两个内存单元VALUE1 和VALUE2 的内容互换 MOV AX,VALUE1 XCHG AX,VALUE2 MOV VALUE1,AX 第第3 3章章 80 x8680 x86指令系统和寻址方式指令系统和寻址方式 4.4.累加器专用传送指令累加器专用传送指令(1)IN(1)IN 指令指令一般格式:一般格式:IN ALIN AL,n n;B ALnB ALn,直接寻址直接寻址IN AXIN AX,n n;W AXn+1nW AXn+1n,直接寻址直接寻址IN ALIN AL,DX DX;B ALDXB ALDX,间接寻址间接寻址IN AXIN AX,DX DX;W AXDX+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 80x86指系统和寻址方式 80 x86 系统 寻址 方式
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内