汇编语言:基于x86处理器考前笔记 | 第九章 字符串和数组

汇编语言第九章笔记

一、字符串基本指令

  1. 指令类型
    • 数据移动指令 :MOVSB、MOVSW和MOVSD,用于将由<u>ESI</u>++寻址的内存地址处的数据复制到++ <u>EDI</u>++寻址的内存++ 地址处。例如在代码中,<u>rep</u> movsd可实现从源地址到目的地址的双字数据复制,++其中++ <u>rep</u>++会按照++ <u>ECX</u>++的值重复执行++ <u>MOVSD</u>++指令++ ,且每次执行MOVSD时ESI和EDI会++自动++ 根据数据类型(字节、字或双字)++进行相应偏移++,如双字时偏移量为 4 。
    • 比较指令 :CMPSB、CMPSW和CMPSD,比较由ESI和EDI寻址的两个内存地址处的值,其隐含操作为用左边操作数减去右边操作数,++可结合无符号数跳转指令++进行跳转操作。
    • 扫描指令 :SCASB、SCASW和SCASD,分别将AL、AX或<u>EAX</u>++中的值同++ <u>EDI</u>++寻址的目标内存++ 中的字节、字或者双字++比较++ ,适用于在长字符串或数组中查找匹配,除REP循环外,还可++使用++ <u>REPNE</u>++,其循环终止条件为++ <u>ECX = 0</u>或者++找到了匹配的内容++。
    • 存储指令 :STOSB、STOSW和STOSD,分别将AL、AX或<u>EAX</u>++中的值存储到++ <u>EDI</u>++寻址的目标内存单元++中,常用于填充字符串或数组。
    • 装入指令 :LODSB、LODSW和LODSD,++从++ <u>ESI</u>++寻址的内存单元中将对应尺寸的内容复制到++ <u>AL</u>、AX或EAX寄存器中。
  2. 串操作指令特点
    • 源串指针为ESI,目的串指针为EDI,串长度在ECX中,指针与计数器自动修改,加减由DF确定(CLD清除方向标志位使ESI和EDI增加,STD设置方向标志位使ESI和EDI减小),修改长度根据B = BYTE、W = WORD、D = DWORD。
    • 允许源和目的操作数都是存储单元。执行串操作之前,需先设置源串首地址(末地址)到ESI、目的串首地址(末地址)到EDI、串长度到ECX以及建立方向标志(CLD或STD)。执行串操作指令后,ESI和EDI可能已经越界或超过目标。

二、练习与考试题型

  1. 练习:P282 的 9.2.5 练习题可用于巩固本章知识。
  2. 考试题型
    • 单选题:10 题,每题 2 分,共 20 分。
    • 判断题:10 题,每题 1 分,共 10 分。
    • 简答题:10 题,每题 4 分,共 40 分。
    • 编程题:10 题,每题 3 分,共 30 分。

哎呀,我懒得改一些格式了,更好的阅读体验请移步阅读语雀笔记

https://www.yuque.com/sparkle-y0ppd/rcnnqw/icmyqhv90prew9hr?singleDoc# 《第一章 基本概念、第二章》

https://www.yuque.com/sparkle-y0ppd/rcnnqw/lo9niaw8ot80iaxm?singleDoc# 《第三章 汇编语言基础》

https://www.yuque.com/sparkle-y0ppd/rcnnqw/rmqhydppga6bvz9o?singleDoc# 《第四章 数据传送、寻址和算术运算》

https://www.yuque.com/sparkle-y0ppd/rcnnqw/enqzaec9i4fcv2bb?singleDoc# 《第五章 过程》

https://www.yuque.com/sparkle-y0ppd/rcnnqw/pyg9xlpc9m4belek?singleDoc# 《第六章 条件处理》

https://www.yuque.com/sparkle-y0ppd/rcnnqw/lfz1ly6np0e90l64?singleDoc# 《第七章 整数运算》

https://www.yuque.com/sparkle-y0ppd/rcnnqw/zd9as96ybgvfk7qd?singleDoc# 《第八章 高级过程》

https://www.yuque.com/sparkle-y0ppd/rcnnqw/nekgot3vrg9codo7?singleDoc# 《第九章 字符串和数组》

相关推荐
qq_284274056 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
qq_284274057 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Titan20248 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
深圳老胡9 小时前
STM32CubeMX 生成 CMake 工程,用 VSCode 编译与调试的完整流程
笔记·stm32·单片机·代码规范
坤坤子吖9 小时前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
乐橙开放平台10 小时前
智慧连锁客流检测和离岗检测怎么对接
大数据·人工智能·笔记·物联网·自动化·音视频·智能家居
零基础12310 小时前
FinalShell 使用教程:从安装到高效运维
运维·经验分享·笔记·finalshell
ACP广源盛1392462567310 小时前
Type‑C 扩展坞方案选型笔记|国产 DP1.4 转 HDMI2.0 桥接芯片 GSV2201S @ACP评估
c语言·开发语言·笔记·硬件架构·硬件工程·国产芯片
敲个大西瓜11 小时前
langchain笔记(一)
redis·笔记·langchain
带金箍的至尊宝11 小时前
系统架构设计师笔记 05:第2章硬件与软件基础,冯诺依曼结构怎么考
数据库·笔记·系统架构