微机原理-第三章(3)8086寻址方式_第1页
微机原理-第三章(3)8086寻址方式_第2页
微机原理-第三章(3)8086寻址方式_第3页
微机原理-第三章(3)8086寻址方式_第4页
微机原理-第三章(3)8086寻址方式_第5页
已阅读5页,还剩22页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章8086/8088微处理器及其系统1.8086/8088微处理器结构微处理器功能结构寄存器结构(编程结构)2.8086/8088存储器组织3.8086/8088工作方式时序和引脚信号最大和最小模式4.8086/8088寻址方式5.8086/8088指令系统1/12/202314.8086/8088寻址方式指令、指令系统和程序用编码表示CPU的一个基本操作,称为一条指令。全部指令集称为指令系统。指令系统反映CPU的基本功能。一个CPU的指令系统是固定的,不同类型的CPU其指令系统不同;同一系列向上兼容。程序是为要解决的问题编写出来的指令集合。用户为解决自己的问题所编写的程序称为源程序。1/12/202324.8086/8088寻址方式机器指令和汇编指令机器指令:指令的二进制代码形式。如:89D8H汇编指令:指令的助记符形式。助记符:是有助记忆、并能描述指令功能的符号,通常是指令功能的英文单词的缩写。MOVAX,BX(firstinstructionmentioned,remember!)汇编语法结构符合人类语言的共同特点指令操作码→动作:做什么?指令操作数→对象:针对什么做动作?1/12/202334.8086/8088寻址方式汇编指令的书写格式操作码[[操作数1],[操作数2]]操作码:必备;操作数:可以是1个、2个或没有,可以是8位或者是16位源操作数,目的操作数机器指令的编码格式:对操作码、操作数的编码方式。采用变长编码格式,长度为1~6个字节。高端

低端指令前缀操作码字段寻址方式字段操作数字段1字节1字节1字节1~4字节1/12/202344.8086/8088寻址方式单操作数在寄存器中(单字节指令

)①REG(寄存器编码),对应8个16位通用寄存器:000—AX,001—CX,010—DX,011—BX,100—SP,101—BP,110—SI,111—DI。②SEG(段寄存器编码)有4种编码,对应4个段寄存器:00—ES,01—CS,10—SS,11—DS。格式①格式②7732032054OPREGOPSEGOP1/12/202354.8086/8088寻址方式单操作数在寄存器中(双字节指令)

①W=1字,W=0字节;MOD(寻址方式编码)=11,表示操作数在寄存器中;R/M字段(寄存器/存储器选择编码)在此对应8位或16位的寄存器:000—AL/AX,001—CL/CX,010—DL/DX,011—BL/BX,100—AH/SP,101—CH/BP,110—DH/SI,111—BH/DI。②两个字节均为操作码,而单操作数被约定总是固定存放在AX或AL中,它是一种隐含寻址的单操作数指令格式①格式②OPOPOPWMODOPR/M15158765320870111/12/202364.8086/8088寻址方式单操作数在存储器中(2字节~4字节指令)格式①格式②格式③OPOPOPWWWMODMODMODOPOPOPR/MR/MR/MDISP-8DISP-LDISP-HMOD=10MOD=01MOD=001022011400312525191615870231716118702053678915MOD≠11,表示单操作数是在存储器,MOD=11表示在寄存器R/M字段和MOD字段的组合确定单操作数在存储器EA。R/M和MOD字段编码的定义同双操作数指令。DISP为8位或16位的地址位移量。1/12/20237let'stakeanexample!1/12/202384.8086/8088寻址方式寻址方式简介(AddressingModes)寻找(得到)操作数的方法称为操作数的寻址方式寻找(得到)操作数并存取操作数的过程称为指令的寻址操作对存储器而言,由指令字节给出的信息求出操作数的地址称为有效地址——EA(EffectiveAddress)对寄存器而言,寻址就是得到寄存器所存储的操作数操作数...操作数...操作数...?操作数...操作数...操作数...?操作数...操作数...操作数...?1/12/202394.8086/8088寻址方式操作数的存放地点操作数可能存在于寄存器、存储器、I/O端口所对应的位置,也可能直接跟在指令后面(即立即数)ABDB控制器ALURegisterCPUmemory00000H~FFFFFHI/Oport0000H~FFFFHI/ODeviceCB操作数!操作数!操作数!1/12/2023104.8086/8088寻址方式寻址方式(固定寻址、立即数寻址、寄存器寻址)固定寻址(隐含寻址):操作数并不直接出现在指令中,而是由操作码隐含地指定为某一固定内容

PUSHF/POPF立即数寻址操作数以8位或16位常数的形式直接出现在指令中,可给寄存器或内存变量赋值

MOVAX,2000H/MOV[2100H],3450H寄存器寻址操作数是某个8位或16位寄存器的内容,该方式执行速度最快(为什么?)

16位(AX/BX/CX/DX)8位(16位拆分)

INCBX1/12/20231120H56H4.8086/8088寻址方式立即数寻址和寄存器寻址举例源操作数:立即数寻址目标操作数:寄存器寻址例1MOVAX,2056H

