Intel 64/x86_64/IA-32/x86处理器 - 通用指令(6) - 字符串指令/输入输出指令
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) - 字符串指令/输入输出指令相关推荐
- Intel 64/x86_64/IA-32/x86处理器基本执行环境 (1) - 32位执行环境概述
Basic Execution Environment Overview IA-32处理器提供了一套完整的资源,在处理器上运行的程序/任务可以执行指令,存储代码,数据以及状态信息.这些资源(如下简要的 ...
- Intel 64/x86_64/IA-32/x86处理器 - 指令格式(7) - 80386/32位指令格式概述
32-bit Instruction Format 从80386的指令格式可以看出,32位指令的操作码可以是1个字节或者2个字节,还新引入了SIB(即BYTE4)字节.地址位移量和操作数宽度也都升级为 ...
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(1) - 数据传输指令
General-Purpose Instructions 通用指令执行基本的数据搬移,算术/逻辑计算,程序流控制,字符串操作等.这些指令被频繁地用于运行在IA-32与Intel 64架构的系统软件与应 ...
- Intel 64/x86_64/IA-32/x86处理器段寄存器 - 32位段寄存器/64位段寄存器
Segment Registers 本节主要讲述Intel处理器中的段寄存器,用于支持处理器的段式存储器管理机制.16位的8086/Intel286处理器有4个段寄存器CS/DS/SS/ES.32位的 ...
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(8) - 杂项指令 用户态扩展状态指令 随机数生成指令
Miscellaneous Instructions 杂项指令包括的功能有:载入有效地址,执行"误操作",以及侦测处理器标识信息等. 指令 描述 LEA 载入有效地址到目标寄存器 ...
- Intel 64/x86_64/IA-32/x86处理器 - 通用指令(3) - 逻辑指令/移位指令
Logical Instructions 逻辑指令执行基本的"与.或.非.异或"操作,操作数可以是字节,单字和双子值. 指令 描述 AND 对操作数执行按位逻辑"与&qu ...
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(1) - 概述/历史/新数据类型/XMM寄存器组
SSE Instructions SSE Overview & History Intel SSE技术的全称是Streaming SIMD Extension,中文译作流式单指令多数据指令扩展 ...
- Intel 64/x86_64/IA-32/x86处理器 - 指令格式(1) - 概述
x86 Instruction Introduction 指令用来指示处理器所要执行的操作,指令集就是某个处理器上可以执行的所有指令.通俗的说,指令可以有两种存在方式,一种是汇编程序员看到的汇编文本格 ...
- Intel 64/x86_64/IA-32/x86处理器 - 锁原子操作(2) - 总线封锁/缓存封锁
Bus Locking Intel 64和IA-32处理器提供了LOCK#信号,在某些关键的访存操作时会自动地激活assert这个信号,用于封锁系统总线或类似的链接.当这个输出信号被激活时,就会阻塞来 ...
最新文章
- python 模拟浏览器下载文件-python爬虫:使用Selenium模拟浏览器行为
- 在Visual Studio中使用任何C++编译器
- nyoj_111_分数加减法_201311281341
- matlab机器人轨迹规划仿真程序,基于MATLAB的六自由度机器人轨迹规划与仿真.pdf...
- 国外永久免费5G大容量网盘--SugarSync
- C++ isalpha、isalnum、islower、isupper用法
- 计算机回收站设置大小,电脑怎么设置回收站容量 电脑回收站的数据文件位置在哪...
- 2篇SCI二区认定优秀博士!57万安家费+100万房补,浙江高校!
- Android 点击屏幕空白处隐藏软键盘
- iphone备忘录删除怎么恢复?分享苹果数据找回办法
- [2019牛客多校训练第3场]Median
- java拆分list_Java 8 stream 流 拆分list
- 单服务器node.js和php性能测试
- leetcode: Jump Game--python
- 图文并茂详细教程之——用pixhawk飞控组装一台S500四轴无人机(下)(苍穹四轴)
- java贪吃蛇课程设计报告_java贪吃蛇课程设计报告().doc
- 中国安防服务运营探讨:视频监控运维服务发展趋势
- 亚信安全助手卸载方法
- Docker 如何查看容器IP地址
- 一文带你全面解析postman工具的使用(高级篇)
热门文章
- 经典神经网络 | 从Inception v1到Inception v4全解析
- 从零开始学Pytorch(十二)之凸优化
- 用python实现单例模式_Python单例模式的两种实现方式
- ReferenceError: XXX is not defined 错误及解决办法
- android 高质量游戏,你玩过几款?2013年度十大安卓热门游戏大盘点
- android分屏模式_浅谈 Android 7.0 多窗口分屏模式的实现
- android.os.log,android.os.Handler和java.util.logging.Handler之间的区别?
- php用空格分隔的字符串对比,探讨各种PHP字符串函数的总结分析
- 大一C语言和线性代数,有谁学过线性代数和C语言啊?
- linux java setting,setting java_home and path environmental variables in linux [duplicate]