HoRain云小助手个人主页 个人专栏: 《Linux 系列教程》《c语言教程》⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。专栏介绍专栏名称专栏介绍《C语言》本专栏主要撰写C干货内容和编程技巧让大家从底层了解C把更多的知识由抽象到简单通俗易懂。《网络协议》本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘一起解密网络协议在运行中协议的基本运行机制《docker容器精解篇》全面深入解析 docker 容器从基础到进阶涵盖原理、操作、实践案例助您精通 docker。《linux系列》本专栏主要撰写Linux干货内容从基础到进阶知识由抽象到简单通俗易懂帮你从新手小白到扫地僧。《python 系列》本专栏着重撰写Python相关的干货内容与编程技巧助力大家从底层去认识Python将更多复杂的知识由抽象转化为简单易懂的内容。《试题库》本专栏主要是发布一些考试和练习题库涵盖软考、HCIE、HRCE、CCNA等目录⛳️ 推荐专栏介绍一、核心寄存器必须记住二、方向标志 DF非常关键三、常用字符串指令1️⃣ MOVSB / MOVSW串传送2️⃣ LODSB / STOSB3️⃣ CMPSB串比较4️⃣ SCASB扫描字符四、经典示例✅ 字符串复制strcpy✅ 字符串长度strlen✅ 字符串反转简单版五、DOS 输出字符串INT 21H六、常见坑 ⚠️七、如果你需要下面给你一个偏实战、不啰嗦的汇编「字符串处理」速查笔记以x8616 位 DOS / 8086​ 为主这是教材和考试最常见的模型如果你用的是x86‑64 LinuxNASM/ATT我也可以单独展开。一、核心寄存器必须记住寄存器作用SI源串指针Source IndexDI目的串指针Destination IndexCX计数器字符串长度AX临时 / 返回值FLAGS影响ZF、DF方向标志字符串指令默认操作内存DS:SI → 源 ES:DI → 目的二、方向标志 DF非常关键CLD ; DF 0地址递增常用 STD ; DF 1地址递减三、常用字符串指令1️⃣ MOVSB / MOVSW串传送CLD MOV CX, 10 REP MOVSB含义for i in 0..CX-1: ES:DI DS:SI SI, DI✅ 常用于字符串复制2️⃣ LODSB / STOSB指令功能LODSBAL ← DS:SISTOSBES:DI ← AL示例把字符串转大写LEA SI, str LEA DI, buf MOV CX, len next: LODSB CMP AL, a JB skip CMP AL, z JA skip SUB AL, 20h skip: STOSB LOOP next3️⃣ CMPSB串比较CLD MOV CX, 5 REPE CMPSB结果看ZFZF1→ 相等ZF0→ 不相等✅ 常用于strcmp4️⃣ SCASB扫描字符查找字符AMOV AL, A LEA DI, str MOV CX, len REPNE SCASB JE found✅ 类似strchr四、经典示例✅ 字符串复制strcpy; DS:SI → 源 ; ES:DI → 目标 ; CX 长度 CLD REP MOVSB✅ 字符串长度strlenLEA DI, str XOR CX, CX count: MOV AL, [DI] CMP AL, $ ; 结束符 JE done INC DI INC CX JMP count done: ; CX 长度✅ 字符串反转简单版LEA SI, str LEA DI, str ADD DI, len-1 reverse: MOV AL, [SI] XCHG AL, [DI] MOV [SI], AL INC SI DEC DI CMP SI, DI JB reverse五、DOS 输出字符串INT 21HMOV AH, 09h LEA DX, msg INT 21h⚠️ 字符串必须以$​ 结尾DOS 特性六、常见坑 ⚠️❌ 忘了CLD❌ 没设置ES段寄存器❌CX没初始化就REP❌ 字符串越界❌ 混淆LODSB / STOSB方向七、如果你需要我可以继续给你✅x86‑64 LinuxNASM字符串处理✅ATT 语法GCC 内联汇编✅考试常考题模板✅完整可运行程序DOSBox / Linux直接告诉我你现在用的环境 要做的操作复制 / 比较 / 查找 / 统计字符。❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