资源描述:
《清华大学-计算机硬件技术基础Chapter》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二节8086/8088的寻址方式一、概述1.程序语言简介2.8086/8088指令格式简介二、8086/8088的寻址方式1.立即数寻址2.寄存器寻址3.直接寻址4.寄存器间接寻址5.寄存器相对寻址6.基址加变址寄存器7.相对基址加变址寄存器一、概述1.程序语言简介2.8086/8088指令格式简介1.程序语言简介1)指令、指令系统和程序2)机器码和机器语言3)助记符和汇编语言4)高级语言▲了解本课程学习汇编语言的目的指令格式操作码操作数例ADDAL,10H数据传送算术运算逻辑运算串操作控制转移处理机控制按功能指令分六类1)操作码指明CPU要执行什么样的操作。是一条指令必不可少的部分,用助
2、记符表示。2)操作数指明参与操作的数据或数据所在的地方。了解操作数的来源、个数、类型、执行速度。2.8086/8088指令格式简介(1)操作数来源指明操作数所在的地方有三种来源:①操作数在指令中,称立即数操作数如MOVAL,9②操作数在寄存器中,称寄存器操作数指令中给出用符号表示的寄存器名。如MOVAL,9③操作数在内存单元中,称存储器操作数或内存操作数指令中给出该内存单元的地址。用[]表示存储器操作数如MOVAL,[2000H](2)操作数个数按指令格式中,操作数个数的多少分为三类:无操作数:指令只有一个操作码,没有操作数单操作数:指令中给出一个操作数双操作数:指令中给出两个操作数。①无操
3、作数:指令只有一个操作码,没有操作数。有两种可能:▲有些操作不需要操作数。如HLT,NOP等处理机控制指令。▲操作数隐含在指令中。如STC,CLC等处理机控制命令。AAA,DAA等调整指令。②单操作数:指令中给出一个操作数。有两种可能:▲有些操作只需要一个操作数如INCAL;(AL)←(AL)+1▲有些操作将另一个操作数隐含在指令中如MULBL;(AX)←(AL)×(BL)③双操作数:指令中给出两个操作数。如ADDAL,BL;(AL)←(AL)+(BL)目的操作数源操作数操作后的结果通常存放在目的操作数中。3)操作数类型指令应指明参与操作的数是字节还是字,即操作数的类型。通常操作数的类型可由
4、操作数本身隐含给出。只在特殊情况下需要指明。8086/8088:有的操作既可对字节操作,又可对字操作有的操作只允许对字操作①指令中有寄存器操作数,由寄存器操作数决定类型。例:MOV[BX],AL;字节操作,[BX]←ALMOV[BX],AX;字操作,[BX]←AL,[BX+1]←AHD:>DEBUG;进入DEBUG-A;汇编指令1693:0100MOV[BX],AL1693:0102MOV[BX],AX1693:0104-U100;返汇编指令1693:01008807MOV[BX],AL1693:01028907MOV[BX],AX、、、、、、在DEBUG下查看指令对应的机器码:两条
5、指令的机器码不同:一个是0788H,另一个是0789H②指令操作数中无寄存器,则由内存操作数的类型决定。value00H….内存value00H00H例value是一个变量(即内存操作数);若定义value为字节类型:则MOVvalue,0是字节操作。若定义value为字类型:则MOVvalue,0是一个字操作。例MOV[BX],0③指令中无类型的依据,需对存储器操作数加类型说明。用PTR属性伪操作说明类型。MOVbytePTR[BX],0字节操作,[BX]←0MOVwordPTR[BX],0字操作,[BX]←0,[BX+1]←04)执行速度寄存器操作数立即数操作数存储器操作数例movAL,
6、BLmovAL,0movAL,[BX]哪条指令执行速度快?三条指令:操作类型相同,都是传送指令,且目的操作数相同,不同的是源操作数。对同一类型指令,执行速度:寄存器操作数立即数操作数存储器操作数快慢例movAL,BL快movAL,0movAL,[BX]慢二、8086/8088的寻址方式指明操作数的来源,即寻找(得到)操作数的方法。共7种寻址方式:1.立即数寻址2.寄存器寻址3.直接寻址4.寄存器间接寻址5种与内存单元5.寄存器相对寻址有关的寻址6.基址加变址寄存器寻址(存储器操作数)7.相对基址加变址寄存器寻址以数据传送指令MOV为例介绍寻址方式。指令MOVdst,src执行(dst)←(s
7、rc)即:源操作数的内容不变,目的操作数=源操作数1.立即数寻址操作数在指令中,取来指令立即可得到操作数。称该操作数为立即数。立即数可以是8位或16位。立即数常用来给寄存器或内存单元赋初值。例1MOVAX,2056H结果(AH)=20H(AL)=56H例2MOVAL,78H结果(AL)=78H2.寄存器寻址方式操作数在寄存器中,指令中指定寄存器名8位操作数,用8位寄存器:AH、AL、BH、BL、CH、CL、D