String Instructions

字符串指令操作字节构成的串,用来在内存中将字符串搬来搬去。MOVS/CMPS/SCAS/LODS/STOS指令在执行完一次操作后,都会按照标志寄存器中的DF标志的指示自动地更新ESI/EDI寄存器;这样就可以与REP(重复指令前缀)连用,执行系列的字符串操作。

指令

描述

MOVS/MOVSB

搬移字符串/搬移字节字符串(将源操作数搬移到目标操作数)

MOVS/MOVSW

搬移字符串/搬移单字字符串

MOVS/MOVSD

搬移字符串/搬移双字字符串

CMPS/CMPSB

比较字符串/比较字节字符串(比较两个操作数,设置标志寄存器,下同)

CMPS/CMPSW

比较字符串/比较单字字符串

CMPS/CMPSD

比较字符串/比较双字字符串

SCAS/SCASB

扫描字符串/扫描字节字符串(比较AL/AX/EAX与ES:EDI/RDI,设置标志寄存器,下同)

SCAS/SCASW

扫描字符串/扫描单字字符串

SCAS/SCASD

扫描字符串/扫描双字字符串

LODS/LODSB

加载字符串/加载字节字符串(将DS:ESI加载到AL/AX/EAX中,下同)

LODS/LODSW

加载字符串/加载单字字符串

LODS/LODSD

加载字符串/加载双字字符串

STOS/STOSB

存储字符串/存储字节字符串(将AL/AX/EAX存储到ES:EDI中,下同)

STOS/STOSW

存储字符串/存储单字字符串

STOS/STOSD

存储字符串/存储双字字符串

REP

当ECX不为0时,重复执行(REP指令只能位于INS/OUTS,MOVS/LODS/STOS指令前)

REPE/REPZ

当ECX不为0且ZF=1时,重复执行

REPNE/REPNZ

当ECX不为0且ZF=0时,重复执行。

I/O Instructions

输入输出指令用于在处理器的I/O端口与寄存器/存储器之间搬移数据。

指令

描述

IN

从端口读数据(将指定端口的数据读入到AL/AX/EAX中)

OUT

向端口写数据(将AL/AX/EAX中的数据写入到指定端口)

INS/INSB

从端口读字节数据串(将指定端口的字节数据读入到ES:ED中,下同)

INS/INSW

从端口读单字数据串

INS/INSD

从端口读双字数据串

OUTS/OUTSB

向端口写字节数据串(将DS:ESI写入到指定端口)

OUTS/OUTSW

向端口写单字数据串

OUTS/OUTSD

向端口写双字数据串

Intel 64/x86_64/IA-32/x86处理器 - 通用指令(6) - 字符串指令/输入输出指令相关推荐

  1. Intel 64/x86_64/IA-32/x86处理器基本执行环境 (1) - 32位执行环境概述

    Basic Execution Environment Overview IA-32处理器提供了一套完整的资源,在处理器上运行的程序/任务可以执行指令,存储代码,数据以及状态信息.这些资源(如下简要的 ...

  2. Intel 64/x86_64/IA-32/x86处理器 - 指令格式(7) - 80386/32位指令格式概述

    32-bit Instruction Format 从80386的指令格式可以看出,32位指令的操作码可以是1个字节或者2个字节,还新引入了SIB(即BYTE4)字节.地址位移量和操作数宽度也都升级为 ...

  3. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(1) - 数据传输指令

    General-Purpose Instructions 通用指令执行基本的数据搬移,算术/逻辑计算,程序流控制,字符串操作等.这些指令被频繁地用于运行在IA-32与Intel 64架构的系统软件与应 ...

  4. Intel 64/x86_64/IA-32/x86处理器段寄存器 - 32位段寄存器/64位段寄存器

    Segment Registers 本节主要讲述Intel处理器中的段寄存器,用于支持处理器的段式存储器管理机制.16位的8086/Intel286处理器有4个段寄存器CS/DS/SS/ES.32位的 ...

  5. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(8) - 杂项指令 用户态扩展状态指令 随机数生成指令

    Miscellaneous Instructions 杂项指令包括的功能有:载入有效地址,执行"误操作",以及侦测处理器标识信息等. 指令 描述 LEA 载入有效地址到目标寄存器 ...

  6. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(3) - 逻辑指令/移位指令

    Logical Instructions 逻辑指令执行基本的"与.或.非.异或"操作,操作数可以是字节,单字和双子值. 指令 描述 AND 对操作数执行按位逻辑"与&qu ...

  7. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(1) - 概述/历史/新数据类型/XMM寄存器组

    SSE Instructions SSE Overview & History Intel SSE技术的全称是Streaming SIMD Extension,中文译作流式单指令多数据指令扩展 ...

  8. Intel 64/x86_64/IA-32/x86处理器 - 指令格式(1) - 概述

    x86 Instruction Introduction 指令用来指示处理器所要执行的操作,指令集就是某个处理器上可以执行的所有指令.通俗的说,指令可以有两种存在方式,一种是汇编程序员看到的汇编文本格 ...

  9. Intel 64/x86_64/IA-32/x86处理器 - 锁原子操作(2) - 总线封锁/缓存封锁

    Bus Locking Intel 64和IA-32处理器提供了LOCK#信号,在某些关键的访存操作时会自动地激活assert这个信号,用于封锁系统总线或类似的链接.当这个输出信号被激活时,就会阻塞来 ...

最新文章

  1. python 模拟浏览器下载文件-python爬虫:使用Selenium模拟浏览器行为
  2. 在Visual Studio中使用任何C++编译器
  3. nyoj_111_分数加减法_201311281341
  4. matlab机器人轨迹规划仿真程序,基于MATLAB的六自由度机器人轨迹规划与仿真.pdf...
  5. 国外永久免费5G大容量网盘--SugarSync
  6. C++ isalpha、isalnum、islower、isupper用法
  7. 计算机回收站设置大小,电脑怎么设置回收站容量 电脑回收站的数据文件位置在哪...
  8. 2篇SCI二区认定优秀博士!57万安家费+100万房补,浙江高校!
  9. Android 点击屏幕空白处隐藏软键盘
  10. iphone备忘录删除怎么恢复?分享苹果数据找回办法
  11. [2019牛客多校训练第3场]Median
  12. java拆分list_Java 8 stream 流 拆分list
  13. 单服务器node.js和php性能测试
  14. leetcode: Jump Game--python
  15. 图文并茂详细教程之——用pixhawk飞控组装一台S500四轴无人机(下)(苍穹四轴)
  16. java贪吃蛇课程设计报告_java贪吃蛇课程设计报告().doc
  17. 中国安防服务运营探讨:视频监控运维服务发展趋势
  18. 亚信安全助手卸载方法
  19. Docker 如何查看容器IP地址
  20. 一文带你全面解析postman工具的使用(高级篇)

热门文章

  1. 经典神经网络 | 从Inception v1到Inception v4全解析
  2. 从零开始学Pytorch(十二)之凸优化
  3. 用python实现单例模式_Python单例模式的两种实现方式
  4. ReferenceError: XXX is not defined 错误及解决办法
  5. android 高质量游戏,你玩过几款?2013年度十大安卓热门游戏大盘点
  6. android分屏模式_浅谈 Android 7.0 多窗口分屏模式的实现
  7. android.os.log,android.os.Handler和java.util.logging.Handler之间的区别?
  8. php用空格分隔的字符串对比,探讨各种PHP字符串函数的总结分析
  9. 大一C语言和线性代数,有谁学过线性代数和C语言啊?
  10. linux java setting,setting java_home and path environmental variables in linux [duplicate]