首页 > 汇编语言 > 汇编语言字符串和数组
阅读:224
汇编语言CMPSB、CMPSW和CMPSD指令:比较两个操作数
CMPSB、CMPSW 和 CMPSD 指令比较 ESI 指向的内存操作数与 EDI 指向的内存操作数:
CMPSB、CMPSW 和 CMPSD 可以使用重复前缀。方向标志位决定 ESI 和 EDI 的增加或减少。
【示例】比较双字,假设现在想用 CMPSD 比较两个双字。下例中,source 的值小于 target,因此 JA 指令不会跳转到标号 L1。
CMPSB | 比较字节 |
CMPSW | 比较字 |
CMPSD | 比较双字 |
CMPSB、CMPSW 和 CMPSD 可以使用重复前缀。方向标志位决定 ESI 和 EDI 的增加或减少。
【示例】比较双字,假设现在想用 CMPSD 比较两个双字。下例中,source 的值小于 target,因此 JA 指令不会跳转到标号 L1。
.data source DWORD 1234h target DWORD 5678h .code mov esi,OFFSET source mov edi,OFFSET target cmpsd ;比较双字 ja L1 ;若 source > target 则跳转比较多个双字时,清除方向标志位(正向),ECX 初始化为计数器,并给 CMPSD 添加重复前缀:
mov esi,OFFSET source mov edi,OFFSET target cld ;方向为正向 mov ecx,LENGTHOF source ;设置重复计数器 repe cmpsd ;相等则重复REPE 前缀重复比较操作,并自动增加 ESI 和 EDI,直到 ECX 等于 0,或者发现了一对不相等的双字。
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频