结果(AH)=20H(AL)=56H例2MOVAL,56H

结果(AL)=56HCS:EAcell2000H:1000HB8H2000H:1001H56H2000H:1002H20H2000H:1003HB0H2000H:1102H56H

AHAL☞1/12/2023124.8086/8088寻址方式寻址方式(I/O端口寻址:仅用于IN、OUT指令)直接端口寻址——端口地址在8位以内,端口地址直接做操作数。可寻址的I/O空间为256字节INAL,43HOUT0FH,AL间接端口寻址——端口地址16位,固定使用DX做操作数,DX的值就是该16位端口的地址。可寻址的I/O空间为65536字节。INAL,DXOUTDX,AX1/12/2023134.8086/8088寻址方式寻址方式(存储器寻址))-直接寻址直接寻址方式:操作数存放在存储器单元中,由指令直接给出该单元的有效地址EA(即16位段内偏移量)操作数地址的16位偏移量,直接包含在指令中,存放在代码段中指令操作码之后操作数一般存放在数据段中,必须先求出操作数的物理地址,然后再访问存储器才能取得操作数。1/12/2023144.8086/8088寻址方式寻址方式(存储器寻址)-直接寻址举例

MOVAX,[1234H]DS操作数所在内存单元的物理地址为:PA=(段寄存器DS)×10H+EA(1234H)

1/12/2023154.8086/8088寻址方式寻址方式(存储器寻址)–(寄存器)间接寻址间接寻址:操作数放在存储器单元中,操作数的16位有效地址EA存放在16位的寄存器中

(1)16位有效地址EA由BX/BP之一得到,为基址寻址,由 SI/DI之一得到,为变址寻址(2)16位有效地址EA由BX/BP之一加位移量得到,为相对基 址寻址,由SI/DI之一加位移量得到,为相对变址寻址(3)16位有效地址EA由BX/BP之一加SI/DI之一得到,为基 址加变址寻址(4)16位有效地址EA由BX/BP之一加SI/DI之一加位移量得 到,为相对基址加变址寻址1/12/2023164.8086/8088寻址方式寻址方式(存储器寻址)–(寄存器)间接寻址 (1)基址寻址和变址寻址

MOVAL,[SI]SIDIMOVAL,[DI]1/12/2023174.8086/8088寻址方式寻址方式(存储器寻址)–(寄存器)间接寻址

(1)基址寻址和变址寻址基址寻址和变址寻址物理地址计算

使用BX,默认段寄存器为DS

PA=(DS)×10H+EA;EA=(BX)+位移量使用BP,默认段寄存器为SSPA=(SS)×10H+EA;EA=(BP)+位移量使用SI、DI默认段寄存器为DSPA=(DS)×10H+EA;EA=(SI或DI)+位移量1/12/2023184.8086/8088寻址方式EXAMPLE:基址寻址和变址寻址练习(SS)=3000H,(BP)=0200H,(DS)=4000H,(BX)=1000H Q:MOVAL,[BP];AL=? Q:MOV[BX],AL;[M]=?(SI)=1001H,(DI)=1000H

Q:MOVAL,[SI];AL=? Q:MOV[DI],AL;[M]=?addresscell2000H:1000H8AH2000H:1001H46H2000H:1002H60H2000H:1003H89H2000H:1004H5FH2000H:1005H12H3000H:0200H25H4000H:1000H?4000H:1001H?CSSSDS1/12/2023194.8086/8088寻址方式寻址方式(存储器寻址)–(寄存器)间接寻址 (2)相对基址寻址和相对变址寻址1/12/2023204.8086/8088寻址方式寻址方式(存储器寻址)–(寄存器)间接寻址 (3)基址加变址寻址MOVAL,[BX+DI]DIMOVAL,[BP+DI]DI1/12/2023214.8086/8088寻址方式寻址方式(存储器寻址)–(寄存器)间接寻址

(3)基址加变址寻址基址加变址寻址物理地址计算如果操作数中含BP,则默认段寄存器必须为SS,否则为DS

PA=(SS)×10H+EA(BP+SI或BP+DI)PA=(DS)×10H+EA(BX+SI或BX+DI)1/12/2023224.8086/8088寻址方式寻址方式(存储器寻址)–(寄存器)间接寻址(4)相对基址加变址寻址1/12/2023234.8086/8088寻址方式寻址方式(存储器寻址)–(寄存器)间接寻址偏移地址EA所在的默认段寄存器可能为DS/SS物理地址为PA=DS×10H+EAPA=SS×10H+EAEA=1/12/2023244.8086/8088寻址方式8086寻址方式一览表

寻址方式名称源操作数的例子源操作数的允许形式立即数立即寻址MOV

AX,1200H指令中的常数寄存器寄存器寻址MOV

AX,BX通用寄存器或段寄存器存储器直接寻址MOV

AX,[1200H]“[常数]”或“[变量]”或“变量”寄存器间接寻址MOV

AX,[DI][BX、BP、SI、DI之一]寄存器相对寻址MOV

AX,[BX+1200H][BX、BP、SI、DI之一+位移量]基址变址寻址MOV

AX,[BX+DI][BX或BP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论