寻找操作数物理地址的方式叫寻址方式

操作数的存放点

  1. 操作数在指令中
    指令的操作数部分就是操作数本身
    也叫立即数

  2. 操作数存放在CPU寄存器中
    指令的操作数部分是寄存器的编码
    也叫寄存器操作数

  3. 操作数存放在内存中
    指令的操作数部分包含操作数所在的内存地址
    也叫储存器操作数

寻址方式

  1. 立即数寻址
    e.g.
    MOV AL, 10H
    特点:操作数直接放在指令中
  2. 寄存器寻址
    INC SI
    特点:指令中需给出寄存器名,寄存器中的内容即为操作数
  3. 储存器寻址方式
    1. 直接寻址
      例子
      MOV AL,[2000H] ; AL ← PA=DSx16+2000
      特点: p指令中直接给出有效地址EA:8位或16位位移量。 PA = (段寄存器)X 10H +指令中的EA 。 默认方式下:段寄存器是数据段DS。段跨越:指令增加段寄存器名前缀:CS,ES,SS等

    2. 寄存器间接寻址方式
      例子
      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 ,支持段跨越。

    3. 寄存器相对寻址方式
      例子
      MOV AX, [BX+10H] ; EA=(BX)+10H
      特点 :给定基址/变址寄存器和相对偏移量,两者之和为EA。 寄存器BX、SI、DI默认是数据段DS,寄存器BP默认堆栈段SS。 支持段跨越。

    4. 基址变址寻址方式
      例子
      MOV AX, [BX+SI] ; EA=(BX)+(SI) ;DS段
      特点:有效地址EA是基址寄存器与变址寄存器的和。 默认段由基址寄存器决定。 支持段跨越。

    5. 相对基址变址寻址方式
      特点 :有效地址EA是基址寄存器+变址寄存器+偏移量三者之和。 基址寄存器可取BX或BP,变址寄存器可取SI或DI。 段寄存器由基址寄存器决定 p基址寄存器是BX,则默认段为DS; p基址寄存器是BP,则默认段为SS。

寻址时寄存器的使用约束
4. 一条指令的原操作数与目的操作数不能同时用存储器方式表示
如:
MOV [EAX + 4], DS:[100]
MOV [SI], [DI]
5. 双操作数有一操作数为立即数方式时,立即方式只能用于源操作数
6. 两个操作数的类型都明确时,源操作数不能比目标操作数长度要相同。不含变量的存储器方式类型是不明确的,立即数时没有类型的。当两个操作数类型都不明确时,需要用属性定义算符PTR指明其中一个操作数类型

实模式与保护模式详解三:寻址方式相关推荐

  1. .NET DLL 保护措施详解(四)各操作系统运行情况

    我准备了WEB应用程序及WinForm应用程序,分别在WIN SERVER 2012/2008/2003.Win7/10上实测,以下为实测结果截图: 2012 2008 2003 WIN7 WIN10 ...

  2. 实模式与保护模式详解一:寄存器

    基本寄存器 在了解实模式与保护模式区别之前,先介绍一下几个基本的寄存器 通用寄存器 寄存器组中有8个32位寄存器,属于CPU内的寄存器,也称通用寄存器,按照用途可以分为数据寄存器组和指示器变址寄存器 ...

  3. 任务和特权级保护(三)——《x86汇编语言:从实模式到保护模式》读书笔记34

    任务和特权级保护(三)--<x86汇编语言:从实模式到保护模式>读书笔记34 5.2.7 在GDT中创建LDT描述符 处理器要求在GDT中安装每个LDT的描述符.当要使用这些LDT时,可以 ...

  4. 存储器的保护(三)——《x86汇编语言:从实模式到保护模式》读书笔记20

    存储器的保护(三) 修改本章代码清单,使之可以检测1MB以上的内存空间(从地址0x0010_0000开始,不考虑高速缓存的影响).要求:对内存的读写按双字的长度进行,并在检测的同时显示已检测的内存数量 ...

  5. 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解

    前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...

  6. 进入保护模式(三)——《x86汇编语言:从实模式到保护模式》读书笔记17

    (十)保护模式下的栈 76 ;以下用简单的示例来帮助阐述32位保护模式下的堆栈操作 77 mov cx,00000000000_11_000B ;加载堆栈段选择子 78 mov ss,cx 79 mo ...

  7. Linux文件解hgc,Linux从实模式到保护模式.pdf

    Linux从实模式到保护模式 Linux 内核源码学习 (1)- 从实模式到保护模式 notishell 发布于 3 年前 在查找资料的过程发现了一份关于 linux 内核启动的课件,在这里附上.(本 ...

  8. CPU的三种工作模式:实模式、保护模式、长模式

    文章目录 **实模式** **保护模式** **长模式** **总结** 实模式 访问内存 实模式也就是说寄存器中存放的地址都是真实地址,比如下面这段程序: data SEGMENT ;定义一个数据段 ...

  9. 程序的加载和执行(四)——《x86汇编语言:从实模式到保护模式》读书笔记24

    程序的加载和执行(四)--<x86汇编语言:从实模式到保护模式>读书笔记24 通过本文能学到什么? 怎样跳转到用户程序 用户程序通过调用内核过程完成自己的功能 怎样从用户程序返回到内核 接 ...

  10. 【OS修炼指南目录】----《X86汇编语言-从实模式到保护模式》读书笔记目录表

    学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2: 780902027 本文是将个人 ...

最新文章

  1. word 生成HTML
  2. 21天搞定Python爬虫
  3. java显式构造函数_C++中的显式构造函数
  4. 一个DataTable赋值给另一个
  5. 为何苦命干活的人成不了专家?
  6. 职场生活:辞职也有大学问
  7. [转载] java构造函数初始化与执行顺序问题
  8. (三)映射对象标识符(OID)
  9. matlab 自适应波束,(完整word版)自适应波束形成与Matlab程序代码注解
  10. linux下dhcp配置(二)
  11. ASP.NET OAuth 2.0 新手上路
  12. 网易邮箱大师添加附件显示服务器连接失败,网易邮箱大师如何添加Word附件 添加附件方法步骤详细介绍...
  13. PMP项目管理-项目成本管理(3)
  14. Maximo 密码加密传送
  15. shutdown配合at命令 实现定时关机,重启---
  16. 关于电脑已经成为肉鸡的六种现象
  17. MySql8.0.22数据库安装教程
  18. leet_452_find_min_arrow_shots(用最少数量的箭引爆气球)
  19. Java程序员英语单词记录
  20. BZOJ 2821 作诗 分块

热门文章

  1. JRE System Library、Referenced Libraries、Web App Libraries的含义
  2. 004-ubuntu安装配置SSH服务
  3. Android面试收集录13 Android虚拟机及编译过程
  4. document.body ,window.screen javascript对象属性取值意义
  5. 获取项目文件在服务器的真实路径
  6. hdu1428 spfa+记忆化搜索
  7. 操作系统原理第七章:死锁
  8. C语言经典例96-计算字符串中子串出现的次数
  9. 【Android 逆向】substrate 框架 ( substrate 简介 | substrate 相关文档资料 )
  10. 【Android 逆向】Frida 框架 ( 安装 frida 12.7.5 | 安装 frida-tools 5.1.0 | PC 端 frida 与 安卓模拟器端 frida-server )