80868088寻址方式PPT教学课件_第1页
80868088寻址方式PPT教学课件_第2页
80868088寻址方式PPT教学课件_第3页
80868088寻址方式PPT教学课件_第4页
80868088寻址方式PPT教学课件_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、例如:MOV AX,3000H特点:(1)立即数可以是8位的,也可以是16位的。若是16位的,则存储时低位在前,高位在后。只能是整数,不能是小数、变量或其它数据类型。(2)立即数只能作为源操作数,立即寻址主要用来给寄存器或存储器赋初值。 (3)速度快(操作数直接由指令中获得,不需要运行总线周期)(4)立即数作为指令操作码的一部分与操作码一起放在代码段区域中。3.2.1 立即寻址第1页/共27页【例3.1】MOV AX, 10执行后(AX)=?该例中源操作数为立即寻址方式,立即数为10,存放在指令的下一单元。图形表示:执行:10AX执行后:(AX)=000AH第2页/共27页 操作数的有效地址E

2、A直接由指令直接提供的寻址方式称为直接寻址方式。在直接寻址方式中操作数地址的16位偏移量直接包含在指令中。它与操作码起存放在代码段区域,操作数一般在数据段区域中,它的地址为数据段寄存器DS加上这16位地址偏移量。如图所示。例如: MOV AX,DS:2000H 3.2.2 直接寻址第3页/共27页特点:(1)如果指令中没有指明操作数存放在哪一段,则系统默认为数据段。如上例可写成:MOV AX,2000H(2)操作数的有效地址与操作码起存放在代码段区域,操作数一般在数据段区域中。(3)直接寻址是对存储器进行访问时可采用的最简单的形式。这种寻址方法是以数据段的地址为基础,可在多达64KB的范围内寻

3、找操作数。(4)操作数的实际地址为数据段寄存器DS左移4位加上操作数的有效地址(16位地址偏移量)16位地址偏移量。(5)如果要对除DS以外的其他段寄存器进行寻址,则在指令中必须指定段寄存器。如:MOV AX,2000H ;数据段(可省略DS ) MOV BX,ES:3000H ;操作数在附加段ES (不能省略ES )(6)直接寻址的地址用“ ”括起来,以区别立即数。3.2.2 直接寻址第4页/共27页【例5.2】寄存器和存储器内容为:(AX)=1212H,BUF为数据段定义的变量,其偏移地址是2000H,(DS)=3000H,(32000H)=4545H。执行指令:MOV AX ,BUF执行

4、后:(AX)=?图形表示:执行:(32000H)AX执行后:(AX)=4545H第5页/共27页 操作数直接存放在CPU的内部寄存器中(如:寄存器AX、BX、CX、DX等)的寻址方式称为寄存器寻址方式。例如:MOV DS,AXMOV AL,BH特点:(1)操作数放在CPU的通用寄存器中。 16位:AX、BX、CX、DX、SI、DI、SP、IP 8位 :AH、AL、BH、BL、CH、CL、DH、DL 通常放在AX、 AH、AL中,因为AX是累加器,结果一般放在AX中,这样指令会更短些。(2)采用寄存器寻址时,操作就在CPU内部进行,不需要使用总线周期,速度快。3.2.3 寄存器寻址第6页/共27

5、页 (3)一条指令中,既可以对源操作数采用寄存器寻址,也可以对目的操作数采用寄存器寻址,也可二者均采用寄存器寻址。【例3.3】下列程序执行后,(AX)=?,(BX)=? MOV AX,1234H MOV BX,5678H ADD AX,BX 该程序中MOV指令为数据传送指令操作符,ADD指令为加法指令操作符,三条指令皆为双操作数指令。第一、二条指令AX、BX皆为目的操作数地址,为寄存器寻址方式。第三条指令中,AX为目的操作数地址,BX为源操作数地址。源地址和目的地址皆为寄存器寻址方式。3.2.3 寄存器寻址第7页/共27页3.2.4 寄存器间接寻址 操作数是在存储器中,但是,操作数的有效地址E

