X86的寻址方式和指令系统

X86的寻址方式和指令系统

ID:36400719

大小:1.56 MB

页数:40页

时间:2019-05-09

X86的寻址方式和指令系统_第1页
X86的寻址方式和指令系统_第2页
X86的寻址方式和指令系统_第3页
X86的寻址方式和指令系统_第4页
X86的寻址方式和指令系统_第5页
资源描述:

《X86的寻址方式和指令系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章80X86的寻址方式和指令系统主要内容寻址方式指令系统3.1概述计算机解决问题:通过执行指令序列完成(一条指令对应一种基本操作,如:加、减、传送等)。每种计算机都提供一组指令集给用户,这组指令集称为计算机的指令系统。一条指令由操作码、操作数组成。操作码:指示计算机要执行的操作。操作数:指出指令在执行过程中所需要的操作数(也可是操作数的地址)。指令的一般格式:操作码、操作数…(操作数字段可以有一个或两个,称为一地址、二地址或三地址指令。)如何寻找操作数就是寻址方式。3.2寻址方式有效地址EA和段超越有效地址EA、段超越与数据有关的寻址方式立即寻址、寄存器寻址、直接寻址

2、、寄存器间接寻址、寄存器相对寻址基址变址寻址、相对基址变址寻址比例变址寻址、基址比例变址寻址、相对基址比例变址寻址与转移有关的寻址方式段内直接、间接寻址段间直接、间接寻址3.2.1有效地址EA和段超越1.有效地址(EA)当操作数存在mem中,其物理地址由段地址和偏移地址组成。其中偏移地址称EA。EA由以下四部分组成:(1)位移量:存在指令中的一个8位/16位、32位的数,不是立即数,是地址。(2)基址:存放在基址寄存器中的内容。(3)变址:存放在变址寄存器中的内容。(4)比例因子:其值为1、2、4、8,主要用于访问元素长度为1、2、4、8字节的数组有用。(386以后机型)

3、EA=基址+(变址*比例因子)+位移量2.段超越寻址时,由EA中基址寄存器来规定段寄存器。正常情况下,PC机有个基本约定:一般是DS寄存器的内容作为段地址,若BP作基址,则段地址在SS中。若操作数存放在数据段以外的其他段中(允许),则应指明,这种情况称为段超越。例:MOVAL,[2000H]物理地址为:16x(DS)+2000数据在DS段中MOVAL,ES:[2000H]ES:段超越前缀物理地址为:16x(ES)+2000H数据在ES段(超越)注意!不允许段超越的有:堆栈操作,只能用SS,取指令,只能用CS,目的串只能用ES!(P39)3.2.2与数据有关的寻址1.立即寻

4、址操作数直接包含在指令中,紧跟在操作码的后面,与操作码一起放在代码段。Ex:MOVAX,imAx:目的操作数im:源操作数(2)主要用来给寄存器/存储单元赋初值ex3.1:MOVAL,5(AL)=05Hex3.2:MOVAX,0B34CH(AX)=0B34CHAHALOPimLimHCS段Im:立即数,可以是8位或16位。OP4CB3AHALCS段注意!立即数以A~F开头的十六进制数,必须在字母前加数字0。32位寻址时:ex3.3MOVEAX,12345678H(EAX)=12345678H立即数寻址的功能立即数寻址的执行2.寄存器寻址(速度快)(1)操作数包含在CPU内

5、部寄存器中,寄存器可以是8位或16位,也可以是32位。16位:AX、BX、CX、DX、SI、DI、SP、BP8位:AH、AL、BH、BL、CH、CL、DH、DL。32位:EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP(2)ex:MOVDS,AXDSAXEX3.4(a)MOVAX,BX执行前:(AX)=3064H(BX)=1234H执行后:(AX)=1234H(BX)不变。Ex3.4(b)MOVECX,EDX执行前:(ECX)=01237541H(EDX)=12345678H执行后:(ECX)=12345678H(EDX)不变寄存器寻址的功能寄存器寻址的执行

6、3.直接寻址(1)操作数的EA只含位移量一部分,其值存放在CS段(Mem)中,放在OP之后,操作数一般在DS段。实模式下,其物理地址为:16x(Ds)+EA可以进行段超越。cs段(2)允许用符号地址代替数值EX:MOVAX,[VALUE]或MOVAX,VALUE若VALUE在ES段,则:MOVAX,ES:VALUE或MOVAX,ES:[VALUE](3)用于处理单个变量EA低八位OPEA高八位AHAL…30000H32000H5030OP0020CSDSEX3.5MOVAX,[2000H]DS:3000HEA:2000H物理地址:30000H+2000H=32000H(3

7、2000H)=3050H(AX)=3050HEx3.6MOVEAX,DATA(32位位移量)直接寻址的功能直接寻址的执行4.寄存器间接寻址(1)操作数的EA只包含基址寄存器内容或变址寄存器内容,操作数在存储器中。16位寻址,可用的寄存器是BX、BP、SI、DI,其物理地址为:(SI)16x(Ds)+(DI)16x(SS)+(BP)可以进行段超越。(BX)Ex:MOVAX,SS:[BX]物理地址=16X(SS)+(BX)操作数在SS段,采用段超越。32位寻址:EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI8个通用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。