计算机基础课件 第3章80x86指令系统

上传人:woxinch****an2018 文档编号:56903388 上传时间:2018-10-17 格式:PPT 页数:129 大小:2.31MB
返回 下载 相关 举报
计算机基础课件  第3章80x86指令系统_第1页
第1页 / 共129页
计算机基础课件  第3章80x86指令系统_第2页
第2页 / 共129页
计算机基础课件  第3章80x86指令系统_第3页
第3页 / 共129页
计算机基础课件  第3章80x86指令系统_第4页
第4页 / 共129页
计算机基础课件  第3章80x86指令系统_第5页
第5页 / 共129页
点击查看更多>>
资源描述

《计算机基础课件 第3章80x86指令系统》由会员分享,可在线阅读,更多相关《计算机基础课件 第3章80x86指令系统(129页珍藏版)》请在金锄头文库上搜索。

1、1,第3章 80x86指令系统,2,本章重点: 8086/8088系列CPU的各种寻址方式。 8086/8088指令系统的各种常用指令。本章难点: 8086/8088CPU系统的数据寻址方式。 8086/8088CPU系统的地址寻址方式。 8086/8088存储器寻址方式中有效地址EA的计算。 8086/8088指令系统中各种常用指令的使用方法,指令间的区别及其隐含约定。,3,指令是CPU完成某种操作的命令, CPU依靠指令来计算和控制系统,指令系统某一类CPU所能识别并执行的全部指令的集合。一个CPU的指令系统是固定的,不同类型的CPU其指令系统不同;同一系列向上兼容。程序是为要解决的问题编

2、写出来的指令集合。,4,汇编语言指令的特点,语法结构符合人类语言的共同特点 动作对象 指令操作码动作:做什么? 指令操作数对象:针对什么做动作?,5,3 .1 8086/8088指令格式与编码,6,指令的书写格式操作码 操作数1, 操作数2 操作码:必备;由CPU设计人员定义,具 有固定的写法和意义,指明要执行的操作操作数:可以是1个、2个或没有,可以是 8位或16位;可由编程人员采用不同方式 给出。,7,8086/8088的指令书写格式,例: MOV AX,BX,操作码助记符: 与动作一一对应,目/源操作数: 可能有多种组合,8,指令的编码格式一条指令中的信息按其含义分成若干个信息段,每一信

3、息段占一个字节或多个字节,且按一定的顺序排列,这便于CPU解释执行。如8086/8088CPU的指令系统,它采用16个指令字节的变字长指令格式:,9,3 .1 .2 单操作数、双操作数及多操作数 1.单操作数在一条指令中仅指明一个操作数。 2.双操作数在一条指令中同时指出两个操作数。 3.多操作数在一条指令中,同时指出二个以上操作数。 4.无操作数8086/8088 CPU的指令中最短的指令为一个字 节,称为单字节指令,这类指令只有操作码(1字 节)而无操作数或者隐含操作数。,10,3 .1 .3 80868088的操作数80868088的操作数分为以下几类:1.立即数是指令中直接参与操作的常

4、数。立即数只能作为源操作数使用,11,2. 寄存器操作数(1)指令中要操作的数据存放在8个通用寄存器或者 4个段寄存器中。(2)对于AX、BX、CX、DX可以当作8位寄存器使 用,存放字节操作数或者作为16位寄存器使用,存 放字操作数;(3)对于SI、DI、SP、BP,则只能存放字操作数;(4)对于CS、DS、ES和SS段寄存器用来存放当前操 作数的段基址,12,3. 存储器操作数此类操作数存放在指定的存储单元中,若 为字节操作数,则占用1个字节存储单元;若 为字操作数,则占用2个字节存储单元;若为 双字操作数,则占用4个字节存储单元。4. I/O端口操作数指令中参与操作的数据来源于或者要传送