6、A(偏移量)在以下四个寄存器SI、DI、BP、BX之一中。可以分成两种情况:(1)以SI、DI、BX间接寻址,则通常操作数在现行数据段区域中,即数据段寄存器(DS)16加上SI、DI、BX中的16位偏移量,为操作数的地址, 例如: MOV AX, SI ,操作数地址是:(DS) 16 +(SI)(2)以寄存器BP间接寻址,则操作数在堆栈段区域中。即堆栈段寄存器(SS)16与BP的内容相加作为操作数的地址, 例如:MOV AX,BP 操作数地址是:(SS) 16 +(BP) 若在指令中规定是段超越的,则BP的内容也可以与其它的段寄存器相加,形成操作数地址。例如: MOV AX,DS:BP 操作数

7、地址是: (DS) 16 +(BP)第8页/共27页特点:(1)指令中的基址寄存器是BX、SI、DI,则默认为操作数在数据段DS中,指令中的基址寄存器若是BP,则默认为操作数在堆栈段SS中。(2)如果要对其他段寄存器所指出的区域进行寻址,则在指令中应指出指定超越段前缀。(3)寄存器间接寻址方式适用于表格处理。执行完一条指令后,只需修改寄存器的内容(+1、+2、)就可取出表格中的相应项。(4)间址的寄存器用“ ”括起来,以区别寄存器寻址。【例3.4】 MOV AX,BX 若(DS)2000H,(BX)1000H,物理地址20000H1000H21000H。指令执行前,(AX)2030H,(210

8、00H)0A0H,(21001H)50H;指令执行后,(AX)50A0H,(21000H)0A0H,(21001H)50H。指令执行情况如下:第9页/共27页若(DS)2000H,(BX)1000H,物理地址20000H1000H21000H。指令执行前(AX)2030H,(21000H)0A0H,(21001H)50H;指令执行后(AX)50A0H,(21000H)0A0H,(21001H)50H。指令执行情况如下:AX AH AL 数据段 物理地址 A0H 21000H 50H 21001H 56H 21002H 第10页/共27页3.2.5 寄存器相对寻址(直接变址寻址、变址寻址)寄存器

9、相对寻址(直接变址寻址、变址寻址) 寄存器相对寻址方式是在指令中给定一个基址寄存器(或变址寄存器)名和一个8 8位或1616位的相对偏移量,两者之和作为操作数的有效地址。对BXBX、SISI、DIDI这三个间址寄存器,指示的是数据段中的数据,而用BPBP作间址寄存器,则指示的是堆栈段中的数据。 汇编格式:XRXR(X X表示位移量,是8 8位或1616位二进制补码表示的有符号数, R R表示寄存器)。功能:操作数存放在存储器,寄存器R R的内容加位移量X X为操作数的偏移地址EAEA。有效地址EA计算方法如下:第11页/共27页特点:(1)SI、DI、BX默认的段寄存器为DS,BP默认的段寄存

