指令寻址

文章目录

  • 指令寻址
    • 一、指令寻址的定义
    • 二、转移范围
      • (1)段内转移
      • (2)段间转移
    • 三、指令寻址方式
      • (1)顺序寻址
      • (2)跳转寻址
        • 1.指令的相对寻址
        • 2.指令的直接寻址
        • 3.指令的间接寻址

一、指令寻址的定义

一条指令执行后,确定执行的下一条指令的位置。

IA-32 处理器设计有相对 、直接和间接3种指明目标地址的方式,其基本含义类似于对应的存储器数据寻址方式。

二、转移范围

程序流程的控制转移:

  • 程序代码在代码段

    • CS:指明代码段在主存中的段基地址
    • EIP:给出将要执行指令的偏移地址
  • 指令顺序寻址,程序顺序执行 ►处理器自动增量EIP
  • 指令跳转寻址,程序控制转移 ►EIP(CS)随之改变

程序转移的范围(远近)在 IA-32 处理器中有段内和段间两种。

(1)段内转移

  • 段内转移是指在 前代码段范围内的程序转移.因此不需要更改代码段寄存器 CS 的内容,只要改变指令指针寄存器 EIP 的偏移地址.
  • 段内转移相对较近,故也被称为近转移 (类型属性使用“NEAR”关键字)
  • 如果转移范围在127~-128字节之间, (位移量使用1个字节)又称为短转移(类型属性使用“SHORT”关键字)

(2)段间转移

  • 段间转移是指程序从当前代码段跳转到另一个代码段,此时需要更改代码段寄存器 CS 的内容和指令指针寄存器 ElP 的偏移地址。
  • 段间转移可以在整个存储空间内跳转、相对较远,故也被称为远转移(类型属性使用“FAR”关键字)

三、指令寻址方式

(1)顺序寻址

EIP自动增量指向下一条指令,顺序执行接着的下一条指令.

(2)跳转寻址

控制流程跳转(转移)到指定指令位置,实现程序分支、循环、调用等结构.

1.指令的相对寻址

相对寻址是指令代码提供目标地址相对于当前指令指针寄存器 EIP 的位移量,转移到的目标地址(转移后的 EIP 值)就是当前 EIP 值加上位移量
提供目标地址相对于当前指令指针EIP的位移量

目标地址(转移后的IP)=当前EIP+位移量
  • 相对寻址都是段内转移:由于要基于同一个基地址计算位置, 所以相对寻址都是段内转移。
  • 最常用、最灵活:一个程序被操作系统安排到不同的存储区域执行时,指令间的位移没有改变,相对寻址也就无须改变转移地址,给操作系统的灵活调度提供了很大方便。

2.指令的直接寻址

直接寻址是指令代码直接提供目标地址:

目标地址=指令操作数
  • 理论上直接寻址可以段内或段间转移
  • IA-32只支持段间的直接转移

3.指令的间接寻址

间接寻址是指令代码指示寄存器或存储单元,目标地址来自寄存器或存储单元,是通过间接手段获得的。

  • 寄存器间接寻址:用寄存器保存目标地址
  • 存储器间接寻址:用存储单元保存目标地址

