8086中的操作数

2023-05-16

指令中的操作数

指令的基本形式为“操作码 目标操作数 源操作数”,其中操作码代表了如何对数据进行操作,目标操作数和源操作数分别代表了数据计算之后的归宿和数据的获取处。操作数本身是个数据,但是数据的性质(这个数据象征的是数据还是地址)要由操作码说了算。

立即数操作数

立即数操作数表征着参加操作数据的本身,例如“mov AX 8080H”中8080H代表了立即数,将8080H拷贝至AX寄存器中。

由于立即数操作数表征着被操作数据本身,即操作数并不用从其他地方获取,因此立即数操作数和操作码一起被存放在存储器的代码段。

注意:立即数操作数不可以作为目标操作数!目标操作数必须可以存放操作后的数据,立即数只是个存放在代码段的数据,显然不可以存放操作后的数据。

寄存器操作数

参加运算的数存放在指令给出的寄存器中,可以是16位或8位。例如“mov AX 8080H”就是要将8080H拷贝至寄存器AX中,但是AX在这里是数据存放目标地址的代名词。

注意:

1. 无论是存储器操作数[8080H]还是寄存器操作数AX,都代表着数据所在地/目的地的地址。存储器操作数/寄存器操作数当作为目标操作数时,表征着数据操作之后存放的地址;存储器操作数/寄存器操作数当作为源操作数时,表征着数据来源的地址;

2. 寄存器操作数可以是8位也可以是16位字长的数据。

存储器操作数

参加运算的数存放在指令给出的存储器内存单元中,参与运算的数据长度不定。存储器操作数有个明显的特征:“[存储单元的相对地址]”,括号内是“内存单元相对于所在逻辑段的偏移地址”。我们有时候会遇到以下两种形式的存储器操作数:

1. [立即数操作数]

“mov AX [8080H]”表示“要将数据段偏移地址为8080H的存储单元中的内容拷贝至AX寄存器中”,这里如果我们不使用“段重设”的方式显式的指明,数据的偏移地址指的是“相较于数据段的偏移地址”。

注意:无论是存储器操作数[8080H]还是寄存器操作数AX,都代表着数据所在地/目的地的地址。存储器操作数/寄存器操作数当作为目标操作数时,表征着数据操作之后存放的地址;存储器操作数/寄存器操作数当作为源操作数时,表征着数据来源的地址。

2. [寄存器操作数]

“mov AX [BX]”中“BX中的内容象征着存储单元相对于所在逻辑段的偏移地址”,该指令的含义就是“将内存单元中的数据拷贝至AX寄存器中”。

存储器操作数长度的指定

首先,存储器的内存单元是线性排列的,不同于寄存器操作数固定长度,存储器的存储单元运算的数据没有固定的长度。例如“mov [1000H] 8080H”

1. 立即数并没有字长限制,即立即数可以在最高位前无限的添加0,例如008080H、00008080H等都和8080H数值相同;

2. 存储器的内存单元是线性排列的,那立即数可以在最高位前无限的添加0 数值仍不变,“mov [1000H] 8080H”、 “mov [1000H] 008080H”、 “mov [1000H] 00008080H”都一样,即一条指令出现了以下多种结果:

一个指令三种结果,那这样的指令不可能被执行。那我们只有一种选择:指定字长。在双操作数的指令中有个规定“两个操作数如果都没有字长的限制,那么我们必须显示的指明操作数的字长,而且两个操作数对于字长的限定必须相同“。

那么“mov [1000H] 8080H”应改为“mov [1000H] WORD PTR(8080H)”、“mov WORD PTR([1000H]) 8080H”或者“mov WORD PTR([1000H]) WORD PTR(8080H)”,我们显式的指明两个操作数中任意一个操作数的字长即可。“WORD PTR(限定对象)“和”BYTE PTR(限定对象)”分别可以将数据限定在word和byte长度。

由于立即数和存储器操作数的字长不定,因此对于双操作数均为存储器操作数、操作数一个为存储器操作数一个为立即数的情况,我们必须显式的指定字长,否则系统根本无法确定被操作数据到底占用几个字节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