10、器为SS。(2)可以使用段寄存器超越前缀来寻址其他段。(3)寄存器相对寻址方式适用于表格处理。表首的地址可设置为偏移量指针,利用修改基址或变址寄存器的内容来获得表格中的内容。【例5.5】设执行前: (AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0050H 执行指令:ADD 6BX,AX执行后:(AX)=?,(BX)=?,(DS)=?,(20036H)=?图形表示如下:第12页/共27页执行前: (AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0050H 执行指令:ADD 6BX,AX执行: (20036H)+(AX) 2

11、0036H执行后:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0090H。图形表示如下:第13页/共27页 把BX和BP看成是基址寄存器,把SI、DI看成是变址寄存器,把一个基址寄存器(BX或BP)的内容加上一个变址寄存器(SI或DI)的内容作为操作数的偏移地址。但指令中不能同时出现两个基址寄存器或两个变址寄存器。操作数在存储器中,其有效地址EA由(基址寄存器)(变址寄存器)形成。特点:(1)基址寄存器为BX时,默认为数据段DS;基址寄存器为BP时,默认为堆栈段SS;变址寄存器为SI、DI。(2)可以使用段寄存器超越前缀来寻址其他段。(3)基址变址寻址方

12、式适用于数组或表格处理。首地址可设置在基址寄存器中,变址寄存器用于访问数组中的元素或表格中的内容。基址寄存器和变址寄存器均可以修改,非常灵活。3.2.6 基址变址寻址第14页/共27页操作数的有效地址EA计算方法如下:【例5.6】 MOV AL,BXSI(MOV AL,BXSI)若指令执行前,(DS)1000H,(BX)0010H, (SI)0002H,(10012H)45H则 有效地址 EA(BX)(SI)0012H, 实际地址 PA(DS)10HEA10012H指令执行后(AL)45H。第15页/共27页 把BX和BP看成是基址寄存器,把SI、DI看成是变址寄存器,把一个基址寄存器(BX或

13、BP)的内容加上一个变址寄存器(SI或DI)的内容,再加上指令中指定的8位或16位偏移量(当然要以一个段寄存器作为地址基准)作为操作数的偏移地址,如图所示。 3.2.7 相对基址变址寻址第16页/共27页 操作数在存储器中,其有效地址EA由(基址寄存器)(变址寄存器)相对偏移量形成。特点:同基址变址寻址方式,比基址变址寻址方式更灵活。 表3-1 段寄存器使用的基本约定默认段寄存器默认段寄存器默认段寄存器默认段寄存器可指定段寄存器可指定段寄存器段内偏移地址来源段内偏移地址来源取指令码取指令码CS无无IP堆栈操作堆栈操作SS无无SP串操作源地址码串操作源地址码DSCS ES SSSI串操作目的地址

14、码串操作目的地址码ES无无DIBP作基址寄存器作基址寄存器SSCS DS ES根据寻址方式求解一般数据存取一般数据存取DSCS SS ES根据寻址方式求解第17页/共27页3.2.8 I/O端口寻址 8086系统的I/O端口采用独立编址方式,有专门的输入输出指令(IN/OUT)可访问64K个字节端口或32个字端口,其寻址方式有直接端口寻址和间接端口寻址两种:l 直接端口寻址 :指令中直接给出要访问的端口地址。例如:IN AL,20H IN AX,30H注:访问的端口数为:0255,并且访问的端口地址采用两位的16进制数表示。l 间接端口寻址:访问端口数超过256个,采用的端口间接寻址,I/O端

15、口的地址先送入到寄存器DX中,用DX作为间接寻址的寄存器例如:MOV DX, 240H OUT DX, AL注:访问端口数065535。第18页/共27页作业:1.请指出下列指令源操作数、目的操作数各是什么寻址方式? (1)MOV AX,0ABH (2)MOVAX,100H (3)MOVAX,VAL (4)MOVBX,SI (5)MOVAL,VALBX (6)MOVCL,BXSI (7)MOVVALSI,BX (8)MOVBPSI,100第19页/共27页选择题1、某单元在数据段中,已知DS=1000H,偏移地址为1200H,则它的物理地址为_。 (A)10000H (B)11200H (C)

16、12100H (D)13000H2、若AL=3BH,AH=7DH,则AL和AH中的内容相加后,标志CF、SF和OF的状态分别是_。 (A)0、1、1 (B)1、1、1 (C)0、0、0 (D)1、1、03、指令ADD CX,55HSI的源操作数的寻址方式是_。 (A)寄存器寻址 (B) 直接寻址 (C)寄存器间接寻址 (D) 寄存器相对寻址第20页/共27页选择题4、计算机能直接执行的语言是_。 (A) 机器语言 (B) 汇编语言 (C) 高级语言 (D) 程序设计语言5、设AL=7FH,要使AL=80H,应使用下列哪一条指令 _。 (A)AND AL,80H (B) OR AL,80H (C

17、) XOR AL,80H (D) NOT AL6、指令ADD CX,55HBP的源操作数的寻址方式是_。 (A)寄存器寻址 (B) 直接寻址 (C)寄存器间接寻址 (D) 寄存器相对寻址第21页/共27页填空1指出下列每条指令中源操作数的寻址方式: MOV AX,4000H:_ MOV AX,BX+DI:_ MOV AX,BP+5000H:_ 2指令 LOOPZ/LOOPE是_且_发生循环的指令。3若一个数据块在内存中的起始地址为80A0H:DFF6H,则这个数据块的起始物理地址为_。第22页/共27页填空题4. 若CF=1,AL=10110110,则执行指令RCR AL,1后,AL=_,CF=_,OF=_。5. 设(SS)=0FFA0H,(SP)=00B0H,(AX)=8057H,(BX)=0F79H执行指令PUSH AX后,(SP)=_ 若再执行指令:PUSH BX POP AX后: (SP)=_,(AX)=_,(BX)=_。第23页/共27页改错题 找出下列指令的错误之处,并加以改正找出下列指令的错误之处,并加以改正(1)PUSH DL (2)IN AX

温馨提示

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

评论

0/150

提交评论