数据传送指令

news2024/10/23 13:23:45

文章目录

  • MOV
  • XCHG
  • PUSH和POP
  • IN和OUT
  • XLAT
  • LEA LDS LES
    • LEA
    • LDS
    • LES
  • LAHF SAHF
  • PUSHF POPF
  • 总结

MOV

MOV     dst,   src      ; dst <-- src
  • 可以进行8位或16位数据的传送
  • 源操作数可为立即数、寄存器、存储器操作数
  • 目的操作数不可为立即数,CS、IP寄存器
  • 两操作数必有一个寄存器,不允许mem←mem,mem←#im
  • 两操作数不能同为段寄存器,不允许seg←seg
  • 不允许seg←立即数,不能将立即数赋到段寄存器中
  • 源操作数与目的操作数类型要一致(位数相同)
    在这里插入图片描述

例如:
MOV AL [BP]
MOV WORD PTR[SI], 4501H
MOV DS, [2000H]
MOV [BX][SI], AX
MOV ES, AL;
MOV ES, CS;

XCHG

两个寄存器寄存器与存储单元之间(字或字节)的交换

XCHG  OPR1, OPR2  ; OPR1 <--> OPR2
  • 两操作数中必须有一个在寄存器中,不能同时为存储器操作数;
  • 操作数不能为段寄存器和立即数;
  • 源和目地操作数类型要一致(位数相同)。

例如:
XCHG AL, BL
XCHG [2200H], DX

PUSH和POP

具体堆栈操作请移步

  • PUSH指令
    PUSH r(寄存器)
    PUSH mem(存储单元)
    PUSH seg(段寄存器)
  • POP指令
    POP r(寄存器)
    POP mem(存储单元)
    POP seg(段寄存器)
  • 堆栈操作总是按字进行,不允许对字节操作
  • 不能从栈顶弹出一个字给CS寄存器,但是可以给IP寄存器
  • 堆栈指针为SS:SP,SP永远指向栈顶
  • SP自动进行增减量(-2,+2)
  • 有一个操作数是隐含的,该操作数就是(SP)指示的栈顶存储单元
  • 进行堆栈操作时,遵循“先进后出”原则

例如:
PUSH AX
POP AX
PUSH [BX][DI]
POP [2000H]
POP AL; 错

IN和OUT

请看这里
IO端口寻址

XLAT

查表转换指令,换码指令

假设以BX为偏移地址的内存中有一个表,那么AL就是表的索引,XLAT根据表的索引替换AL的值

在这里插入图片描述
这个指令没有参数,或者参数是BX的表地址

XLAT
XLAT TABLE

LEA LDS LES

  • 有效地址送寄存器:LEA(Load effect address)
  • 指针送寄存器和DS的指令:LDS
  • 指针送寄存器和ES的指令:LES
  • 要求源操作数必须是一个存储器操作数,寻址方式可以是24中任何一种
  • 目的操作数r必须是一个16位的通用寄存器,而不能使用段寄存器

LEA

将存储器操作数的有效地址(EA)送至指定的16位通用寄存器

LEA r,src;    r = src的EA

LEA BX, [BP+SI] ; BX = SS << 4 + BP + SI
LEA SP, [0502H] ; SP = DS << 4 + 0502H

就是将src的EA算出来,赋给r
r = &src

LDS

LDS r, src ; r = src地址中的值  DS= (src+2)地址中的值

r = *&src
DS = *(&src+2)
一次改变两个寄存器的值(SI和DS)低地址的2字节分给SI,高地址的两字节分给DS
在这里插入图片描述

LES

LES,同上,但DS改为ES

LAHF SAHF

读取标志指令:LAHF(Load AH from flags)
设置标志指令:SAHF(store AH into flags)
在这里插入图片描述
在这里插入图片描述
只能是AH寄存器,所以没有操作数

PUSHF POPF

  • 标志寄存器的入栈指令:PUSHF
  • 标志寄存器的出栈指令:POPF

总结

  • 除SAHF和POPF这两条指令外,其余所有指令均不影响标志位。
  • 除XCHG之外,都是单向的数据传输

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2211546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hi3244 应用指导

Hi3244 是一款DIP8封装高性能、多模式工作的原边控制功率开关。Hi3244内高精度的恒流、恒压控制机制结合完备的保护功能&#xff0c;使其适用于小功率离线式电源应用中。在恒压输出模式中&#xff0c;Hi3244 采用多模式工作方式&#xff0c;即调幅控制&#xff08;AM&#xff0…

LLM - 配置 ModelScope SWIFT 环境与 Qwen2-VL 模型推理 教程 (1)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142827217 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 SWIFT …

AI 工具大比拼:ChatGPT 与豆包的魅力与未来展望

&#x1f9d1; 博主简介&#xff1a;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编程&#xff0c;…

C++的类和动态内存分配(深拷贝与浅拷贝)并实现自己的string类

首先&#xff0c;我们先写一个并不完美的类&#xff1a; #include<iostream> #include<cstring> using namespace std;class Mystring{private:char *p;int len;static int num;friend ostream& operator<<(ostream& os, const Mystring& c);pu…

QT开发--多线程

第十四章 多线程 QThread 是 Qt 中实现多线程编程的核心类&#xff0c;提供跨平台线程管理。 使用 QThread 有两种方法&#xff1a; 1、 继承 QThread&#xff1a;重写 run() 方法&#xff0c;实现线程的具体操作。Qt4.8 之前较常用。 2、 使用 QObject 和 moveToThread()&…

2024-10-13 NO.1 Quest3 激活教程