8086中的操作数 的相关文章

  • Pytorch排查训练过程中出现nan值的位置

    span class token keyword import span torch span class token comment 正向传播 span torch span class token punctuation span au
  • JupyterLab配置远程访问

    新版本的jupyter lab似乎和之前版本的不大一样 目录 生成配置文件设置密码安装插件将 96 Test 96 环境写入jupyterlab设置远程访问其他 生成配置文件 jupyter lab generate config 设置密码
  • Anaconda多用户配置指北

    适用于实验室深度学习服务器配置 创建用户组 groupadd stu配置conda xff0c 参考这里新创建的用户加入stu组 xff0c 并指定家目录useradd d home media m g stu xpt xff0c 为不同用
  • Hexo/Github.io 配置腾讯云CDN

    前言 使用Github io搭建自己的博客时可能会遇到访问速度不理想的情况 xff0c 可以采用如下几种方案解决 xff1a 将Hexo部署到阿里云 xff08 点击查看 xff09 xff0c 直接访问阿里云 xff0c 但这种方式会暴露
  • slam定位学习笔记(七)-g2o学习

    主要学习的是这篇文章 xff0c 但大佬并没有在文章里面仔细的讲g2o xff0c 所以我在网上找了这几篇介绍g2o的文章 xff0c 讲的十分详细 xff0c 对入门十分友好 xff1a 文章一 文章二 文章三 xff0c 这三篇都是一个
  • XTDorne平台搭建无人机仿真环境时遇到的问题及解决

    XTDorne平台搭建无人机仿真环境时遇到的问题及解决 PX4安装过程中遇到的问题及解决 PX4安装过程中遇到的问题及解决 执行make px4 sitl default gazebo遇到的问题 问题1 xff1a No package 3
  • 使用Adobe软件镜像pdf页面

    直接上图 xff1a 之后确定保存路径就OK
  • docker安装指定版本(替换安装)

    1 docker安装 如果本地之前安装过docker版本 xff0c 需要先卸载 yum y remove docker docker client docker client latest docker common docker lat
  • 虚拟机下CentOS8 无法上网的问题解决办法

    1 首先切换成管理员身份 xff0c root是我之前设置的管理员账号 xff0c 可能会有不同 su root 之后输入密码即可 2 然后进入目录修改配置信息 cd etc sysconfig network scripts 使用ll命令
  • Python+pycharm安装dlib库

    目录 下载dilb库方法一 xff1a 使用pip安装dlib库方法二 xff1a 使用pycharm进行安装导入dlib库成功 下载dilb库 写在前面 xff1a 尽量要用对应Python版本的库 已经安装好Python3 6 1和py
  • C++ 指向 Void 的指针

    C 43 43 指向 Void 的指针 在 C 43 43 中 xff0c 不能将一种数据类型的变量地址赋值给另一种数据类型的指针 指针是int类型 int ptr 变量为双精度类型 double d 61 9 0 错误 无法将 doubl
  • ESP8266-01STA模式的使用

    ESP8266 01STA模式的使用 xff1a 需要的原料 xff1a 1 XCOM V2 0 exe软件提取地址 2 USB TTL的下载器或者WiFi模块专用的下载器 3 手机网络助手 xff08 直接到手机浏览器下载即可 xff09