【汇编语言】指令寻址相关推荐

  1. PE文件-CPU寄存器-栈-常用汇编语言指令-push-move-sub-lea-rep-xor

    文章目录 1.CPU寄存器 2.常用汇编指令 3.作者答疑   如果需要对恶意软件分析,或者修改现有可执行文件的功能,如果有软件的源代码,固然可以比较好的修改,如果没有,通过汇编指令的修改亦可做到.本 ...

  2. 8086汇编语言指令总结

    根据工作需要,从基础学起,设计一台嵌入式CISC模型计算机,稍后上传. 先总结下,汇编语言指令,如下 1. MOV(传送) 指令写法:MOV  target,source 功能描述:将源操作数sour ...

  3. 指令系统寻址方式——指令寻址,数据寻址

    前言 寻址方式是指确定本条指令的数据地址以及下一条将要执行的指令地址的方法,它与硬件结构紧密相关,而且直接影响指令格式和指令功能. 一.寻址方式的分类 寻址方式分为:指令寻址和数据寻址两大类. 指令寻 ...

  4. 8051系列单片机汇编语言指令速查表(汇编语言的111条指

    8051系列单片机汇编语言指令速查表(汇编语言的111条指_纳兰容若的左手_新浪博客 http://blog.sina.com.cn/s/blog_6486c0b30100gqew.html 编号 指 ...

  5. ARM指令寻址方式之: 内存访问指令寻址

    4.2  内存访问指令寻址 根据内存访问指令的分类,内存访问指令的寻址方式可以分为以下几种. ① 字及无符号字节的Load/Store指令的寻址方式. ② 杂类Load/Store指令的寻址方式. ③ ...

  6. 指令系统——数据存放、指令寻址(详解)

    一.总览 二.数据存放 三.指令寻址 四.小结:

  7. (计算机组成原理)第四章指令系统-第二节1:指令寻址

    文章目录 一:顺序寻址 二:跳跃寻址 注意指令寻址和数据寻址的区别 指令寻址:下一条欲执行指令的地址会由程序计数器 P C PC PC给出,分为顺序寻址和跳跃寻址 数据寻址:执行一条指令时,解释出这条 ...

  8. 汇编语言L0C,单片机汇编语言指令查表.doc

    单片机汇编语言指令查表 目的操作数汇编指令机器码功能机器周期字节数Amov A ,#data74H datadata传至A12Amov A,directE5H direct direct 传至A12A ...

  9. 汇编jnl_汇编语言指令英文全称

    汇编语言指令英文全称 汇编指令英文全称 1.通用数据传送指令 MOV----&gt move MOV dest,src;dest←src MOV指令把一个字节或字的操作数从源地址src传送至目 ...

最新文章

  1. CQRS实践(3): Command执行结果的返回
  2. 用于类别级物体6D姿态和尺寸估计的标准化物体坐标空间
  3. java转安卓快吗_安卓Kotlin开发系列之Java快速转Kotlin
  4. 【模型解读】历数GAN的5大基本结构
  5. ant-design-vue 环境搭建及入门
  6. 【原创】通俗易懂地解决中文乱码问题(1) --- 跨平台乱码
  7. java B2B2C springmvc mybatis电子商务平台源码
  8. 解决C++中multiple definition of问题
  9. Java再学习——关于ConcurrentHashMap
  10. java位原子_Java原子操作AtomicInteger的用法
  11. Visio安装网盘,我不会破解
  12. 推荐系统学习(一)--电影推荐系统搭建
  13. Idea插件开发-开发自己的第一款idea插件
  14. mappedby 详解
  15. android 时钟翻转,旋转时钟游戏
  16. 作为互联网人,这些潮流词汇你懂吗?
  17. 香帅的北大金融学课笔记15 -- 大师投资智慧
  18. Linux系统库函数之strsep
  19. VSS2005的配置
  20. ORB-SLAM2系列第六章—— 跟踪线程

热门文章

  1. Python报错:module ‘turtle’ has no attribute ‘pensize’
  2. 用C语言解决狼羊白菜过河的思路,基于visual Studio2013解决C语言竞赛题之1079狼羊过河...
  3. aix升级openssh_AIX6.1上源码编译升级openssh6.6p1
  4. idea报错 IDEA:clear read-only status
  5. 淘宝联盟 推广链接 API取链 转链报错 传入参数错误,请检查adzone_id是否属于appkey拥有者
  6. 微信小程序报Cannot read property ‘setData‘ of undefined的错误
  7. python金融数据分析电子版_python 金融大数据分析 pdf
  8. 计算机系统导论第九章,计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新)...
  9. HTML的定义和特点,【HTML】复习笔记(一)初识HTML
  10. arraylist java 排序_java的arraylist排序示例(arraylist用法)