文档详情

微机原理与接口技术--指令系统.ppt

发布:2018-10-09约1.98万字共109页下载文档
文本预览下载声明
微机原理与接口技术 第三章 指令系统 第一节 指令的基本结构和执行时间 指令 指令系统 8086/8088CPU的指令系统共包含92种基本指令,按照功能可将它们分为6大类: ? 数据传送指令 ? 算术运算指令 ? 逻辑运算和移位指令 ? 串操作指令 ? 控制转移指令 ? 处理器控制指令 8086指令的一般格式如下: ? 操作码 [操作数],[操作数] 操作数主要分为3类: 立即数操作数、 寄存器操作数 存储器操作数。 表3-2 隐含及允许超越的段寄存器 存储器操作的类型 隐含的段寄存器 允许超越的段寄存器 偏移地址 取指令 CS 无 IP 堆栈操作 SS 无 SP 通用数据读写 DS CS,ES,SS 有效地址 源数据串 DS CS,ES,SS SI 目标数据串 ES 无 DI 用BP作为基址寄存器 SS CS,DS,ES 有效地址 指令的执行时间 一条指令的执行时间包括取指令、取操作数、执行指令及传送结果几部分,单位用时钟周期表示 寄存器操作数的指令执行速度最快,立即数操作数次之,存储器操作数指令的执行速度最慢 第二节 8086的寻址方式 一、立即寻址(Immediate Addressing) 主要用于给寄存器或存储单元赋初值 MOV AX,3508H 二、直接寻址(Direct Addressing) 直接寻址指令在指令的操作码后面直接给出操作数的16位偏移地址。 此偏移地址也称为有效地址EA(Effective Address),与指令的操作码一起,存放在内存的代码段. 低8位存放在低地址单元,高8位存放在高地址单元。 直接寻址: MOV AX,[3200H] 如果DS=5000H,则所寻找的操作数的物理地址: 5000H×10H+3200H=50000H+3200H =53200H 段超越 : MOV BX,ES:[2100H] 三、寄存器寻址(Register Addressing) 操作数为CPU的内部寄存器 指令在执行过程中不必通过访问内存而取得操作数,因此执行速度很快。 MOV DS,AX 四、寄存器间接寻址(Register Indirect Addressing) MOV AX,[DI] 指令中的16位寄存器的内容不是操作数,而是操作数的偏移地址,操作数本身则在存储器中。 可用的寄存器有四个,分别是:SI、DI、BX和BP,但如果使用不同的间址寄存器,则相应的段寄存器有所不同 1.选择SI、DI、BX作为间址寄存器 操作数在数据段(没有使用段超越时) MOV AX,[DI] 若已知(DS)=5000H,(DI)=1600H,则操作数的物理地址为:5000H×10H+1600H=51600H 执行的结果为(AX)=789AH 2.选择BP作为间址寄存器 操作数在堆栈段(没有使用段超越时) MOV [BP],AX 若已知(SS)=6000H,(BP)=1500H,则操作数的物理地址为: 6000H×10H+1500H=61500H 若已知(AX)=5566H,则指令的执行结果为: 66H送到61500H内存单元, 55H送到61501H内存单元 无论用SI、DI、BX或BP作为间址寄存器,都允许段超越。 MOV ES:[DI],AX MOV DX,DS:[BP] 五、变址寻址(Indexed Addressing) 以指定的寄存器内容,加上指令中给出的8位或16位位移量(必须要以一个段寄存器作为基地址),作为操作数的地址。 作为变址寻址的寄存器可以是SI、DI、BX、BP四个寄存器中的任一个 若用SI、DI和BX作为
显示全部
相似文档