指令系统3(算数运算指令)
一.加法指令(ADD):
用于执行 16 位或 32 位的加法运算。
- 指令格式及功能:
ADD Rd, Rm
:将寄存器Rd
和Rm
的值相加,结果存回Rd
,即Rd = Rd + Rm
。ADD Rd, Rn, Rm
:把寄存器Rn
和Rm
的值相加,结果存入Rd
,Rd = Rn + Rm
。ADD Rd, #imm
:imm
为 8 位或 16 位立即数,将Rd
的值与立即数相加,Rd = Rd + imm
。例如ADD R0, #0x12
,执行后R0 = R0 + 0x12
。ADD.W Rd, Rn, Rm
:显式指定为 32 位指令,Rd = Rn + Rm
。
- 标志位影响:16 位加法会自动更新 APSR(应用程序状态寄存器)中的标志位;使用
W
指定 32 位指令时,通过S
后缀控制对 APSR 的更新,如ADD.W R0, R1, R2
不更新标志位,ADDS.W R0, R1, R2
更新标志位。
二.带进位加法指令(ADC):
进行 16 位或 32 位带进位的加法运算。
- 指令格式及功能:
ADC Rd, Rn
:将Rd
、Rn
的值与进位标志C
相加,结果存回Rd
,即Rd = Rd + Rn + C
。ADC Rd, #imm
:imm
为 12 位立即数,Rd = Rd + imm + C
。ADC Rd, Rn, Rm
:Rd = Rn + Rm + C
。例如ADC.W R0, R1, R2
,执行R0 = R1 + R2 + C
。
- 标志位影响:与 ADD 指令类似,
ADC.W R0, R1, R2
不更新标志位,ADCS.W R0, R1, R2
更新标志位。
三.64 位加法举例:
- 计算两个 64 位数的和,假设
R0
、R1
为被加数,R2
、R3
为加数。- 方法一(16位):
MOV R0, #1 LDR R1, =0X80000001 MOV R2, #2 LDR R3, =0XFFFF0001 ADD R1, R3 ADC R0, R2
- 方法二(32位):
MOV R0, #1 LDR R1, =0X80000001 MOV R2, #2 LDR R3, =0XFFFF0001 ADDS.W R1, R1, R3 ADC.W R0, R0, R2
- 运行结果:
R1 = 0X7FFF0002
,R0 = 0X00000003
。
- 方法一(16位):
四.减法指令(SUB):
- 实现 16 位或 32 位的减法运算。
- 指令格式及功能:
SUB Rd, Rn
:从Rd
中减去Rn
的值,结果存回Rd
,即Rd = Rd - Rn
。SUB Rd, #imm
:imm
为 8 位或 16 位,Rd = Rd - imm
。例如SUB R0, #0xf1
,执行后R0 = R0 - 0xf1
。SUB Rd, Rn, Rm
:用Rn
减去Rm
的值,结果存入Rd
,Rd = Rn - Rm
。SUB.W Rd, Rn, Rm
:32 位减法指令,Rd = Rn - Rm
。
- 标志位影响:与 ADD 指令类似,
SUB.W R0, R1, R2
不更新标志位,SUBS.W R0, R1, R2
更新标志位。
- 指令格式及功能:
五.带借位减法指令(SBC):
- 执行 16 位或 32 位带借位的减法运算。
- 指令格式及功能:
SBC Rd, Rn
:Rd = Rd - Rn - (~C)
,其中~C
表示进位标志C
的取反。SBC Rd, #imm
:imm
为 8 位或 16 位,Rd = Rd - imm - (~C)
。SBC Rd, Rn, Rm
:Rd = Rn - Rm - (~C)
。例如SBC.W R0, R1, R2
,R0 = R1 - R2 - (~C)
。
- 标志位影响:与 ADD 指令类似,
SBC.W R0, R1, R2
不更新标志位,SBCS.W R0, R1, R2
更新标志位。
- 指令格式及功能:
六.逆向减法指令(RSB):
- 指令格式及功能:
RSB.W Rd, Rn, #imm12
:用 12 位立即数imm12
减去Rn
的值,结果存入Rd
,即Rd = imm12 - Rn
。例如RSB.W R8, R6, #240
,执行后R8 = 240 - R6
。RSB.W Rd, Rn, Rm
:用Rm
减去Rn
的值,结果存入Rd
,Rd = Rm - Rn
。
七.64 位减法举例:
- 计算两个 64 位数的差,假设
R0
、R1
为被减数,R2
、R3
为减数。- 方法一(16位):
MOV R0, #0 MOV R1, #1 MOV R2, #0 MOV R3, #2 SUB R1, R3 SBC R0, R2
- 方法二(32位):
MOV R0, #0 MOV R1, #1 MOV R2, #0 MOV R3, #2 SUBS.W R1, R1, R3 SBC.W R0, R0, R2
- 运行结果:
R1 = 0XFFFFFFFE
,R0 = 0XFFFFFFFE
。
- 方法一(16位):
八.比较指令(CMP):
- 比较两个操作数的值,影响 APSR 标志位。
- 指令格式及功能:
CMP Rd, Rn
:将Rd
与Rn
相减,但不存储结果,仅影响 APSR 标志位。CMP Rd, #imm
:imm
为 8 位或 16 位,将Rd
与立即数相减,影响 APSR 标志位。例如CMP R0, R1
,用于比较R0
和R1
的值,影响 APSR 标志位。
- 指令格式及功能:
九.乘法指令(MUL):
- 执行乘法运算。
- 指令格式及功能:
MOV R1, #3 MOV R3, #2 MUL.W R1, R1, R3
执行后
R1 = 6
。MUL Rd, Rm
:将Rd
与Rm
相乘,结果存回Rd
,即Rd = Rd * Rm
。MUL.W Rd, Rn, Rm
:将Rn
与Rm
相乘,结果存入Rd
,Rd = Rn * Rm
。 例如:
- 指令格式及功能:
十.带符号的 64 位乘法:
- 指令格式:
SMULL RL, RH, Rm, Rn
,(RH, RL) = Rm * Rn
,将Rm
和Rn
带符号相乘,结果的低 32 位存于RL
,高 32 位存于RH
。 - 示例:
MOV R0, #1 MOV R1, #-2 SMULL R2, R3, R0, R1
运行结果:R2 = 0XFFFFFFFE
,R3 = 0XFFFFFFFE
。
十一.无符号的 64 位乘法:
- 指令格式:
UMULL RL, RH, Rm, Rn
,(RH, RL) = Rm * Rn
,将Rm
和Rn
无符号相乘,结果的低 32 位存于RL
,高 32 位存于RH
。 - 示例:
MOV R0, #1 MOV R1, #-2 UMULL R2, R3, R0, R1
运行结果:R2 = 0XFFFFFFFE
,R3 = 0X00000000
。
十二.乘加指令(MLA)与乘减指令(MLS):
- 指令格式及功能:
MLA Rd, Rm, Rn, Ra
:先计算Rm
和Rn
的乘积,再加上Ra
,结果存入Rd
,即Rd = Ra + Rm * Rn
。MLS Rd, Rm, Rn, Ra
:先计算Rm
和Rn
的乘积,再用Ra
减去该乘积,结果存入Rd
,Rd = Ra - Rm * Rn
。
- 示例:计算
x * y + z
。MOV R0, #x MOV R1, #y MOV R2, #z MLA R3, R0, R1, R2
十三.除法指令:
- 指令格式及功能:
SDIV Rd, Rn, Rm
:执行带符号除法,Rd = Rn / Rm
。UDIV Rd, Rn, Rm
:执行无符号除法,Rd = Rn / Rm
,余数被丢弃。
- 异常处理:为捕捉被零除的非法操作,可在 NVIC(嵌套向量中断控制器)的配置控制寄存器中置位
DIVBZERO
位。若出现被零除情况,会引发用法 fault 异常;若无处理措施,除数为零时Rd
将被清零。 - 示例:
MOV R0, #3 MOV R1, #2 UDIV R2, R0, R1
运行结果:R2 = 0X00000001
。
相关文章:
指令系统3(算数运算指令)
一.加法指令(ADD): 用于执行 16 位或 32 位的加法运算。 指令格式及功能: ADD Rd, Rm:将寄存器Rd和Rm的值相加,结果存回Rd,即Rd Rd Rm。ADD Rd, Rn, Rm:把寄存器Rn和Rm的值相加&…...
VLLM专题(三十一)—架构概述
本文档提供了vLLM架构的概述。 1. 入口点 vLLM 提供了多个与系统交互的入口点。下图展示了它们之间的关系。 1.1 LLM 类 LLM 类提供了用于进行离线推理的主要 Python 接口,即在不使用单独的模型推理服务器的情况下与模型进行交互。 以下是 LLM 类的使用示例: from vll…...
【操作系统】进程间通信方式
进程间通信方式 前言 / 概述一、管道管道命名管道 二、消息队列三、共享内存四、信号量信号量概述互斥访问条件同步信号 五、socket总结 前言 / 概述 每个进程的用户地址空间都是独立的,⼀般而言是不能互相访问的,但内核空间是每个进程都共享的ÿ…...
Flutter 打包 ipa出现错误问题 exportArchive
一、错误信息: Encountered error while creating the IPA: error: exportArchive: "Runner.app" requires a provisioning profile with the Push Notifications feature. Try distributing the app in Xcode: open /project/your_app/build/ios/archive/Runner.…...
Ubutu20.04安装docker与docker-compose
系统:20.04.6 LTS (Focal Fossa)" 1.配置apt源(在/etc/apt/sources.list中输入以下内容) # deb cdrom:[Ubuntu 20.04.6 LTS _Focal Fossa_ - Release amd64 (20230316)]/ focal main restricted deb http://mirrors.aliyun.com/ubuntu/ focal main restricted …...
Java 反射机制
Java 反射机制 Java 反射机制1. 反射机制简介2. 反射的核心类3. 反射的基本步骤3.1 加载类,获取类的字节码:Class 对象3.2 获取类的构造器:Constructor 对象3.3 获取类的成员变量:Field 对象3.4 获取类的成员方法:Meth…...
前端流式输出实现详解:从原理到实践
前端流式输出实现详解:从原理到实践 前言一、流式输出核心原理1.1 什么是流式输出?1.2 技术优势对比1.3 关键技术支撑 二、原生JavaScript实现方案2.1 使用Fetch API流式处理关键点解析: 2.2 处理SSE(Server-Sent Eventsÿ…...
CTF题目《easy_tornado》(护网杯 2018)Write Up
题目背景与信息收集 初始访问 题目提供三个文件链接: /flag.txt:提示flag位于/fllllllllllllag文件/welcome.txt:关键词render,暗示模板渲染漏洞(SSTI)/hints.txt:提示签名算法md5(cookie_secre…...
暗光增强技术研究进展与产品落地综合分析(2023-2025)
一、引言 暗光增强技术作为计算机视觉与移动影像领域的核心研究方向之一,近年来在算法创新、硬件适配及产品落地方面取得了显著进展。本文从技术研究与产业应用两个维度,系统梳理近三年(2023-2025)该领域的关键突破,并对比分析主流手机厂商的影像技术优劣势。 二、暗光增…...
CAM350-14.6学习笔记-1:导入Gerber文件
CAM350-14.6学习笔记-1:导入Gerber文件 使用自动导入器导入Gerber1:导航栏Home下面的Import——Automatic Import——选择文件路径——Next2:设置每层的类型:3:设置叠层4:弹出层别显示框及Gerber显示 按照Allegro输出的…...
【Zephyr】【二】学习笔记【RTOS系统架构】
Zephyr RTOS 系统架构 整体架构 #mermaid-svg-MENZa2zm9JlGktYP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-MENZa2zm9JlGktYP .error-icon{fill:#552222;}#mermaid-svg-MENZa2zm9JlGktYP .error-text{fill:#55…...
Web-Machine-N7靶机通关攻略
获取靶机ip arp-scan -l 端口扫描 nmap xxxx 访问80端口发现没用 扫描目录 gobuster dir -u http:/192.168.117.160 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium,txt -x php,html,txt ,zip 打开exploit.html 点击F12,修改localhost为靶机ip&#…...
CSS 用于图片的样式属性
CSS 设置图像样式 CSS中用于图片的样式属性主要包括以下几个方面: 边框和背景: border:可以设置图片的边框样式、宽度和颜色。例如,img { border: 1px solid #ddd; } 会给图片添加1像素的实线边框,颜色为灰色…...
【工具分享】vscode+deepseek的接入与使用
目录 第一章 前言 第二章 获取Deepseek APIKEY 2.1 登录与充值 2.2 创建API key 第三章 vscode接入deepseek并使用 3.1 vscode接入deepseek 3.2 vscode使用deepseek 第一章 前言 deepseek刚出来时有一段时间余额无法充值,导致小编没法给大家发完整的流程&…...
《Java核心三问:字符串、equals()、hashCode()的隐藏雷区与完美避坑手册》
目录 一.String、StringBuffer、StringBuilder的区别?1. 核心区别总结2. 具体实例演示示例1:不可变性 vs 可变性示例2:线程安全验证 2. 线程安全的关键:synchronized3. 对比StringBuilder的非线程安全4. 可视化执行流程5. 进一步验…...
【Java】TCP网络编程:从可靠传输到Socket实战
活动发起人小虚竹 想对你说: 这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!…...
背包问题——多重背包(C语言)
代码如下: #include<stdio.h>int knapsack(int weight[], int value[], int count[], int n, int capacity) {int* dp (int*)malloc(sizeof(int) * (capacity 1));for (int i 0; i < capacity; i){dp[i] 0;}for (int i 0; i < n; i)//核心代码{fo…...
微服务》》Kubernetes (K8S) 集群配置网络》》Calico
嘻嘻嘻 以Calico 为例子 Calico官网 官网上有安装Calico插件的步骤 步骤 要在主节点 主节点 主节点 执行 kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.29.2/manifests/tigera-operator.yaml kubectl get pod --all-namespaces kubec…...
寄存器(内部访问)
内存中字的储存 我们之前提到过,字由两个字节组成,当我们用16位寄存器来储存时,把字分别储存在连续的两个内存单元中,高位字节放在高地址单元中,低位字节则放在低位地址单元中。 例如上图,0、1两个单元存放…...
Vue2 watch侦听器(监听器)
watch侦听器(监听器)功能是监听数据变化,执行一些业务逻辑 或 异步操作。 核心选项 handler 监听函数,接收 (newVal, oldVal) 作为参数。deep: true 深度监听对象/数组内部变化。immediate: true 在组件创建时…...
【PCB工艺】基础:电子元器件
电子原理图(Schematic Diagram)是电路设计的基础,理解电子元器件和集成电路(IC)的作用,是画好原理图的关键。 本专栏将系统讲解 电子元器件分类、常见 IC、电路设计技巧,帮助你快速掌握电子电路…...
linux性能监控的分布式集群 prometheus + grafana 监控体系搭建
prometheusgrafana分布式集群资源监控体系搭建 前言一、安装 prometheus二、在要监控的服务器上安装监听器三、prometheus服务器配置四、grafana配置大屏五、创建Linux监控看板五、监控windows服务器注意事项 前言 Prometheus 是一个开源的 分布式监控系统 和 时间序列数据…...
Ubuntu AX200 iwlwifi-cc-46.3cfab8da.0.tgz无法下载的解决办法
文章目录 前言一、检查网卡是否被识别二、确认内核模块是否可用1.AX200 wifi 要求内核5.12.检查 iwlwifi.ko 是否存在:3.如果未找到,可能是内核模块未正确生成。尝试安装 linux-modules-extra:4.再次检查 iwlwifi.ko 是否存在:5.确…...
LinkedList与链表
ArrayList的缺陷 在上一篇博客中,小编已经较为详细得给大家介绍了ArrayList这个结构了。但是ArrayList存在一些缺陷:由于其底层是一段连续空间,当在ArrayList任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后搬移&am…...
CCF 编程能力认证 C++ 四级宝典
CCF编程能力等级认证(以下简称GESP)2025年四次认证时间分别为:3月22日、6月28日、9月27日、12月20日,认证方式为线下机考,认证语言包括:C、Python和Scratch三种语言,其中Scratch认证为一到四级&…...
信创系统极速文件查找:locate 命令详解
原文链接:信创系统极速文件查找:locate 命令详解 Hello,大家好啊!今天给大家带来一篇信创终端操作系统上 locate 命令详解的文章。在 Linux 及信创终端操作系统(如 统信 UOS、麒麟 KOS)中,查找…...
数据集获取
sklearn数据集 sklearn有四部分数据。其中sklearn的数据集有两部分真实的数据,一部分嵌入到了sklearn库中,即安装好sklearn后就自带了一部分数据,这些数据的规模比较小称为small toy datasets ,还有一部分数据是需要在网上下载的,sklearn提供了下载的api接口,这些数据规…...
三格电子PLC数据采集网关-工业互联的智能枢纽
在工业自动化领域,设备间的数据互通与协议兼容是核心挑战之一。三格电子推出的PLC据采集网关SG-PLC-Private,凭借其多协议兼容、高稳定性和灵活配置能力,成为工业物联网(IIoT)中实现设备互联的关键设备。本文将从产品功…...
【sgFloatDialog】自定义组件:浮动弹窗,支持修改尺寸、拖拽位置、最大化、还原、最小化、复位
sgFloatDialog <template><div :class"$options.name" v-if"visible" :size"size" :style"style"><!-- 托盘头部 --><div class"header" ref"header" dblclick.stop.prevent"dblclic…...
conda 常用命令
常用 Conda 命令整理环境管理 conda create --name 环境名 :创建新环境 conda activate 环境名 :激活环境 conda deactivate:退出环境 conda env list:列出所有环境 conda remove --name 环境名 --all :删除环…...
神聖的綫性代數速成例題10. N維矢量綫性運算、矢量由矢量組綫性表示、N個N維矢量相關性質
N 維矢量綫性運算: 設,是維矢量,是數。加法:。數乘:。 矢量由矢量組綫性表示: 設是n維矢量,若存在一組數,使得,則稱矢量可由矢量組綫性表示。 N 個 N 維矢量相關性質&…...
力扣977. 有序数组的平方(双指针技巧)
Problem: 977. 有序数组的平方 文章目录 题目描述思路Code 题目描述 思路 由于数组是非递减且包含正、负数,则假如我们将数组中的每一个元素取平方并且将其从原始的某一个位置分开成两个数组来看待(一个数组从前往后看,一个数组从后往前看&am…...
单片机flash存储也做磨损均衡
最近在做一个项目,需要保存设置数据,掉电不丢失。那么首先想到的是加个24c02,是一个eeprom,但是客户板太小,没有办法进行扩展。后面就找了一个带ee的OTP单片机,发现擦写次数有限,只有1000次&…...
第7章 类与面向对象
6-1 二维平面上的点操作(Python3) 题目描述 设计一个表示二维平面上点的类 Point。该类应该包含以下功能: 两个私有属性 _x 和 _y,分别表示点的横坐标和纵坐标。 一个构造函数 __init__,用于初始化点的坐标。 一个…...
【算法】力扣 713题:乘积小于 K 的子数组之深入思考
文章目录 前言题目:乘积小于 K 的子数组参考思路方法一:滑动窗口方法二:二分查找 参考题解方法一:滑动窗口解法方法二:二分查找解法 深入思考浮点精度?right - left 1?二分法?哈希优…...
Milvus vs. ElasticSearch:向量库检索性能测试
目录 1. 构建检索库2. 测试条件3. 测试结果4. 性能分析5. 结论 1. 构建检索库 构建通用场景库总计约2万张。构建车辆数据库总计约12万张。构建公共数据库,包括Flickr30k、COCO、nlvr2、vqa等数据集约43万张。 2. 测试条件 环境说明:分别单机部署Milvu…...
高级数据结构应用:并查集、跳表、布隆过滤器与缓存结构
高级数据结构应用:并查集、跳表、布隆过滤器与缓存结构 在解决复杂问题时,选择合适的数据结构往往是成功的关键。本文将深入探讨四种强大而实用的高级数据结构:并查集、跳表、布隆过滤器和高效缓存结构(LRU和LFU),包括它们的原理、实现、复杂度分析和实际应用场景。 1.…...
CVPR2025 | 蚂蚁浙大提出MP-GUI算法:全方位增强MLLM的GUI理解能力
近日,计算机视觉和模式识别领域国际顶会CVPR 2025公布了论文录用结果,蚂蚁集团与浙江大学EAGLE实验室合作的论文 “MP-GUI: Modality Perception with MLLMs for GUI Understanding” 被成功录用。 IEEE国际计算机视觉与模式识别会议(CVPR&a…...
过河卒cpp动态规划
题目如下 思路 利用二维数组存储棋盘的各个点的位置,首先初始化所有位置为0,然后记马的位置为1,将m,n同时加2,避免马的位置溢出,然后对二维数组进行递推算出dp[n][m] 代码及解析如下 谢谢观看!…...
春天咋会像冬天一样
2025年3月20日,阴,天寒 遇见的事:21~24号去曲靖招生,打电话给我说换一下,换了后又没有车了,这么坑。 感受到的情绪:你知道么,换的前提是有车。开车不给报销,…...
DooTask在Linux的离线部署教程
DooTask在Linux的离线部署教程 下载安装包 从网盘中将安装包下载到本地,下载地址 通过网盘分享的文件:DooTask项目管理工具 链接: https://pan.baidu.com/s/1hGmLXonT4c8hLiDP1QBr8w?pwdgdp6 提取码: gdp6 通过网盘分享的文件:DooTask项目…...
分享下web3j 常见用法
转账 fun sendEthTransaction(privateKey: String,toAddress: String,amount: BigDecimal) {//chainIdval chainId:Long 1//url 可以从https://chainlist.org/里面获取可用节点//eth转账,bnb同理,但需发送到bnb对应节点val url "https://xxx"…...
跨域问题确认及处理
背景如下: 近期在做的项目中,有个奇怪的需求,需要在JSP项目中嵌套一个VUE项目,原因是:JSP项目是在运且不大方便重构的一个项目,新需求又想为了未来着想做一套单独的项目,无奈只能嵌套。 当项目开…...
PyCharm如何添加已有的conda环境
1、点击文件中的设置 2、在右侧选中项目下的Python解释器 3、在右侧解释器一栏找到添加解释器选项 4、选择本地解释器 5、填写信息 环境:选择现有 类型:conda conda路径:...\Anaconda\Scripts\conda.exe 环境(python路径&…...
揭开最大子段和问题的神秘面纱:从暴力法到极致优化的算法之旅
最大子段和问题:从暴力法到优化的算法解析 题目链接 题目描述 给出一个长度为 nn 的序列 aa,选出其中连续且非空的一段使得这段和最大。 输入格式 第一行是一个整数,表示序列的长度 n。第二行有 n 个整数,第 i 个整数表示序列的…...
MySQL原理:逻辑架构
目的:了解 SQL执行流程 以及 MySQL 内部架构,每个零件具体负责做什么 理解整体架构分别有什么模块每个模块具体做什么 目录 1 服务器处理客户端请求 1.1 MySQL 服务器端逻辑架构说明 2 Connectors 3 第一层:连接层 3.1 数据库连接池(Conn…...
提升模型性能:数据增强与调优实战
一、为什么需要数据增强? 数据增强通过对训练图像进行随机变换,能够有效: 增加数据多样性,防止过拟合提升模型对不同视角、光照条件的鲁棒性在数据量不足时显著提升模型性能 二、MNIST手写数字识别实战 1. 加载数据…...
Emacs 折腾日记(十八)——改变Emacs的样貌
截止到上一篇文章为止,之前教程 的内容都看完了,虽然它的后记部分提供了一些后续进阶的内容需要我们自己读手册。但是我不太想继续在elisp上死磕了。看着自己学了那么久的elisp,但是自己的emacs仍然没有半点改变,这个时候各位读者…...
VNA操作使用学习-14 再测晶振特性
再测一下4Mhz晶振,看看特性曲线,熟悉一下vna使用。 s11模式,找遍了各种format都无法显示,只有这一种(s11,Resistance)稍微显示出一个谐振,但是只有一个点。 s21模式 这是201p&#…...
CentOS7 离线下载安装 GitLab CE
依赖下载 https://vault.centos.org/7.9.2009/os/x86_64/Packages/policycoreutils-python-2.5-34.el7.x86_64.rpm 依赖安装 rpm -ivh policycoreutils-python-2.5-34.el7.x86_64.rpm 查看是否安装依赖 rpm -qa | grep policycoreutils-pythongitlab下载 https://packag…...