3.汇编指令:【寻址方式】立即数寻址、寄存器寻址、存储器寻址

3.汇编指令:【寻址方式】立即数寻址、寄存器寻址、存储器寻址文章目录指令格式指令中的 目标 源 操作数来源一 立即数寻址二 寄存器寻址三 存储器寻址 3 1 直接寻址 3 2 寄存器间接寻址 3 3 基址寻址 3 4 变址寻址 3 5 基址变址寻址 3 6 带位移的基址加变址寻址方式 3 7 小结 寻址方式中容易出现的错误另类写法练习题第 1 题第 2 题指令格式指令中的 目标 源 操作数来源立即数 四位十六

指令格式

在这里插入图片描述

指令中的(目标 / 源)操作数来源

七种叫法:

  1. 立即寻址方式
  2. 寄存器寻址方式
  3. 直接寻址方式
  4. 寄存器间接寻址方式
  5. 寄存器相对寻址方式
  6. 基址加变址寻址方式
  7. 相对基址加变址寻址方式

一、立即数寻址

把一个数直接在指令里面给出来,然后把这个数赋值给目标操作数。如:把 1234H 这个数赋值给DX【数据寄存器】
在这里插入图片描述

但是,一般这种寻址方式我们只会在赋初值的时候才会用。


二、寄存器寻址

就是我们不直接在指令里面给出源操作数,而是把这个源操作数放在一个寄存器里面,通过寄存器来赋值。

例如:把通用寄存器 BX 里面存放的数据赋值给 AX。(源寄存器和目标寄存器的大小一定要相同)
在这里插入图片描述


三、存储器寻址

3.1 直接寻址

这里,我们就给出了源操作数的偏移地址是 3000H,那么段地址去哪了?


3.2 寄存器间接寻址

这里是通过把偏移地址放在寄存器中的寻址方式。用于存放数据在内存中的偏移地址的,只能有 4 个通用寄存器:BX, BP, SI, DI

如果存放偏移地址的是寄存器:BX, SI, DI, 那么默认的段就是数据段 DS;
如果存放偏移地址的是寄存器:BP,那么默认的段就是堆栈段 SS

因为我们知道:16位 CPU 它这个内存单元一个就是 8位的,我们通过 [BX] 所访问到的就是一个存储单元,也就是说,我们只取出了1个数,这个数是 8 位的。但是想要赋值的寄存器 AX 是 16位的,因此这时,我们还需要再往下多取一个8位二进制数,作为高位,存放在 AH。


3.3 基址寻址 (寄存器相对寻址?)

采用基址寻址时,我们的偏移地址是这样表示的:[基址寄存器] + 偏移量

这里,偏移量是一个常数,而能够存放基址的,只有 BP 和 BX

  • 在使用 BX【基址寄存器】 时,默认的段就是数据段DS;
  • 在使用 BP 【基址指针】时,默认的段就是堆栈段 SS

3.4 变址寻址(寄存器相对寻址?)

上面我们采用的偏移地址表示是 [基址寄存器] + 偏移量,而在变址寻址中,我们偏移地址的表示就是:[变址寄存器] + 偏移量。

在16位变址寻址中,变址寄存器只能是SI 、 DI,且它们都是默认段是 DS

变址寻址主要的目的是为了一维数组的操作,因为我们知道,要想访问一维数组,需要有表头,还要有数组内数据和表头的距离。那么我们常常用那个常数偏移量代表表头,有寄存器的变化代表数组内元素距表头的距离。


3.5 基址变址寻址

类似的,在这种寻址方式下,我们的偏移地址就表示成:[基址寄存器] + [变址寄存器]

说明:在这种寻址模式下,哪个段主要取决于基址寄存器


3.6 带位移的基址加变址寻址方式


3.7 小结

在这里插入图片描述

———————————————————————————

寻址方式中容易出现的错误

在这里插入图片描述

另类写法

在这里插入图片描述
在这里插入图片描述

练习题

第1题

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

第2题

在这里插入图片描述



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222581.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:27
下一篇 2026年3月17日 下午3:28


相关推荐

  • a星算法详解_matlab优化算法

    a星算法详解_matlab优化算法概述基于上一篇文章提到的DFS算法和BFS算法A星算法属于图这种数据结构的搜索算法,对比于树的遍历搜索,需要考虑到的问题是:同一个节点的重复访问,所以需要对于已经访问过的节点进行标记。曼哈顿距离:在几何度量空间中,用以标明两个点在标准坐标系上的绝对轴距总和。图1中绿色代表欧氏距离(直线距离),蓝色和黄色代表等价的曼哈顿距离。d(i,j)=|Xi-Xj|+|Yi-…

    2026年4月17日
    5
  • Qt学习之QListWidget删除Item

    Qt学习之QListWidget删除Item将QListWidgetItem从QListWidget列表中删除有两种方法可以做到,但也要根据自己的需要进行选择。第一种是QListWidgetItem*takeItem(introw);使用此方法需要知道删除的是第几个Item,并且返回删除的Item指针。第二种是inlinevoidremoveItemWidget(QListWidgetItem*item);需要知道删除

    2022年5月3日
    546
  • 作为uboot到kernel中DTS DTSI DTB等关系

    作为uboot到kernel中DTS DTSI DTB等关系1 设备树 DeviceTree 基本概念及作用在内核源码中 存在大量对板级细节信息描述的代码 这些代码充斥在 arch arm plat gt xxx 和 arch arm mach xxx 目录 对内核而言 这些 platform 设备 resource I2C board info spi board info 以及各种硬件的 platform data 绝大多数纯属垃圾冗余代码 为了解决这一问题

    2026年3月18日
    5
  • css代码样式大全(整理版)

    css代码样式大全(整理版)css 代码样式大全 整理版 这几天一直在写一个动态网站 布局就弄了好久 看到一篇博客 发现 css 样式代码写的很详细 为此记录下来 这几天一直再写一个动态网站 布局就弄了好久 看到一篇博客 发现 css 样式代码写的很详细 为此记录下来 字体属性 font 大小 font size x large 特大 xx small 极小 一般中文用不到 只要用数值就可以 单位 PX PD 样式 font style oblique 偏斜体 italic 斜体 normal 正常 行高

    2026年3月19日
    2
  • 开源 自由 java CMS – FreeCMS1.9 评论管理

    开源 自由 java CMS – FreeCMS1.9 评论管理

    2022年1月13日
    47
  • linux将一个文件夹的内容复制到另一个文件夹_linux复制文件夹命令

    linux将一个文件夹的内容复制到另一个文件夹_linux复制文件夹命令1.前言本文主要讲解Linux系统如何使用命令行工具把文件复制到另一个文件夹或者目录。2.cp命令的选项和功能copy命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。语法:cp[选项]源文件或目录目标文件或目录说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。该命令的各选项含义如下:-a该选项通常在拷贝目录…

    2022年8月23日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号