汇编JCC条件跳转指令记忆
汇编中的条件跳转指令(JCC
):
1. 理解标志寄存器
JCC
指令依赖于标志寄存器(FLAGS)的状态,常见的标志位有:
-
ZF(Zero Flag):结果为0时置1。
-
CF(Carry Flag):无符号数溢出时置1。
-
SF(Sign Flag):结果为负时置1。
-
OF(Overflow Flag):有符号数溢出时置1。
-
PF(Parity Flag):结果中1的个数为偶数时置1。
理解这些标志位的含义是记忆 JCC
的基础。
2. 分类记忆
将 JCC
指令分为几类,每类对应一种比较场景:
(1) 无符号数比较
-
JA/JNBE:高于/不低于等于时跳转(
A
= Above)。 -
JAE/JNB:高于等于/不低于时跳转(
AE
= Above or Equal)。 -
JB/JNAE:低于/不高于等于时跳转(
B
= Below)。 -
JBE/JNA:低于等于/不高于时跳转(
BE
= Below or Equal)。
记忆技巧:
-
A
表示“高于”,B
表示“低于”。 -
E
表示“等于”(Equal)。 -
N
表示“不”(Not)。
(2) 有符号数比较
-
JG/JNLE:大于/不小于等于时跳转(
G
= Greater)。 -
JGE/JNL:大于等于/不小于时跳转(
GE
= Greater or Equal)。 -
JL/JNGE:小于/不大于等于时跳转(
L
= Less)。 -
JLE/JNG:小于等于/不大于时跳转(
LE
= Less or Equal)。
记忆技巧:
-
G
表示“大于”,L
表示“小于”。 -
E
表示“等于”。 -
N
表示“不”。
(3) 零值判断
-
JE/JZ:等于/为零时跳转(
E
= Equal,Z
= Zero)。 -
JNE/JNZ:不等于/不为零时跳转(
NE
= Not Equal,NZ
= Not Zero)。
记忆技巧:
-
E
和Z
都表示“等于”或“为零”。 -
NE
和NZ
表示“不等于”或“不为零”。
(4) 标志位判断
-
JC:进位标志为1时跳转(
C
= Carry)。 -
JNC:进位标志为0时跳转(
NC
= Not Carry)。 -
JO:溢出标志为1时跳转(
O
= Overflow)。 -
JNO:溢出标志为0时跳转(
NO
= Not Overflow)。 -
JS:符号标志为1时跳转(
S
= Sign)。 -
JNS:符号标志为0时跳转(
NS
= Not Sign)。 -
JP/JPE:奇偶标志为1时跳转(
P
= Parity,PE
= Parity Even)。 -
JNP/JPO:奇偶标志为0时跳转(
NP
= Not Parity,PO
= Parity Odd)。
记忆技巧:
-
标志位的缩写直接对应指令名称(如
C
= Carry,O
= Overflow)。 -
N
表示“不”。
3. 总结规律
-
字母含义:
-
A
/B
:无符号数比较(Above/Below)。 -
G
/L
:有符号数比较(Greater/Less)。 -
E
:等于(Equal)。 -
Z
:为零(Zero)。 -
C
:进位(Carry)。 -
O
:溢出(Overflow)。 -
S
:符号(Sign)。 -
P
:奇偶(Parity)。
-
-
前缀:
-
J
:跳转(Jump)。 -
N
:不(Not)。
-
4. 练习与应用
-
编写简单的汇编代码,使用不同的
JCC
指令,观察其行为。 -
通过调试器(如 GDB)查看标志寄存器的变化,加深理解。
5. 记忆口诀
-
无符号:
A
(Above)高,B
(Below)低,E
等于别忘记。 -
有符号:
G
(Greater)大,L
(Less)小,E
等于要记牢。 -
零值:
E
等于Z
为零,NE
不等NZ
非零。 -
标志位:
C
进位O
溢出,S
符号P
奇偶。
相关文章:
汇编JCC条件跳转指令记忆
汇编中的条件跳转指令(JCC): 1. 理解标志寄存器 JCC 指令依赖于标志寄存器(FLAGS)的状态,常见的标志位有: ZF(Zero Flag):结果为0时置1。 CF(Ca…...

HTML排版标签、语义化标签、块级和行内元素详解
目录 前言 一、HTML中的排版标签 1. 文本相关标签 1.1 标题标签 ~ 1.2 段落标签 1.3 强调和加粗 1.4 换行标签 1.5 水平线标签 二、HTML中的语义化标签 2.1 语义化标签概述 2.2 常见的语义化标签 示例(核心代码部分): 三、HTM…...

【回溯+剪枝】单词搜索,你能用递归解决吗?
文章目录 79. 单词搜索解题思路:回溯(深搜) 剪枝 79. 单词搜索 79. 单词搜索 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 …...
《深度揭秘LDA:开启人工智能降维与分类优化的大门》
在当今人工智能蓬勃发展的时代,数据成为了驱动技术进步的核心要素。随着数据采集和存储技术的飞速发展,我们所面临的数据量不仅日益庞大,其维度也愈发复杂。高维数据虽然蕴含着丰富的信息,但却给机器学习算法带来了一系列严峻的挑…...

Linux(CentOS)安装 MySQL
CentOS版本:CentOS 7 三种安装方式: 一、通过 yum 安装,最简单,一键安装,全程无忧。 二、通过 rpm 包安装,需具备基础概念及常规操作。 三、通过 gz 包安装,需具备配置相关操作。 --------…...

C++ 使用CURL开源库实现Http/Https的get/post请求进行字串和文件传输
CURL开源库介绍 CURL 是一个功能强大的开源库,用于在各种平台上进行网络数据传输。它支持众多的网络协议,像 HTTP、HTTPS、FTP、SMTP 等,能让开发者方便地在程序里实现与远程服务器的通信。 CURL 可以在 Windows、Linux、macOS 等多种操作系…...

面试题-SpringCloud的启动流程
关键词 prepareEnvironmentBootstrapApplicationListenerBootStrap Context(启动应用上下文)Environment中bootstrap属性 面试回答 引入SpringCloud相关组件后,均会引入一个spring-cloud-context的依赖包,这个项目的META-INF/s…...

MySQL基础知识
目录 一.什么是MySQL 二.分布式系统中的身份转换 三.MySQL是如何存储数据的 四.什么是数据库的命令 一.什么是MySQL MySQL是一个“客户端(client) - 服务器(server)”结构的软件(数据库软件)。 客户端&am…...

nas-群晖docker查询注册表失败解决办法(平替:使用SSH命令拉取ddns-go)
目录 前言必读 一、遇到问题 二、操作步骤 (一)打开群晖系统的SSH服务? (二)Windows电脑本地下载安装putty? 输入登录账号密码 开启root权限 例子:使用命令行下载ddns-go? 前言必读 读者手册(必…...
GSMA SGP.31 eSIM IoT 架构与需求笔记
GSMA SGP.31 eSIM IoT 架构与需求笔记 (版本 1.2,2024 年 4 月 26 日) 一、 概述 1. 文档目的: 本文件旨在为网络受限和/或用户界面 (UI) 受限的物联网 (IoT) 设备中的嵌入式通用集成电路卡 (eUICC) 提供远程配置架构和需求规范。 2. 主要内容&#…...
sql版本序列号
SQL Server 2019 Enterprise密钥:HMWJ3-KY3J2-NMVD7-KG4JR-X2G8G SQL Server 2019 Enterprise Core密钥:2C9JR-K3RNG-QD4M4-JQ2HR-8468J SQL Server 2019 Standard密钥:PMBDC-FXVM3-T777P-N4FY8-PKFF4 SQL Server 2019 Web密钥:33…...
vue2-nextTick
这里是引用 vue2-nextTick 1. 什么是nextTick 先来看官方定义 在下次DOM更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的DOM云里雾里,啥意思呢,其实本质就是事件循环、同步和异步的问题不懂事件循环相关问题的…...

【其他专题】如何在线将PNG转ICO图标
在我们编程打包成exe时,可能需要一些图标文件。但往往我们下载的图标文件是.png或是其他格式的,是不能用于做图标文件的,因为图标文件往往是.ico文件。 比如下图所示的.png文件,我们怎么快速的将它转为ico文件呢? 首先…...

2019_AutoInt
AutoInt:通过自注意神经网络进行自动特征交互学习 创新点复现论文0摘要1介绍2相关工作2.1点击率预测2.2学习特征交互2.3注意力和残差网络 3问题定义4自动特征交互学习4.1概述4.2输入层4.3嵌入层4.4交互层4.5输出层 4.6训练4.7 AutoInt分析 5实验5.1实验装置5.2定量结…...

HAL库 Systick定时器 基于STM32F103EZT6 野火霸道,可做参考
目录 1.时钟选择(这里选择高速外部时钟) 编辑 2.调试模式和时基源选择: 3.LED的GPIO配置 这里用板子的红灯PB5 4.工程配置 5.1ms的systick中断实现led闪烁 源码: 6.修改systick的中断频率 7.systick定时原理 SysTick 定时器的工作原理 中断触发机制 HAL_SYSTICK_Co…...
使用 Postman 进行 API 测试:从入门到精通
使用 Postman 进行 API 测试:从入门到精通 使用 Postman 进行 API 测试:从入门到精通一、什么是 API 测试?二、Postman 简介三、环境搭建四、API 测试流程1. 收集 API 文档2. 发送基本请求示例:发送 GET 请求示例代码(…...

K8s 分布式存储后端(K8s Distributed Storage Backend)
K8s 分布式存储后端 在 K8s 中实现分布式存储后端对于管理跨集群的持久数据、确保高可用性、可扩展性和可靠性至关重要。在 K8s 环境中,应用程序通常被容器化并跨多个节点部署。虽然 K8s 可以有效处理无状态应用程序,但有状态应用程序需要持久存储来维护…...

基于docker搭建Kafka集群,使用KRaft方式搭建,摒弃Zookeeper
KAFKA基于docker使用KRaft进行集群搭建 环境:已成功搭建kafka服务 可点击链接跳转至安装kafka-3.8.0版本 并启用SASL认证 教程 使用基于Zookeeper方式搭建集群教程 kafka-3.8.0版本 并启用SASL认证 教程 搭建kafka-ui可视化工具 192.168.2.91 192.168.2.92 192…...
Centos7 安装 RabbitMQ与Erlang
1、下载erlang和rabbitmq wget https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.4.5/erlang-23.3.4.5-1.el7.x86_64.rpmwget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.16/rabbitmq-server-3.9.16-1.el7.noarch.rpm2、安装erlang…...
mybatis-plus的分页查询简单使用
引入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.5</version></dependency>在yml中配置启动mybatis-plus插件 mybatis-plus:configuration:#…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...

Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...

MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...

【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...