《微机原理寻址方式.pptx》由会员分享,可在线阅读,更多相关《微机原理寻址方式.pptx(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机原理寻址方式微机原理寻址方式30-330-3月月-23-232 24.8086/80884.8086/8088寻址方式寻址方式指令、指令系统和程序l l用编码表示用编码表示CPUCPU的的一个基本操作,一个基本操作,称为一条指令。称为一条指令。l l全部指令集称为指令系统。指令全部指令集称为指令系统。指令系统反映系统反映 CPUCPU的基本功能。的基本功能。l l一个一个CPUCPU的指令系统是固定的,不的指令系统是固定的,不同类型的同类型的CPUCPU其指令系统不同其指令系统不同;同一系列向上兼容。同一系列向上兼容。l l程序是为要解决的问题编写出来程序是为要解决的问题编写出来的指令集合
2、。的指令集合。l l用户为解决自己的问题所编写的用户为解决自己的问题所编写的程序称为源程序。程序称为源程序。第1页/共27页30-330-3月月-23-233 34.8086/80884.8086/8088寻址方式寻址方式机器指令和汇编指令l l机器指令机器指令:指令的二进制代码形式。如:指令的二进制代码形式。如:89D8H89D8Hl l汇编指令汇编指令:指令的助记符形式。:指令的助记符形式。助记符助记符:是有助记忆、并能描述指令功能的符号,通常是指令功能的是有助记忆、并能描述指令功能的符号,通常是指令功能的英文单词的缩写。英文单词的缩写。MOV MOV AXAX,BXBX (first i
3、nstruction mentioned,(first instruction mentioned,remember!)remember!)l l汇编语法结构符合人类语言的共同特点汇编语法结构符合人类语言的共同特点 指令指令操作码操作码动作:动作:做什么做什么?指令指令操作数操作数对象:对象:针对什么做动作针对什么做动作?第2页/共27页30-330-3月月-23-234 44.8086/8088寻址方式汇编指令的书写格式汇编指令的书写格式l l操作码操作码 操作数操作数1,1,操作数操作数22 操作码:必备;操作码:必备;操作数:可以是操作数:可以是1 1个、个、2 2个或没有,可以是个或没
4、有,可以是8 8位或者是位或者是1616位位 源操作数,目的操作数源操作数,目的操作数机器指令的编码格式:对操作码、操作数的编码方式。机器指令的编码格式:对操作码、操作数的编码方式。l l采用变长编码格式,长度为采用变长编码格式,长度为1 16 6个字节。个字节。高端高端 低端低端指令前缀指令前缀操作码字段操作码字段寻址方式字段寻址方式字段操作数字段操作数字段1 1字节字节1 1字节字节1 1字节字节1414字节字节第3页/共27页30-330-3月月-23-235 54.8086/80884.8086/8088寻址方式寻址方式单操作数在寄存器中(单字节指令)REG(REG(REG(REG(寄
5、存器编码寄存器编码寄存器编码寄存器编码),对应,对应,对应,对应8 8 8 8个个个个16161616位通用寄存器:位通用寄存器:位通用寄存器:位通用寄存器:000000000000AXAXAXAX,001001001001CXCXCXCX,010010010010DXDXDXDX,011011011011BXBXBXBX,100100100100SPSPSPSP,101101101101BPBPBPBP,110110110110SISISISI,111111111111DIDIDIDI。SEGSEGSEGSEG(段寄存器编码)有(段寄存器编码)有(段寄存器编码)有(段寄存器编码)有4 4 4
6、 4种编码,对应种编码,对应种编码,对应种编码,对应4 4 4 4个段寄存器:个段寄存器:个段寄存器:个段寄存器:00000000ESESESES,01010101CSCSCSCS,10101010SSSSSSSS,11111111DSDSDSDS。格式格式格式格式7 77 73 32 20 03 32 20 05 54 4OPOPREGREGOPOPSEGSEGOPOP第4页/共27页30-330-3月月-23-236 64.8086/80884.8086/8088寻址方式寻址方式单操作数在寄存器中(双字节指令)W=1W=1字字,W=0W=0字字节节;MODMOD(寻寻址址方方式式编编码码)
7、=11=11,表表示示操操作作数数在在寄寄存存器器中中;R RM M字字段段(寄寄存存器器/存存储储器器选选择择编编码码)在在此此对对应应8 8位位或或16 16 位位的的寄寄存存器器:000000ALALAXAX,001001CLCLCXCX,010010DLDLDXDX,011011BLBLBXBX,100100AHAHSPSP,101101CHCHBPBP,110110DHDHSISI,111111BHBHDIDI。两两个个字字节节均均为为操操作作码码,而而单单操操作作数数被被约约定定总总是是固固定定存存放放在在AXAX或或ALAL中,它是一种隐含寻址的单操作数指令中,它是一种隐含寻址的
8、单操作数指令格式格式格式格式OPOPOPWMODOPR/M1515876532087011第5页/共27页30-330-3月月-23-237 74.8086/80884.8086/8088寻址方式寻址方式单操作数在存储器中(2字节4字节指令)格式格式格式格式格式格式OPOPOPWWWMODMODMODOPOPOPR/MR/MR/MDISP-8DISP-LDISP-HMOD=10MOD=01MOD=001022011400312525191615870231716118702053678915MOD11MOD11,表示单操作数是在存储器,表示单操作数是在存储器,MOD=11MOD=11表示在寄存
9、器表示在寄存器R/MR/M字段和字段和MODMOD字段的组合确定单操作数在存储器字段的组合确定单操作数在存储器EAEA。R/MR/M和和MODMOD字段编码的定义同双操作数指令。字段编码的定义同双操作数指令。DISPDISP为为8 8位或位或1616位的地址位移量。位的地址位移量。第6页/共27页30-330-3月月-23-238 8第7页/共27页30-330-3月月-23-239 94.8086/80884.8086/8088寻址方式寻址方式寻址方式简介(Addressing Modes)l l寻找(得到)寻找(得到)操作数操作数的方法称为操作数的寻址的方法称为操作数的寻址方式方式l l寻
10、找(得到)操作数并存取操作数的过程称为寻找(得到)操作数并存取操作数的过程称为指令的寻址操作指令的寻址操作l l对存储器而言,由指令字节给出的信息求出操对存储器而言,由指令字节给出的信息求出操作数的地址称为有效地址作数的地址称为有效地址EA(Effective EA(Effective Address)Address)l l对寄存器而言,寻址就是得到寄存器所存储的对寄存器而言,寻址就是得到寄存器所存储的操作数操作数第8页/共27页30-330-3月月-23-2310104.8086/80884.8086/8088寻址方式寻址方式操作数的存放地点l l操作数可能存在于操作数可能存在于寄存器寄存器
11、、存储器存储器、I/OI/O端口端口所所对应的位置,也可能直接跟在对应的位置,也可能直接跟在指令后面指令后面(即立即即立即数数)ABDB控控制制器器ALUALURegisterRegisterCPUmemorymemory00000HFFFFFHI/Oportport0000HFFFFHI/ODevice Device CB第9页/共27页30-330-3月月-23-2311114.8086/80884.8086/8088寻址方式寻址方式寻址方式 (固定寻址、立即数寻址、寄存器寻址)l l固定寻址固定寻址(隐含寻址):操作数并不直接出现(隐含寻址):操作数并不直接出现在指令中,而是在指令中,而
12、是由操作码隐含地指定为某一固由操作码隐含地指定为某一固定内容定内容PUSHF/POPFPUSHF/POPFl l立即数寻址立即数寻址 操作数以操作数以8 8位或位或1616位常数的形式直位常数的形式直接出现在指令中,可给寄存器或内存变量赋值接出现在指令中,可给寄存器或内存变量赋值MOV AX,2000H /MOV 2100H,3450HMOV AX,2000H /MOV 2100H,3450Hl l寄存器寻址寄存器寻址 操作数是某个操作数是某个8 8位或位或1616位寄存器的位寄存器的内容,该方式执行速度最快(内容,该方式执行速度最快(为什么?为什么?)1616位位(AX/BX/CX/DX)8
13、(AX/BX/CX/DX)8位位(16(16位拆分位拆分)INC BX INC BX第10页/共27页30-330-3月月-23-23121220H56H4.8086/80884.8086/8088寻址方式寻址方式立即数寻址和寄存器寻址举例源操作数:立即数寻址源操作数:立即数寻址 目标操作数:寄存器目标操作数:寄存器寻址寻址例例1 1 MOV AX,2056HMOV AX,2056H 结果结果 (AH)=20H (AH)=20H (AL)=56H (AL)=56H 例例2 2 MOV AL,56 HMOV AL,56 H 结果结果 (AL)=56H(AL)=56HCS :EAcell2000H
14、:1000HB8H2000H:1001H 56H2000H:1002H20H2000H:1003HB0H2000H:1102H56H AHAL第11页/共27页30-330-3月月-23-2313134.8086/80884.8086/8088寻址方式寻址方式寻址方式(I/O端口寻址:仅用于IN、OUT指令)l l直接端口寻址直接端口寻址端口地址在端口地址在8 8位以内,端口地位以内,端口地址直接做操作数。可寻址的址直接做操作数。可寻址的I/OI/O空间为空间为256256字节字节IN ALIN AL,43H43HOUT 0FHOUT 0FH,ALALl l间接端口寻址间接端口寻址端口地址端口
15、地址1616位,固定使用位,固定使用DXDX做操作数,做操作数,DXDX的值就是该的值就是该1616位端口的地址。可位端口的地址。可寻址的寻址的I/OI/O空间为空间为6553665536字节。字节。IN ALIN AL,DXDXOUT DXOUT DX,AXAX第12页/共27页30-330-3月月-23-2314144.8086/80884.8086/8088寻址方式寻址方式寻址方式 (存储器寻址)-直接寻址l l直接寻址方式直接寻址方式:操作数存放在存储器单元中,操作数存放在存储器单元中,由指令直接给出该单元的有效地址由指令直接给出该单元的有效地址EAEA(即(即1616位位段内偏移量)
16、段内偏移量)l l操作数地址的位偏移量,直接包含在指令操作数地址的位偏移量,直接包含在指令中,存放在代码段中指令操作码之后中,存放在代码段中指令操作码之后l l操作数一般存放在数据段中,操作数一般存放在数据段中,必须先求出操作必须先求出操作数的物理地址,数的物理地址,然后再访问存储器才能取得操然后再访问存储器才能取得操作数。作数。第13页/共27页30-330-3月月-23-2315154.8086/80884.8086/8088寻址方式寻址方式寻址方式(存储器寻址)-直接寻址举例 MOV AX,1234HMOV AX,1234HDS DS 操作数所在内存单元的物理地址为:操作数所在内存单元的
17、物理地址为:PA=PA=(段寄存器(段寄存器DS)10H+EA(1234H)DS)10H+EA(1234H)第14页/共27页30-330-3月月-23-2316164.8086/80884.8086/8088寻址方式寻址方式寻址方式(存储器寻址)(寄存器)间接寻址l l间接寻址间接寻址:操作数放在存储器单元中,操作数操作数放在存储器单元中,操作数的的1616位有效地址位有效地址EAEA存放在存放在1616位的寄存器中位的寄存器中(1 1)1616位有效地址位有效地址EAEA由由BX/BPBX/BP之一得到,为之一得到,为基址基址寻址寻址 ,由,由 SI/DISI/DI之一得到,为之一得到,为
18、变址寻址变址寻址(2 2)1616位有效地址位有效地址EAEA由由BX/BPBX/BP之一加位移量得到,之一加位移量得到,为为相对基相对基 址寻址址寻址,由,由SI/DISI/DI之一加位移量之一加位移量得到,为得到,为相对变址寻址相对变址寻址(3 3)1616位有效地址位有效地址EAEA由由BX/BPBX/BP之一加之一加SI/DISI/DI之一之一得到,为得到,为基基 址加变址寻址址加变址寻址(4 4)1616位有效地址位有效地址EAEA由由BX/BPBX/BP之一加之一加SI/DISI/DI之一之一加位移量得加位移量得 到,为到,为相对基址加变址寻址相对基址加变址寻址第15页/共27页3
19、0-330-3月月-23-2317174.8086/80884.8086/8088寻址方式寻址方式寻址方式(存储器寻址)(寄存器)间接寻址(1)基址寻址和变址寻址基址寻址和变址寻址 MOV AL,SISIDIMOV AL,DI第16页/共27页30-330-3月月-23-2318184.8086/80884.8086/8088寻址方式寻址方式寻址方式(存储器寻址)(寄存器)间接寻址 (1)基址寻址和变址寻址基址寻址和变址寻址基址寻址和变址寻址物理地址计算基址寻址和变址寻址物理地址计算 使用使用BXBX,默认段寄存器为,默认段寄存器为DSDS PA=(DS)10H+EAPA=(DS)10H+EA
20、;EA=(BX)+EA=(BX)+位移量位移量使用使用BPBP,默认段寄存器为,默认段寄存器为SSSSPA=(SS)10H+EAPA=(SS)10H+EA;EA=(BP)+EA=(BP)+位移量位移量使用使用SISI、DIDI默认段寄存器为默认段寄存器为DSDSPA=(DS)10H+EAPA=(DS)10H+EA;EA=(SIEA=(SI或或DI)+DI)+位移量位移量第17页/共27页30-330-3月月-23-2319194.8086/80884.8086/8088寻址方式寻址方式EXAMPLE:EXAMPLE:基址寻址和变址寻址练习基址寻址和变址寻址练习l l(SS)=3000H,(BP
21、)=0200H,(SS)=3000H,(BP)=0200H,l l(DS)=4000H,(BX)=1000H(DS)=4000H,(BX)=1000H Q:MOV AL,BP ;AL=?Q:MOV AL,BP ;AL=?Q:MOV BX,AL ;M=?Q:MOV BX,AL ;M=?l l(SI)=1001H(SI)=1001H,(DI)=1000H(DI)=1000H Q:MOV AL,SI ;AL=?Q:MOV AL,SI ;AL=?Q:MOV DI,AL ;M=?Q:MOV DI,AL ;M=?addresscell2000H:1000H8AH2000H:1001H46H2000H:10
22、02H60H2000H:1003H89H2000H:1004H5FH2000H:1005H12H3000H:0200H25H4000H:1000H?4000H:1001H?CSSSDS第18页/共27页30-330-3月月-23-2320204.8086/80884.8086/8088寻址方式寻址方式寻址方式(存储器寻址)(寄存器)间接寻址(2)相对基址寻址和相对变址寻址基址寻址和相对变址寻址第19页/共27页30-330-3月月-23-2321214.8086/80884.8086/8088寻址方式寻址方式寻址方式(存储器寻址)(寄存器)间接寻址(3 3)基址加变址寻址)基址加变址寻址MOV
23、 AL,BX+DIDIMOV AL,BP+DIDI第20页/共27页30-330-3月月-23-2322224.8086/80884.8086/8088寻址方式寻址方式寻址方式(存储器寻址)(寄存器)间接寻址 (3 3)基址加变址寻址)基址加变址寻址基址加变址寻址物理地址计算基址加变址寻址物理地址计算如果操作数中含如果操作数中含BP,BP,则默认段寄存器必须为则默认段寄存器必须为SSSS,否则为,否则为DSDS PA=(SS)10H+EA(BP+SIPA=(SS)10H+EA(BP+SI或或BP+DI)BP+DI)PA=(DS)10H+EA(BX+SIPA=(DS)10H+EA(BX+SI或或
24、BX+DI)BX+DI)第21页/共27页30-330-3月月-23-2323234.8086/80884.8086/8088寻址方式寻址方式寻址方式(存储器寻址)(寄存器)间接寻址(4 4)相对基址加变址寻址)相对基址加变址寻址第22页/共27页30-330-3月月-23-2324244.8086/80884.8086/8088寻址方式寻址方式寻址方式(存储器寻址)(寄存器)间接寻址偏移地址EA所在的默认段寄存器可能为DS/SS物理地址为 PA=DS10H+EA PA=SS10H+EAEAEA第23页/共27页30-330-3月月-23-2325254.8086/80884.8086/808
25、8寻址方式寻址方式80868086寻址方式一览表寻址方式一览表寻址方式名称寻址方式名称源操作数的例子源操作数的例子源操作数的允许形式源操作数的允许形式立即数立即数立即寻址立即寻址MOVMOV AX AX,1200H1200H指令中的常数指令中的常数寄存器寄存器寄存器寻址寄存器寻址MOVMOV AX AX,BXBX通用寄存器或段寄存器通用寄存器或段寄存器存储器存储器直接寻址直接寻址MOVMOV AX AX,1200H1200H“常数常数”或或“变量变量”或或“变量变量”寄存器间接寻址寄存器间接寻址MOVMOV AX AX,DIDIBXBX、BPBP、SISI、DIDI之一之一 寄存器相对寻址寄存
26、器相对寻址MOVMOV AX AX,BX+1200HBX+1200HBXBX、BPBP、SISI、DIDI之一之一 +位移量位移量 基址变址寻址基址变址寻址MOVMOV AX AX,BX+DIBX+DIBXBX或或BP+SIBP+SI或或DIDI基址变址相对寻址基址变址相对寻址MOVMOV AX AX,BX+DI+1200HBX+DI+1200HBXBX或或BP+SIBP+SI或或DI+DI+位移量位移量 第24页/共27页30-330-3月月-23-2326264.8086/80884.8086/8088寻址方式寻址方式段寄存器使用规则段寄存器使用规则直接直接寻址寻址使用使用BX、SI、DI
27、的间接寻址的间接寻址使用使用BP的的间接寻址间接寻址堆栈堆栈操作操作源串指源串指针针目标串目标串指针指针指令指指令指针针默认默认段寄段寄存器存器DSDSSSSSDSESCS可加可加的段的段超越超越前缀前缀ES:SS:CS:ES:SS:CS:DS:ES:CS:ES:SS:CS:固定固定搭配搭配的寄的寄存器存器SPDIIP第25页/共27页30-330-3月月-23-2327274.8086/80884.8086/8088寻址方式寻址方式ExerciseExercise:l lReference book page 61 to page 64Reference book page 61 to pa
28、ge 64l lTalking about addressing mode below Talking about addressing mode below(source operand and destination operand(source operand and destination operand),),(operand sizeoperand size),),then calculate then calculate effective address(EA)effective address(EA)MOV SIMOV SI,1000H1000HMOV BLMOV BL,1000H1000HMOV BX+0100HMOV BX+0100H,CXCXMOV AXMOV AX,ES:BX+DI+0004HES:BX+DI+0004HMOV BPSIMOV BPSI,ALALMOV AXMOV AX,SS:BXSS:BXAssignmentAssignment第26页/共27页