知道LOOP 指令如何实现简单循环,并结合条件跳转完成复杂的流程控制。
MOV CX, 5 ; 设置循环计数为 5
LOOP_START:
; 循环体代码
LOOP LOOP_START ; 每次循环 CX 自动减1,直到 CX 为 0时不跳转
MOV AL, 5
CMP AL, 5
JE EQUAL_LABEL ; 若 AL 等于 5,则跳转到 EQUAL_LABEL
- **J****<font style="color:#DF2A3F;">N</font>****E/JNZ (Jump if Not Equal / Jump if Not Zero) !=**
* 当比较结果不等或零标志为 0 时跳转。
* 示例:
MOV AL, 6
CMP AL, 5
JNE NOT_EQUAL_LABEL ; 若 AL 不等于 5,则跳转
- **JL (Jump if Less) <**
* 针对<font style="color:#DF2A3F;">有符号数</font>比较,当第一个操作数小于第二个操作数时跳转。
* 示例:
MOV AX,10
MOV BX,55
CMP AX, BX
JL LESS_LABEL ; 若 AX < BX,则跳转
- **JL****<font style="color:#DF2A3F;">E</font>**** (Jump if Less or Equal) <=**
* 当小于或等于时跳转。
* 示例:
CMP AX, BX
JLE LESS_EQUAL_LABEL
- **<font style="color:#DF2A3F;">JG</font>**** / JNLE (Jump if Greater / Jump if Not Less or Equal) >**
* 针对<font style="color:#DF2A3F;">有符号数</font>比较,当第一个操作数大于第二个操作数时跳转。
- **JG****<font style="color:#DF2A3F;">E</font>**** (Jump if Greater or Equal) >=**
* 当大于或等于时跳转。
- **JB / JNAE (Jump if Below / Jump if Not Above or Equal) <**
* 针对<font style="color:#DF2A3F;">无符号数</font>比较,当第一个操作数低于(小于<)第二个操作数时跳转。
- **JA >**
* 针对<font style="color:#DF2A3F;">无符号数</font>比较,当第一个操作数大于(大于>)第二个操作数时跳转。
- **JAE 大于等于**
- **JBR 小于等于**
- **JMP 指令**
* **无条件跳转**:直接跳转到指定标签,不依赖标志位,常用于跳过某段代码或构建无限循环。
* 示例:
JMP LOOP_START ; 无条件跳转到 LOOP_START 标签
MOV AL, 7
CMP AL, 5 ; 比较 AL 和 5
JL LESS_LABEL ; 如果 AL < 5,跳转到 LESS_LABEL
; 如果没有跳转,则说明 AL >= 5
; 此处写 AL >= 5 的处理代码
JMP CONTINUE
LESS_LABEL:
; 处理 AL < 5 的情况
CONTINUE:
; 后续程序代码
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有