版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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字节的数
3、组有用。(386以后机型) EA基址(变址*比例因子)位移量,2.段超越,寻址时,由EA中基址寄存器来规定段寄存器。正常情况下,PC机有个基本约定:一般是DS寄存器的内容作为段地址,若BP作基址,则段地址在SS中。若操作数存放在数据段以外的其他段中(允许),则应指明,这种情况称为段超越。 例: MOV AL,2000H 物理地址为:16x(DS)+2000 数据在DS段中 MOV AL,ES:2000H ES:段超越前缀 物理地址为:16x(ES)+2000H 数据在ES段(超越) 注意! 不允许段超越的有:堆栈操作,只能用SS,取指令,只能用CS,目的串只能用ES!(P39),3.2.2 与
4、数据有关的寻址 1.立即寻址,操作数直接包含在指令中,紧跟在操作码的后面,与操作码一起放在代码段。 Ex:MOV AX,im Ax:目的操作数 im:源操作数,(2)主要用来给寄存器/存储单元赋初值 ex3.1: MOV AL,5 (AL)=05H ex3.2: MOV AX,0B34CH (AX)=0B34CH,AH AL,OP,imL,imH,CS段,Im:立即数,可以是8位或16位。,OP,4C,B3,AH AL,CS段,注意! 立即数以AF开头的十六进制数,必须 在字母前加数字0。 32位寻址时: ex3.3 MOV EAX,12345678H (EAX)=12345678H,立即数寻
5、址的功能,立即数寻址的执行,2.寄存器寻址(速度快),(1)操作数包含在CPU内部寄存器中, 寄存器可以是8位或16位,也可以是32位。 16位: AX、BX、CX、DX、SI、DI、SP、BP 8位:AH、AL、BH、BL、CH、CL、DH、DL。 32位: EAX、EBX、ECX、EDX、 ESI、EDI、ESP、EBP (2)ex: MOV DS,AX DS AX,EX3.4(a) MOV AX,BX 执行前:(AX)=3064H (BX)=1234H 执行后:(AX)1234H (BX)不变。 Ex3.4(b) MOV ECX,EDX 执行前:(ECX)=01237541H (EDX)
6、=12345678H 执行后:(ECX)12345678H (EDX)不变,寄存器寻址的功能,寄存器寻址的执行,3直接寻址,(1)操作数的EA只含位移量一部分,其值存放在CS段(Mem)中,放在OP之后,操作数一般在DS段。 实模式下,其物理地址为:16x(Ds)+EA 可以进行段超越。 cs段 (2)允许用符号地址代替数值 EX:MOV AX,VALUE 或 MOV AX,VALUE 若VALUE在ES段,则:MOV AX,ES:VALUE 或 MOV AX,ES:VALUE (3)用于处理单个变量,AH AL,30000H,32000H,50,30,OP,00,20,CS,DS,EX3.5
7、 MOV AX,2000H DS:3000H EA:2000H 物理地址: 30000H2000H32000H (32000H)=3050H (AX)3050H,Ex3.6 MOV EAX, DATA ( 32位位移量),直接寻址的功能,直接寻址的执行,4.寄存器间接寻址,(1)操作数的EA只包含基址寄存器内容或变址寄存器内容,操作数在存储器中。 16位寻址,可用的寄存器是BX、BP、SI、DI,其物理地址为: (SI) 16x(Ds)+ (DI) 16x(SS)+(BP) 可以进行段超越。 (BX) Ex: MOV AX,SS:BX 物理地址16X(SS)+(BX) 操作数在SS段,采用段超
8、越。 32位寻址:EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI8个通用寄存器,ESP、EBP默认段为SS段。 (2) 用于表格处理,AH AL,20000H,21000H,A0,50,OP,Ex3.7 MOV AX,BX 操作数在DS段 DS=2000H BX=1000H 物理地址20000100021000H(21000H)50A0H (AX)50A0H,CS,DS,Ex3.8 MOV ECX, EDX,寄存器间接寻址的执行,5.寄存器相对寻址,(1)操作数的EA是基址寄存器或变址寄存器的内容和指令中指定的位移量之和。 16位寻址,操作数在存储器中 (BX) (BP) EA
9、(SI) 位移量 (DI) (2)物理地址为: (SI) 16x(Ds)+ (DI)位移量 16x(SS)+(BP)位移量 (BX) (3)允许段超越,用于表格处理。 EX: MOV AX,ES:STRINGDI 物理地址16x(ES)+(DI)+STRING,AH AL,30000H,35000H,34,12,OP,Ex3.9:MOV AX,COUNTSI (MOV AX,SICOUNT) (DS)3000H (SI)2000H COUNT3000H(符号地址) 物理地址30000+2000+3000 =35000H (35000H)=1234H (AX)=1234H,CS,DS,00,30
10、,位移量 (count),OP,32位寻址 Ex: MOV EAX, TABLEESI,寄存器相对寻址的功能,寄存器相对寻址的执行,6.基址、变址寻址,(1)操作数的EA是一个基址寄存器与一个变址寄存器内容之和。操作数在存储器中 16位寻址,其物理地址为: (SI) (SI) 16x(Ds)(BX)+(DI) 16x(SS)+(BP)(DI) (2)允许段超越,用于数组和表格处理 EX:MOV AX,ES:BXSI 段超越,34,12,DS,21000H,221FDH,AH AL,EX3.11:MOV AX,BXDI (或MOV AX,BX+DI) (DS)=2100H (BX)=0158H
11、(DI)=10A5H 物理地址21000+0158+10A5 =221FDH (221FDH)=1234H (AX)=1234H,对于32位寻址方式: Ex: MOV EDX, EBXESI,基址变址寻址的功能,基址变址寻址的执行,7.相对基址、变址寻址,(1)操作数的EA是一个基址寄存器变址寄存器指令中指定的位移量之和, 操作数在存储器中。 (2) 16位寻址方式中,物理地址为: (SI) 16x(Ds)+(BX)+(DI)+位移量 (SI) 16x(SS)+(BP)+(DI)+位移量 (3)允许段超越,用于堆栈处理。,EX3.8:MOV AX,MASKBXSI (或MOV AX,MASK+
12、BX+SI 或MOV AX,MASKBXSI ) (DS)3000H (BX)=2000H (SI)=1000H MASK=0250H 物理地址=30000+2000+1000+0250 =33250H (33250H)=1234H (AX)=1234H,30000H,33250H,34,12,OP,50,02,位 移量 (mask),cs,ds,AH AL,对于32位寻址方式: Ex: MOV EAX,ARRAYEBXECX,相对基址变址寻址的功能,相对基址变址寻址的执行,8.比例变址寻址方式 操作数EA变址寄存器的内容*指令中指定的比例因子 位移量 Ex3.12:MOV EAX,COUNT
13、ESI*4 9.基址比例变址寻址方式 操作数EA基址寄存器的内容变址寄存器的内容*指令 中指定的比例因子 Ex3.13:MOV ECX, EAXEDX*8 10.相对基址比例变址寻址方式 操作数EA基址寄存器的内容变址寄存器的内容*指令中指定的比 例因子位移量 Ex3.14: MOV EAX,TABLEEBPEDI*4,3.2.3 与转移地址有关的寻址方式 用来确定转移指令和CALL指令的转向地址。 有效地址存入IP,段地址在CS中。 1. 段内直接寻址,(1) EA当前的(IP) 8位偏移量 用EA作为新的IP 16位偏移量 (2)用于有条件转移 D8 无条件转移 D8(128+127 SH
14、ORT ) 或 D16(-32768+32767 NEAR ),ex: JMP NEAR PTR PROGA 无条件转移 &D16 JMP SHORT QUEST &D8 对于386及其后继机型,EA放入EIP, 偏移量是8位或32位。 8位是短转移 (-128+127) 32位是近转移(2G),2.段内间接转移,(1)EA:寄存器或存储单元中的内容。用EA作为新的IP (2) 不能用于条件转移 ex3.15:JMP BX (BX)=1256H EA(BX) 执行后:BX不变,(IP)1256H 转至CS:1256H执行。 ex3.16:JMP TABLEBX (等价于 JMP WORD PT
15、R TABLEBX) 物理地址16X(DS)+(BX)+TABLE=20000+1256+20A1=232F7H (232F7H)=3280H(新的IP) 转至CS:3280H,ex3.17 JMP BXSI (基址变址寻址) 物理地址16X(DS)+(BX)+(SI)=20000+1256+528F=264E5H (264E5H)=2450H (新的IP) 转至CS:2450H 对于386及其后继机型,可允许16位或32位寻址。 ex3.18: JMP ECX ex3.19 JMP Word Ptr TableESI,3 段间直接寻址,(1)指令中提供了转向的段地址和偏移地址,用于取代CS、IP的内容,完成一个段到另一个段的转移 (2)不能用于条件转移 ex:JMP FAR PTR NEXTRONT far ptr :段间转移操作符 NEXTROUT:符号地址 (IP、CS的值跟在OP之后),OP,50,02,00,20,JMP 指令,新(IP)0250H,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年驻马店市驿城区街道办人员招聘笔试参考题库及答案解析
- 新形势下森林脑炎灭活疫苗行业顺势崛起战略制定与实施分析研究报告
- 微写作在初中语文教学中的应用与思考
- 硼掺杂生物质炭阴极改性的双阴极电芬顿降解抗生素废水
- 2025-2030年新型农业材料企业制定与实施新质生产力战略分析研究报告
- 2026年淄博市张店区幼儿园教师招聘笔试参考试题及答案解析
- 2026年金融托管金融科技合作合同
- 2026年广告承运仓储托管协议
- 2026年广东省惠州市网格员招聘考试模拟试题及答案解析
- 2025年乌鲁木齐市达坂城区幼儿园教师招聘笔试试题及答案解析
- HG∕T 5241-2017 吡丙醚颗粒剂
- 中医师承关系协议书
- CHT 4020-2018 管线制图技术规范
- 2024年河北省邢台市巨鹿县招聘40人历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 大学生防诈骗安全教育宣讲
- 高中化学实验操作考试试题
- 国开计算机组网技术实训1:组建小型局域网
- 高中化学化学能与电能课件人教版必修二
- 招投标结果申诉函
- 足球-脚内侧接踢地滚球 课件
- 用excel绘制热网水压图
评论
0/150
提交评论