文章目录 1 下载 Occlus 助手2 打开 quest 热点3 Quest3 连接 wifi4 详细文档5 参考教程 1 下载 Occlus 助手 ​ 网址&#xff1a;https://ochelper.xlemon.cn/home.html。 2 打开 quest 热点 ​ 下载 Occlus 助手后&#xff0c;双击 exe 文件打开。 ​ 过程中按照程序提示执…

各类排序详解

前言 本篇博客将为大家介绍各类排序算法&#xff0c;大家知道&#xff0c;在我们生活中&#xff0c;排序其实是一件很重要的事&#xff0c;我们在网上购物&#xff0c;需要根据不同的需求进行排序&#xff0c;异或是我们在高考完报志愿时&#xff0c;需要看看院校的排名&#…

【动手学深度学习】6.2 图像卷积(个人向笔记)

1. 互相关运算 严格来说&#xff0c;卷积层是一个错误的叫法&#xff0c;因为它本质上是互相关运算而不是卷积运算。我们暂时忽略通道看看二维图像数据和隐藏表示。那么输出大小可以表示为 我们自己实现一个二维互相关运算 2. 卷积层 卷积层中有两个参数&#xff1a;卷积核权…

Medieval Kingdom UI 中世纪王国AAA级UI游戏界面

这款中世纪王国风格的大型素材包包含大量绘图、图标、用户界面(UI)元素、完整的世界地图和文明图标。它将助您打造一款游戏,或为您的3D游戏增添亮点。您还可以为对话制作国王的动画,为4K游戏创建独特的面板和窗口。提供两种独特皮肤:经典(冷色调)和白金(暖色调)。 素…

国家基本药物目录数据库查询3种方法(2018、2012、2009年版)

国家基本药物目录是一份由国家卫生健康委员会等相关部门制定的药品清单&#xff0c;旨在满足国家公共卫生需求&#xff0c;保障基本医疗服务。该目录包括了多种药品&#xff0c;覆盖了不同的疾病治疗领域&#xff0c;如抗生素、心血管药物、神经系统药物、抗肿瘤药物、维生素和…

STM32 -- USB CDC 虚拟串口通信

本篇操作: 通过CubeMX Keil&#xff0c;配置STM32作为USB设备端&#xff0c;与电脑上位机进行通信&#xff08;CDC&#xff09;&#xff1b;通用带USB功能的 STM32 芯片 &#xff08;如F1、F4等&#xff0c;系统时钟配置不同&#xff0c;代码通用&#xff09;。 目录 一、 S…

[论文精读]Active and Semi-Supervised Graph Neural Networks for Graph Classification

论文网址&#xff1a;Active and Semi-Supervised Graph Neural Networks for Graph Classification | IEEE Journals & Magazine | IEEE Xplore英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若…

大数据-168 Elasticsearch 单机云服务器部署运行 详细流程

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

PyQt: QMessageBox Duplication

在使用 PyQt 的 QMessageBox 时&#xff0c;如果你遇到 消息框重复显示 或 QMessageBox 重复实例化 的问题&#xff0c;通常是因为消息框没有正确管理或关闭&#xff0c;或者消息框的创建和显示逻辑中存在重复调用。以下是一些常见原因和解决方案。 1、问题背景 在 PyQt 中使用…

无心剑七绝《泊院雕楼》

七绝泊院雕楼 清歌咏尽桂花香 泊院雕楼醉夕阳 逸兴无端飞万里 幽情宛转忆潇湘 2024年10月13日 平水韵七阳平韵 这首七绝《泊院雕楼》以清新脱俗的语言&#xff0c;描绘了一幅宁静致远的画面。 首句“清歌咏尽桂花香”&#xff0c;以“清歌”起兴&#xff0c;形象地描绘了桂花香…

C++——类和对象(三)

一.赋值运算符 1.运算符重载 (1) 运算符重载是具有特殊名字的函数&#xff0c;他的名字是由operator和后面要定义的运算符共同构成。和其他函数一样&#xff0c;它也具有其返回类型和参数列表以及函数体。 (2) 重载运算符函数的参数个数和该运算符作用的运算对象数量一样多。…

React.createRef(),React.forwardRef(),forwardRef()结合next.js的link进行路由跳转

码云https://gitee.com/skyvilm/react-next.js 1.React.createRef() 作用&#xff1a;获取dom元素 使用 import React,{Component} from react export default class Index extends Componen{ constructor(props){ super(props) this.myrefReact.createRef(); //创建节点 } c…

如何批量从sql语句中提取表名

简介 使用的卢易表 的提取表名功能&#xff0c;可以从sql语句中批量提取表名。采用纯文本sql语法分析&#xff0c;无需连接数据库&#xff0c;支持从含非sql语句的文件文件中提取&#xff0c;支持各类数据库sql语法。 特点 快&#xff1a;从成百个文件中提取上千个表名只需1…

集成方案 | 借助 Microsoft Copilot for Sales 与 Docusign,加速销售流程!

加速协议信息提取&#xff0c;随时优化邮件内容~ 在当今信息爆炸的时代&#xff0c;销售人员掌握着丰富的数据资源。他们能够通过 CRM 平台、电子邮件、合同库以及其他多种记录系统&#xff0c;随时检索特定个人或组织的关键信息。这些数据对于销售沟通至关重要。然而&#x…

【端到端】CVPR 2023最佳论文:UniAD解读

作者&#xff1a;知乎一根呆毛授权发布 传统的端到端网络是用多个小model串起来&#xff0c;但这会有误差累积的问题&#xff0c;因此我们提出了UniAD&#xff0c;一个综合框架&#xff0c;把所有任务整合到一个网络。整一个网络都是为planner而进行设计的。 Introduction a传…