X86的寻址方式和指令系统.ppt

上传人:za****8 文档编号:6648172 上传时间:2020-03-01 格式:PPT 页数:40 大小:1.56MB
返回 下载 相关 举报
X86的寻址方式和指令系统.ppt_第1页
第1页 / 共40页
X86的寻址方式和指令系统.ppt_第2页
第2页 / 共40页
X86的寻址方式和指令系统.ppt_第3页
第3页 / 共40页
点击查看更多>>
资源描述
第三章80X86的寻址方式和指令系统 主要内容寻址方式指令系统 3 1概述 计算机解决问题 通过执行指令序列完成 一条指令对应一种基本操作 如 加 减 传送等 每种计算机都提供一组指令集给用户 这组指令集称为计算机的指令系统 一条指令由操作码 操作数组成 操作码 指示计算机要执行的操作 操作数 指出指令在执行过程中所需要的操作数 也可是操作数的地址 指令的一般格式 操作码 操作数 操作数字段可以有一个或两个 称为一地址 二地址或三地址指令 如何寻找操作数就是寻址方式 3 2寻址方式 有效地址EA和段超越有效地址EA 段超越与数据有关的寻址方式立即寻址 寄存器寻址 直接寻址 寄存器间接寻址 寄存器相对寻址基址变址寻址 相对基址变址寻址比例变址寻址 基址比例变址寻址 相对基址比例变址寻址与转移有关的寻址方式段内直接 间接寻址段间直接 间接寻址 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以后机型 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 立即寻址 操作数直接包含在指令中 紧跟在操作码的后面 与操作码一起放在代码段 Ex MOVAX imAx 目的操作数im 源操作数 2 主要用来给寄存器 存储单元赋初值ex3 1 MOVAL 5 AL 05Hex3 2 MOVAX 0B34CH AX 0B34CH AHAL OP imL imH CS段 Im 立即数 可以是8位或16位 OP 4C B3 AHAL CS段 注意 立即数以A F开头的十六进制数 必须在字母前加数字0 32位寻址时 ex3 3MOVEAX 12345678H EAX 12345678H 立即数寻址的功能 立即数寻址的执行 2 寄存器寻址 速度快 1 操作数包含在CPU内部寄存器中 寄存器可以是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 AXDSAX EX3 4 a MOVAX BX执行前 AX 3064H BX 1234H执行后 AX 1234H BX 不变 Ex3 4 b MOVECX EDX执行前 ECX 01237541H EDX 12345678H执行后 ECX 12345678H EDX 不变 寄存器寻址的功能 寄存器寻址的执行 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 用于处理单个变量 AHAL 30000H 32000H 50 30 OP 00 20 CS DS EX3 5MOVAX 2000H DS 3000HEA 2000H物理地址 30000H 2000H 32000H 32000H 3050H AX 3050H Ex3 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个通用寄存器 ESP EBP默认段为SS段 2 用于表格处理 AHAL 20000H 21000H A0 50 OP Ex3 7MOVAX BX 操作数在DS段DS 2000HBX 1000H物理地址 20000 1000 21000H 21000H 50A0H AX 50A0H CS DS Ex3 8MOVECX EDX 寄存器间接寻址的执行 5 寄存器相对寻址 1 操作数的EA是基址寄存器或变址寄存器的内容和指令中指定的位移量之和 16位寻址 操作数在存储器中 BX BP EA SI 位移量 DI 2 物理地址为 SI 16x Ds DI 位移量16x SS BP 位移量 BX 3 允许段超越 用于表格处理 EX MOVAX ES STRING DI 物理地址 16x ES DI STRING AHAL 30000H 35000H 34 12 OP Ex3 9 MOVAX COUNT SI MOVAX SI COUNT DS 3000H SI 2000HCOUNT 3000H 符号地址 物理地址 30000 2000 3000 35000H 35000H 1234H AX 1234H CS DS 00 30 位移量 count OP 32位寻址Ex MOVEAX TABLE ESI 寄存器相对寻址的功能 寄存器相对寻址的执行 6 基址 变址寻址 1 操作数的EA是一个基址寄存器与一个变址寄存器内容之和 操作数在存储器中16位寻址 其物理地址为 SI SI 16x Ds BX DI 16x SS BP DI 2 允许段超越 用于数组和表格处理EX MOVAX ES BX SI 段超越 34 12 DS 21000H 221FDH AHAL EX3 11 MOVAX BX DI 或MOVAX BX DI DS 2100H BX 0158H DI 10A5H物理地址 21000 0158 10A5 221FDH 221FDH 1234H AX 1234H 对于32位寻址方式 Ex MOVEDX EBX ESI 基址变址寻址的功能 基址变址寻址的执行 7 相对基址 变址寻址 1 操作数的EA是一个基址寄存器 变址寄存器 指令中指定的位移量之和 操作数在存储器中 2 16位寻址方式中 物理地址为 SI 16x Ds BX DI 位移量 SI 16x SS BP DI 位移量 3 允许段超越 用于堆栈处理 EX3 8 MOVAX MASK BX SI 或MOVAX MASK BX SI 或MOVAX MASK BX SI DS 3000H BX 2000H SI 1000HMASK 0250H物理地址 30000 2000 1000 0250 33250H 33250H 1234H AX 1234H 30000H 33250H 34 12 OP 50 02 位移量 mask cs ds AHAL 对于32位寻址方式 Ex MOVEAX ARRAY EBX ECX 相对基址变址寻址的功能 相对基址变址寻址的执行 8 比例变址寻址方式操作数EA 变址寄存器的内容 指令中指定的比例因子 位移量Ex3 12 MOVEAX COUNT ESI 4 9 基址比例变址寻址方式操作数EA 基址寄存器的内容 变址寄存器的内容 指令中指定的比例因子Ex3 13 MOVECX EAX EDX 8 10 相对基址比例变址寻址方式操作数EA 基址寄存器的内容 变址寄存器的内容 指令中指定的比例因子 位移量Ex3 14 MOVEAX TABLE EBP EDI 4 3 2 3与转移地址有关的寻址方式用来确定转移指令和CALL指令的转向地址 有效地址存入IP 段地址在CS中 1 段内直接寻址 1 EA 当前的 IP 8位偏移量用EA作为新的IP16位偏移量 2 用于有条件转移D8无条件转移D8 128 127SHORT 或D16 32768 32767NEAR ex JMPNEARPTRPROGA无条件转移 D16JMPSHORTQUEST D8对于386及其后继机型 EA放入EIP 偏移量是8位或32位 8位是短转移 128 127 32位是近转移 2G 2 段内间接转移 1 EA 寄存器或存储单元中的内容 用EA作为新的IP 2 不能用于条件转移ex3 15 JMPBX BX 1256HEA BX 执行后 BX不变 IP 1256H转至CS 1256H执行 ex3 16 JMPTABLE BX 等价于JMPWORDPTRTABLE BX 物理地址 16X DS BX TABLE 20000 1256 20A1 232F7H 232F7H 3280H 新的IP 转至CS 3280H ex3 17JMP BX SI 基址变址寻址 物理地址 16X DS BX SI 20000 1256 528F 264E5H 264E5H 2450H 新的IP 转至CS 2450H对于386及其后继机型 可允许16位或32位寻址 ex3 18 JMPECXex3 19JMPWordPtrTable ESI 3 段间直接寻址 1 指令中提供了转向的段地址和偏移地址 用于取代CS IP的内容 完成一个段到另一个段的转移 2 不能用于条件转移ex JMPFARPTRNEXTRONTfarptr 段间转移操作符NEXTROUT 符号地址 IP CS的值跟在OP之后 OP 50 02 00 20 JMP指令 新 IP 0250H 新 CS 2000H C1段 C2段 20250H NEXTOUT 段间直接转移 对于386及后继机型 段间转移后修改CS EIP的内容 4 段间间接转移 1 用存储器中两个相继字的内容取代IP CS的内容 完成段间转移 先求PA 找出四个字节作为IP和CS的内容 转移过去 2 不能用于条件转移例 JMPDWORDPTRINTER BX Dwordptr 双字操作符 段间转移 386及其后继机型可采用32位寻址 LessonP1073 43 53 8
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!