5、 到I/O端口。,13,3.2 8086/8088 指令寻址方式所谓寻址就是寻找操作数(数据寻址) 或者操作数地址(地址寻址)。寻找操作数 (包括数据和地址)有各种方法,这些方法称 为寻址方式。,14,1、隐含寻址操作数并不直接出现在指令中,而是由操作码隐含地指定为某一固定内容。例: PUSH DS;目的操作数隐含为栈顶字单元POP BX ;源操作数隐含为栈顶字单元LAHF;源操作数隐含为标志寄存器低字节,目的操作数隐含为寄存器AH,15,2 、立即寻址源操作数以8位或16位常数的形式直接出现在指令中。一般用于赋值。,MOV BL , 12HMOV BX,3478H 在存储器中的存放格式,BL

6、,BH,低地址单元,高地址单元,操作码,MOV AL , 300H 正确吗?,代码段,16,3 、 寄存器寻址8位或16位寄存器的值就是操作数 本身。与其它寻址方式相比,由于操作 数存在于CPU中,指令执行时不需访存, 该方式执行速度较快。,17,MOV AX , 1234H ;(AX)1234H 源操作数是立即数寻址方式; 目的操作数是寄存器寻址方式。 MOV BX , AX ; (BX)(AX)1234H 源操作数及目的操作数均为寄存器寻址方式。,18,4、I/O 端口寻址仅用于输入/输出指令IN、OUT。 端口直接寻址端口地址在8位以内,端口地址直接做操作数。可寻址的I/O空间为256字

7、节。 例: IN AX,43HOUT 0FH,AL 端口间接寻址端口地址大于256,固定使 用DX做操作数,DX的值就是该端口的地址。 可寻址的I/O空间为100HFFFFH。例: IN AL,DXOUT DX,AX,累加器AX或AL是数据输入/输出的唯一通路!,19,什么是串?地址连续的字节或字存储单元,通常用于存放同一类数据,易于使用循环操作进行相同的数据处理。,5 、串操作寻址,DS:SI默认的源串指针,可段超越; ES:DI固定的目标串指针,不允许段超越。,20,MOVSB MOVSW 功能:将源串中DS:SI所指的串元素复制到目标串中ES:DI所指的单元处;然后自动修改SI、DI。

8、自动修改串指针:方向标志DF决定指针的修改方向 DF =0,指针加;DF =1,指针减。串元素的类型决定修改量字节串,指针加/减1;字串,指针加/减2。,21,存储器寻址方式 存储器寻址方式的操作数存放在存储器单元中。因此,要存取操作数就必须知道其存储器的单元地址。在指令中可以直接给出或间接给出操作数的地址,以达到存取操作数的目的。 指令中给出的地址只是操作数的有效地址(EA),并且是放在方括号(“ ”)中。若要从存储器中存取操作数还须得到实际的地址(物理地址)。,22,有效地址可以由以下三种地址分量组成: 位移量(Displacement):它是存放在指令中的一个8位或16位的数,但它不是立

9、即数,而是一个地址。 基址值(Base Address):它是存放在基址寄存器BX或BP中的内容。 变址值(Index Addess):它是存放在变址寄存器SI或DI中的内容。,23,对于某条具体指令,这三个地址分量可有 不同的组合。如果存在两个或两个以上的分 量,那么就需要进行加法运算,求出操作数 的有效地址(EA),进而求出物理地址(PA)。 正是因为这三种地址分量有不同的组合,才 使得对存储器操作数的寻址产生了若干种不 同的方式。,24,共有5种方式:直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址。,25,本指令也可写成 MOV AX,2000H将存储器中逻辑地

10、址为DS:2000H字单元的内容传送到AX。,1、直接寻址方式操作数存放在存储器单元中,由指令直接给出该单元的有效地址EA(即16位段内偏移量)。,26,在常数位移量中,2000H必须加上方括号,它是地址EA。从指令功能看,不是将立即数2000H传送至累加器AX,而是将有效地址为2000H所指字存储单元内容传送至AX。,注意:,MOV AX,2000H,27,直接寻址过程示意图,Bit 19 4 3 0,20 位 物 理 地 址,Memory,MOV AX,0016H,28,2寄存器间接寻址,操作数存放在存储器单元中,指令给出的16位寄存器值就是该单元的EA。,必须使用BX、BP、SI、DI,