随机推荐

  • 《大数据》2015年第3期“研究”——大数据流式计算:应用特征和技术挑战

    大数据流式计算 xff1a 应用特征和技术挑战 孙大为 xff08 中国地质大学信息工程学院 北京 100083 xff09 摘要 xff1a 在大数据时代 xff0c 数据的时效性日益突出 xff0c 数据的流式特征更加明显 xff0c
  • 作者:孙大为,男,博士后,中国地质大学(北京)信息工程学院讲师。

    孙大为 xff0c 男 xff0c 博士后 xff0c 中国地质大学 xff08 北京 xff09 信息工程学院讲师 xff0c 目前主要从事大数据计算 云计算 可信计算等方面的研究工作
  • 人工智能在医学影像中的研究与应用

    人工智能在医学影像中的研究与应用 韩冬 李其花 蔡巍 夏雨薇 宁佳 黄峰 沈阳东软医疗系统有限公司 xff0c 辽宁 沈阳 110167 慧影医疗科技 xff08 北京 xff09 有限公司 xff0c 北京 100192 东软集团股份有限
  • 联邦学习攻击与防御综述

    联邦学习攻击与防御综述 吴建汉1 2 司世景1 王健宗1 肖京1 1 平安科技 xff08 深圳 xff09 有限公司 xff0c 广东 深圳 518063 2 中国科学技术大学 xff0c 安徽 合肥 230026 摘要 xff1a 随着
  • 如何将数组转换为JSON数据?

    如何将数组转换为JSON数据 xff1f 下面本篇就来给大家介绍一下将数组转换为JSON对象的方法 xff0c 希望对大家有所帮助 方法一 xff1a 使用Object assign Object assign 方法将枚举的所有属性的值从源
  • ROS:使用usb_cam调用UVC摄像头遇到的坑

    目录 坑一 xff1a 装包后直接启用 xff0c 图像是花屏 坑二 xff1a deprecated pixel format used make sure you did set range correctly 坑一 xff1a 装包后
  • 使用canal监控数据库

    1 canal简介 1 canal可以用来监控数据库数据的变化 xff0c 从而获得新增数据 xff0c 或者修改的数据 2 canal是应阿里巴巴存在杭州和美国的双机房部署 xff0c 存在跨机房同步的业务需求而提出的 3 阿里系公司开始
  • 坐标系

    坐标系 右手坐标系 xff1a 把右手拇指食指中指伸直并正交 xff0c 拇指X xff0c 食指Y xff0c 中指Z 一般无特殊说明 xff0c 都是右手坐标系 右手坐标系的旋转正方向 xff1a 从轴的正方向看向原点 xff0c 逆时
  • PID闭环控制算法解析(最透彻)

    PID闭环控制算法解析 PID简介 P Proportion xff08 比例 xff09 就是输入偏差乘以一个常数 I Integral xff08 积分 xff09 就是对输入偏差进行积分运算 D Derivative xff08 微分
  • 详细的Rostopic命令系列(包括消息发布等实例操作)

    目录 Rostopic命令系列 Rostopic list系列指令 Rostopic list Rostopic list v Rostopic list namespace Rostopic list b bagFile bag Rost
  • CMakelist.txt文件中常用部分最通俗易懂的解析(示例+解析)

    链接库是什么 xff1f 计算机中 xff0c 有些文件专门用于存储可以重复使用的代码块 xff0c 例如功能实用的函数或者类 xff0c 我们通常将它们称为库文件 xff0c 简称 库 xff08 Library xff09 myMath
  • ROS中库的创建与配置(代码示例+解析):自定义类类型在ROS中的使用

    前言 C 43 43 代码风格 编写C 43 43 代码时 xff0c 我们常常将 类 结构体的声明 定义和使用 相互剥离 xff0c 在ROS项目文件中我们也可以这样做 在ROS项目文件中声明 定义 使用自定义数据类型时 xff0c 我们
  • 详解ROS中动态参数调整与话题通信配合使用(原理+代码+示例)

    ROS中动态调整参数的原理 我们在现实中有个需求 xff1a 我们希望可以改变参数服务器中的参数用于调试机器人 xff0c 而且我们不希望每改一遍参数之后必须重启一次相关节点才可以生效 xff0c 这样耗时耗力太麻烦 我们期望的是 xff1
  • ROS中节点、话题、参数重命名以及全局、相对、私有命名空间(示例+代码)

    ROS中的命名空间 我们首先要了解一下路径的各个部分所代表的含义 xff1a 以话题为例 xff0c 三级路径 xff1a 以节点为例 xff0c 共有二级路径 xff1a 以参数为例 xff0c 共有三级路径 xff1a ROS中的命名空
  • 坐标变换最通俗易懂的解释(推到+图解)

    目录 坐标变换详解 坐标变换的作用 实现坐标变换所需的数据 位姿 坐标变换中旋转的实质 坐标变换中平移的实质 如何计算坐标系B各坐标轴在坐标系A上的投影 xff1f xff08 多坐标变换 xff09 如何实现坐标变换 xff1f 坐标变换
  • ubuntu最好用的划词翻译词典:有道词典和GoldenDict

    目录 1 安装有到词典 2 安装GoldenDict 3 GoldenDict的一些简单配置以及相关bug修改 用惯了Windows下的有道词典 xff0c 其划词翻译功能用起来令人极其舒适 xff5e Ubuntu系统中也有有道词典以及一
  • 彻底搞懂“旋转矩阵/欧拉角/四元数”,让你体会三维旋转之美

    目录 旋转矩阵 坐标变换的作用 实现坐标变换所需的数据 位姿变换 坐标变换中旋转的实质 坐标变换中平移的实质 如何计算坐标系B各坐标轴在坐标系A上的投影 xff1f xff08 多坐标变换 xff09 如何实现坐标变换 xff1f 欧拉角
  • ROS中tf2命令行调试工具详解(解析+代码示例+执行逻辑)

    目录 监控 坐标信息的发出者 的运行状态 坐标系转换数据的实时显示 创建坐标系相对位置关系的发布者 PDF格式的坐标信息生成工具 异常分析指令 项目结构 对文件进行分析 对launch文件进行检查 ROS中常用的Linux指令 Tf2命令行
  • 8086CPU中14个寄存器的详解

    CPU中的寄存器 在执行单元EU和总线接口单元BIU中一共有14个寄存器 xff0c 其中通用寄存器8个 标志寄存器FLAGS一个 控制寄存器5个 xff0c 其中指令队列虽然不是寄存器但也需要重点说明一下 xff1a 1 指令队列的工作原
  • 8086中的操作数

    指令中的操作数 指令的基本形式为 操作码 目标操作数 源操作数 xff0c 其中操作码代表了如何对数据进行操作 xff0c 目标操作数和源操作数分别代表了数据计算之后的归宿和数据的获取处 操作数本身是个数据 xff0c 但是数据的性质 xf