实模式与保护模式详解三:寻址方式
寻找操作数物理地址的方式叫寻址方式
操作数的存放点
操作数在指令中
指令的操作数部分就是操作数本身
也叫立即数操作数存放在CPU寄存器中
指令的操作数部分是寄存器的编码
也叫寄存器操作数操作数存放在内存中
指令的操作数部分包含操作数所在的内存地址
也叫储存器操作数
寻址方式
- 立即数寻址
e.g.
MOV AL, 10H
特点:操作数直接放在指令中 - 寄存器寻址
INC SI
特点:指令中需给出寄存器名,寄存器中的内容即为操作数 - 储存器寻址方式
直接寻址
例子
MOV AL,[2000H] ; AL ← PA=DSx16+2000
特点: p指令中直接给出有效地址EA:8位或16位位移量。 PA = (段寄存器)X 10H +指令中的EA 。 默认方式下:段寄存器是数据段DS。段跨越:指令增加段寄存器名前缀:CS,ES,SS等寄存器间接寻址方式
例子
MOV AX,[SI] ;AX ← DSx16 + [SI],[SI+1]
MOV BH,[BP] ;BH ← SSx16 + BP
MOV CX,ES:[BX] ;将ES段[BX][BX+1]内容送CL,CH
特点: 操作数的有效地址EA在寄存器中。 对16位寻址,EA只能放在DI、SI、BX、 BP中 ,若EA在DI、SI、BX中,默认段为数据段DS ,若EA在BP中,默认段为堆栈段SS ,支持段跨越。寄存器相对寻址方式
例子
MOV AX, [BX+10H] ; EA=(BX)+10H
特点 :给定基址/变址寄存器和相对偏移量,两者之和为EA。 寄存器BX、SI、DI默认是数据段DS,寄存器BP默认堆栈段SS。 支持段跨越。基址变址寻址方式
例子
MOV AX, [BX+SI] ; EA=(BX)+(SI) ;DS段
特点:有效地址EA是基址寄存器与变址寄存器的和。 默认段由基址寄存器决定。 支持段跨越。相对基址变址寻址方式
特点 :有效地址EA是基址寄存器+变址寄存器+偏移量三者之和。 基址寄存器可取BX或BP,变址寄存器可取SI或DI。 段寄存器由基址寄存器决定 p基址寄存器是BX,则默认段为DS; p基址寄存器是BP,则默认段为SS。
寻址时寄存器的使用约束
4. 一条指令的原操作数与目的操作数不能同时用存储器方式表示
如:
MOV [EAX + 4], DS:[100]
MOV [SI], [DI]
5. 双操作数有一操作数为立即数方式时,立即方式只能用于源操作数
6. 两个操作数的类型都明确时,源操作数不能比目标操作数长度要相同。不含变量的存储器方式类型是不明确的,立即数时没有类型的。当两个操作数类型都不明确时,需要用属性定义算符PTR指明其中一个操作数类型
实模式与保护模式详解三:寻址方式相关推荐
- .NET DLL 保护措施详解(四)各操作系统运行情况
我准备了WEB应用程序及WinForm应用程序,分别在WIN SERVER 2012/2008/2003.Win7/10上实测,以下为实测结果截图: 2012 2008 2003 WIN7 WIN10 ...
- 实模式与保护模式详解一:寄存器
基本寄存器 在了解实模式与保护模式区别之前,先介绍一下几个基本的寄存器 通用寄存器 寄存器组中有8个32位寄存器,属于CPU内的寄存器,也称通用寄存器,按照用途可以分为数据寄存器组和指示器变址寄存器 ...
- 任务和特权级保护(三)——《x86汇编语言:从实模式到保护模式》读书笔记34
任务和特权级保护(三)--<x86汇编语言:从实模式到保护模式>读书笔记34 5.2.7 在GDT中创建LDT描述符 处理器要求在GDT中安装每个LDT的描述符.当要使用这些LDT时,可以 ...
- 存储器的保护(三)——《x86汇编语言:从实模式到保护模式》读书笔记20
存储器的保护(三) 修改本章代码清单,使之可以检测1MB以上的内存空间(从地址0x0010_0000开始,不考虑高速缓存的影响).要求:对内存的读写按双字的长度进行,并在检测的同时显示已检测的内存数量 ...
- 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解
前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...
- 进入保护模式(三)——《x86汇编语言:从实模式到保护模式》读书笔记17
(十)保护模式下的栈 76 ;以下用简单的示例来帮助阐述32位保护模式下的堆栈操作 77 mov cx,00000000000_11_000B ;加载堆栈段选择子 78 mov ss,cx 79 mo ...
- Linux文件解hgc,Linux从实模式到保护模式.pdf
Linux从实模式到保护模式 Linux 内核源码学习 (1)- 从实模式到保护模式 notishell 发布于 3 年前 在查找资料的过程发现了一份关于 linux 内核启动的课件,在这里附上.(本 ...
- CPU的三种工作模式:实模式、保护模式、长模式
文章目录 **实模式** **保护模式** **长模式** **总结** 实模式 访问内存 实模式也就是说寄存器中存放的地址都是真实地址,比如下面这段程序: data SEGMENT ;定义一个数据段 ...
- 程序的加载和执行(四)——《x86汇编语言:从实模式到保护模式》读书笔记24
程序的加载和执行(四)--<x86汇编语言:从实模式到保护模式>读书笔记24 通过本文能学到什么? 怎样跳转到用户程序 用户程序通过调用内核过程完成自己的功能 怎样从用户程序返回到内核 接 ...
- 【OS修炼指南目录】----《X86汇编语言-从实模式到保护模式》读书笔记目录表
学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2: 780902027 本文是将个人 ...
最新文章
- word 生成HTML
- 21天搞定Python爬虫
- java显式构造函数_C++中的显式构造函数
- 一个DataTable赋值给另一个
- 为何苦命干活的人成不了专家?
- 职场生活:辞职也有大学问
- [转载] java构造函数初始化与执行顺序问题
- (三)映射对象标识符(OID)
- matlab 自适应波束,(完整word版)自适应波束形成与Matlab程序代码注解
- linux下dhcp配置(二)
- ASP.NET OAuth 2.0 新手上路
- 网易邮箱大师添加附件显示服务器连接失败,网易邮箱大师如何添加Word附件 添加附件方法步骤详细介绍...
- PMP项目管理-项目成本管理(3)
- Maximo 密码加密传送
- shutdown配合at命令 实现定时关机,重启---
- 关于电脑已经成为肉鸡的六种现象
- MySql8.0.22数据库安装教程
- leet_452_find_min_arrow_shots(用最少数量的箭引爆气球)
- Java程序员英语单词记录
- BZOJ 2821 作诗 分块
热门文章
- JRE System Library、Referenced Libraries、Web App Libraries的含义
- 004-ubuntu安装配置SSH服务
- Android面试收集录13 Android虚拟机及编译过程
- document.body ,window.screen javascript对象属性取值意义
- 获取项目文件在服务器的真实路径
- hdu1428 spfa+记忆化搜索
- 操作系统原理第七章:死锁
- C语言经典例96-计算字符串中子串出现的次数
- 【Android 逆向】substrate 框架 ( substrate 简介 | substrate 相关文档资料 )
- 【Android 逆向】Frida 框架 ( 安装 frida 12.7.5 | 安装 frida-tools 5.1.0 | PC 端 frida 与 安卓模拟器端 frida-server )