11、除了有段跨越前缀的情况外,通常规定: 若用SI、DI、BX间接寻址,则通常操作数在当前数据段DS区域中。若用BP间接寻址,则操作数默认在堆栈段区域中。即需使用堆栈段寄存器SS。,29,寄存器间接寻址过程示意图,MOV BX,CL ( 设BX原值为2010H),Bit 19 4 3 0,20 位 物 理 地 址,Memory,30,3. 寄存器相对寻址在寄存器间接寻址的前提下额外加 一个位移量。也称为寄存器加位移量寻 址。例句:MOV AX,BX5 或者 MOV AX,5BX或者 MOV AX,BX5例句: MOV AX,DATBX或者 MOV AX,BXDAT或者 MOV AX,BXDAT,3

12、1,寄存器相对寻址过程示意图,MOV DL,BP+2 ( 设BP原值为4000H),Bit 19 4 3 0,20 位 物 理 地 址,Memory,(基址相对寻址),32,(变址相对寻址),MOV SI10 ,AH ( 设SI原值为008CH),Bit 19 4 3 0,20 位 物 理 地 址,Memory,寄存器相对寻址过程示意图,33,例句: MOV AX,BXSI 将BX与SI之和所指定的字存储单元内容送AX。 或者 MOV AX,BXSI,4基址变址寻址,使用一个基址寄存器、一个变址寄存器的间接寻址。,34,操作数EABX或BP值 SI或DI值位移量,例:MOV BX+DI+4,C

13、X 其它等效写法: MOV BX+DI4,CX MOV 4BX+DI,CX MOV BXDI4,CX MOV 4BXDI,CX,MOV AX,DATEBXSI ;这里位移量用变 量DATE表示。,5相对基址变址寻址这种寻址为基址加变址再加位移量的寻址方式。,35,相对基址变址寻址过程示意图,MOV BX+DI+4 ,CX ( 设BX原值为1000H,DI原值为0300H),Bit 19 4 3 0,20 位 物 理 地 址,Memory,36,37,1、隐含寻址操作数并不直接出现在指令中,而是由操作码隐含地指定为某一固定内容。,2 、立即寻址源操作数以8位或16位常数的形式直接出 现在指令中。

14、,3 、寄存器寻址8位或16位寄存器的值就是操作数本身。,前情回顾,38,4、I/O 端口寻址仅用于输入/输出指令IN、OUT。,5 、串操作寻址,存储器寻址方式存储器寻址方式的操作数存放在存储器单元中。因此,要存取操作数就必须知道其存储器的单元地址。在指令中可以直接给出或间接给出操作数的地址,以达到存取操作数的目的。,1、直接寻址方式操作数存放在存储器单元中,由指令直接给出该单元的有效地址EA。,39,2寄存器间接寻址,操作数存放在存储器单元中,指令给出的16位寄存器值就是该单元的EA。,3. 寄存器相对寻址,4基址变址寻址,使用一个基址寄存器、一个变址寄存器的间接寻址。,5相对基址变址寻址

15、这种寻址为基址加变址再加位移量的寻址方式。,40,指令中凡是加有方括号”的内容立即 数或寄存器,其值均表示为地址信息;间址寄存器BX、BP、SI、DI存储器寻址方式中,在取操作数之前需 要计算有效地址;存储器寻址方式中,默认情况下均在DS 段/SS段中;若需要寻址其他段,则可使用显 式指明段寄存器的段超越前缀的方式来改变 默认段寄存器;,总结,41,已知(DS)=2000H,(SS)=2001H,(BX)=100H, (BP)=0F3H, (SI)=2内存单元中的值如图所 示,试给出下列指令执行后AX的值。,20100H 20101H 20102H 20103H 20104H 20105H 20106H 20107H,MOV AX , 1200H,MOV AX , BX,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号