汇编 movs stos rep df 等指令的作用
MOVS 指令
MOVS 内存[EDI],内存[ESI]
- 将ESI地址中的值移动到EDI指向的地址中,每次移动X字节,同时 esi、edi增加x
MOVS BYTE PTR ES:[EDI],BYTE PTR ES:[ESI] == 简写:MOVSB
MOVS WORD PTR ES:[EDI],WORD PTR ES:[ESI]== 简写:MOVSW
MOVS DWORD PTR ES:[EDI],DWORD PTR ES:[ESI]== 简写:MOVSD
STOS 指令
STOS 内存[EDI]
- 将AL/AX/EAX的值存储到[EDI]内存中
STOS BYTE PTR ES:[EDI] 简写:STOSB
STOS WORD PTR ES:[EDI] 简写:STOSW
STOS DWORD PTR ES:[EDI] 简写:STOSD
REP
重复操作前缀。通常会加到 MOVS STOS等指令前面,表示重复执行后面的指令,重复的次数由ECX寄存器的值决定。
可以进行如下操作:
rep movsb //重复ecx次,每次将一个字节从esi到edi rep movsw //重复ecx次,每次将一个字从esi到edi rep movsd //重复ecx次,每次将两个字从esi到edi rep stosb //重复ecx次,每次将 al 传送到edi rep stosw //重复ecx次,每次将 ax 传送到edi rep stosd //重复ecx次,每次将 eax 传送到edi
DF标志
df标记寄存器可以做到esi和edi的增减
- DF=0 :esi和edi递增
- DF=1 : esi和edi递减
配合movs和stos的指令,可以同时指定传送后,esi和edi是往高处走还是低处走
本文来自博客园,作者:hugeYlh,转载请注明原文链接:https://www.cnblogs.com/helloylh/p/17209687.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)