当前位置: 首页 > news >正文

计算机组成原理笔记(十四)——3.4指令类型

一台计算机的指令系统可以有上百条指令,这些指令按其功能可以分成几种类型,下面分别介绍。

3.4.1数据传送类指令

一、核心概念与功能定位

数据传送类指令是计算机指令系统中最基础的指令类型,负责在 寄存器、主存、I/O设备 之间高效复制数据。这类指令的特点是 不改变数据本身的值,仅实现数据的物理或逻辑传递。

二、分类与典型指令

根据数据源与目标的物理位置不同,数据传送类指令可细分为以下4类:

类型功能典型指令汇编示例
通用传送寄存器/主存间的数据复制MOV, LDA (Load), STA (Store)MOV R1, R2
STA [2000H], R0
堆栈操作基于堆栈结构实现数据压入和弹出PUSH, POPPUSH AX
POP BX
I/O操作CPU与I/O设备间的数据交互IN, OUTIN AL, 60H
OUT 80H, AL
数据交换直接交换两个数据源的值XCHG, XCHXCHG AX, BX

三、执行流程与硬件支持

1. 通用传送指令(如MOV)

功能:将源操作数复制到目标位置,源数据保留。
核心步骤

  1. 取指令:从内存取出指令并译码。
  2. 获取源数据:根据寻址方式读取源地址数据。
  3. 写入目标:将数据写入目标地址。

在这里插入图片描述

硬件协作

  • 寄存器传输:通过内部总线直接传递数据。
  • 主存访问:需要 MAR(内存地址寄存器)保存地址,MDR(内存数据寄存器)暂存数据。

2. 堆栈操作指令(PUSH/POP)

核心流程(基于自底向上生成的内存堆栈):

  • PUSH流程
    1. SP指针下移:SP ← SP - 1(x86架构相反,上移)。
    2. 数据写入栈顶:将数据存入SP指向的内存单元。

在这里插入图片描述

  • POP流程
    1. 读取栈顶数据。
    2. SP指针上移:SP ← SP + 1(x86架构相反,下移)。

在这里插入图片描述

示例(x86架构):

PUSH EAX    ; 将EAX内容压入栈顶,SP-4
POP EBX     ; 将栈顶数据弹出到EBX,SP+4

3. I/O传送指令(IN/OUT)

工作原理

  • 独立编址:I/O端口与内存地址分开,通过专用IN/OUT指令访问(如x86)。
  • 统一编址:I/O设备映射到内存地址空间(如ARM的MMIO)。

IN指令流程(独立编址):

在这里插入图片描述

四、关键硬件支持与总线信号

  1. 关键寄存器
    • MAR(地址寄存器):保存目标内存地址。
    • MDR(数据寄存器):临时存储待写入的数据。
  2. 总线控制信号
    • MIO信号:区分内存与I/O操作(1=内存,0=IO)。
    • REQ信号:请求总线使用权。
    • WE信号:写使能(1=写,0=读)。

五、典型应用场景

  1. 函数调用上下文保存
    • PUSH保存返回地址、参数和寄存器值。
    • POP恢复现场,继续执行主程序。
  2. 中断处理
    • 通过PUSH保存程序状态(PC、标志寄存器)。
  3. 动态内存管理
    • MOV指令在内存和寄存器间频繁交换临时数据。

六、联合寻址方式

数据传送指令支持的 寻址方式决定效率

  • 直接寻址:指令直接包含有效地址(如MOV AX, [2000H])。
  • 寄存器间接寻址:地址存放在寄存器(如MOV AX, [BX])。
  • 基址/变址寻址:组合基址寄存器和偏移量(如MOV AX, [SI+10H])。

七、高级应用与优化

  • DMA控制:绕过CPU实现内存与外设直接数据传输。
  • 原子操作:通过XCHG实现锁机制(如自旋锁)。
  • 零地址指令优化:利用堆栈隐式寻址减少指令长度(如PUSH/POP)。

示例总结:寄存器与内存数据传输模型

在这里插入图片描述

3.4.2运算类指令

一、运算类指令的类别

运算类指令主要分为 算术运算指令逻辑运算指令,具体分类如下:

1. 算术运算指令

  • 加法(ADD/ADC):完成加法操作,ADC 是带进位的加法。

  • 减法(SUB/SBB):完成减法操作,SBB 是带借位的减法。

  • 乘法(MUL/IMUL):无符号乘法(MUL)和有符号乘法(IMUL)。

  • 除法(DIV/IDIV):无符号除法(DIV)和有符号除法(IDIV)。

  • 增量/减量(INC/DEC):对操作数加1或减1。

  • 比较(CMP):计算两数的差值,但不保存结果,仅更新标志位。

2. 逻辑运算指令

  • 按位与(AND)

  • 按位或(OR)

  • 按位异或(XOR)

  • 按位取反(NOT)

  • 移位操作

  • 算术移位:保留符号位(SAR、SAL)。

  • 逻辑移位:不保留符号位(SHL、SHR)。

  • 循环移位:带进位或不带进位(ROR、ROL)。

二、运算指令的执行流程

运算指令分为以下阶段(以加法指令为例):

1. 取指阶段(Fetch)

  • 动作:从程序计数器(PC)指示的地址中取出指令。

  • 数据流
    在这里插入图片描述

2. 译码阶段(Decode)

  • 动作:解析指令,确定操作码(ADD)和操作数类型(寄存器或内存)。

  • 关键:控制单元(CU)生成控制信号。

3. 执行阶段(Execute)

  • 数据通路
  1. 取操作数:从寄存器或内存读取操作数。

  2. ALU运算:执行具体的算术或逻辑操作。

  3. 更新标志位:溢出(OF)、进位(CF)、零(ZF)、符号(SF)等。

4. 写回阶段(Write Back)

  • 动作:将结果存入目标寄存器或内存。

  • 关键:影响后续指令的条件分支(如JNZ)。

三、标志位的作用

运算指令执行后会影响以下标志位:

  • ZF(Zero Flag):结果为0时置1。

  • OF(Overflow Flag):有符号运算溢出时置1。

  • CF(Carry Flag):无符号运算进位或借位时置1。

  • SF(Sign Flag):结果的符号位(最高位)为1时置1。

四、示例:ADD指令的完整流程

假设执行指令 ADD R1, R2, R3(将 R2 和 R3 的值相加,结果存到 R1):

流程图

在这里插入图片描述

步骤详解

  1. 取指令:从当前 PC 指向的内存地址读取指令。

  2. 译码:识别是 ADD 指令,提取操作数地址 R2 和 R3。

  3. 读取操作数:从寄存器 R2、R3 中取出数据。

  4. ALU运算:ALU 执行加法运算,生成结果。

  5. 更新标志

  • 若结果为零,置 ZF=1。

  • 若结果溢出,置 OF=1。

  1. 写回结果:将结果存入目标寄存器 R1,PC 自增指向下一指令。

五、典型运算类指令对比

指令类型操作符功能示例(汇编)
加法ADD寄存器或立即数加法ADD AX, 10
逻辑运算AND按位与操作AND AX, 0xFF
移位SHL左移(逻辑或算术)SHL AX, 1
比较CMP比较两数并更新标志位CMP AX, BX

六、核心概念总结

  • 数据通路:涉及寄存器、ALU、内存的协同操作。

  • 控制信号:CU 通过解析操作码发出信号,控制数据流动。

  • 标志位:影响条件分支指令(如 JEJNE 等)的执行。

通过以上内容,可以全面理解运算类指令在计算机中的执行机制和关键流程。

3.4.3程序控制类指令

程序控制类指令用于改变程序的执行顺序,实现分支、循环、子程序调用等功能。

一、核心分类及功能

  1. 无条件转移指令(JMP)

    • 功能:直接修改程序计数器(PC),跳转到指定地址执行。
    • 示例JMP LABEL
    • 流程图
      在这里插入图片描述
  2. 条件转移指令(Jump Conditional)

    • 功能:根据条件码(状态寄存器标志)决定是否跳转。

常见类型

指令条件说明
JE/JZZF=1结果为零
JNE/JNZZF=0结果不为零
JG(SF=OF)&ZF=0有符号大于
JLSF≠OF有符号小于

在这里插入图片描述

  1. 子程序调用与返回

    • CALL:保存返回地址(PC+1压栈),跳转到子程序入口。
    • RET:弹出返回地址到PC,恢复主程序执行。
    • 流程示例
      在这里插入图片描述

二、关键机制详解

  1. 返回地址保存

    • 方法:大多数架构使用堆栈保存返回地址(CALL时压栈,RET时弹栈)。
    • 示例CALL 0x1000的执行步骤:
      1. 将当前PC(下一条指令地址)压入栈
      2. PC ← 0x1000
  2. 条件判断逻辑

    • 依赖标志位:ZF(零标志)、CF(进位)、SF(符号)、OF(溢出)。
    • 跳转电路:CPU内部通过状态寄存器和组合逻辑决定是否跳转。
  3. 寻址模式的影响

    • 相对跳转JMP +25(当前PC+25)。
    • 绝对跳转JMP 0xFF00(直接跳转到目标地址)。

三、综合执行流程

  1. 无条件转移(JMP)

在这里插入图片描述

  1. 条件转移(JE)

在这里插入图片描述

  1. 子程序调用(CALL/RET)
    在这里插入图片描述

四、典型应用场景

  1. 循环控制

    • 示例:通过LOOP递减计数器并判断是否为0。

      MOV CX, 5
      LOOP_START:; 循环体...LOOP LOOP_START  ; CX-1, if CX≠0跳转
      
  2. 分支选择

    • 多路分支:通过嵌套条件跳转实现if-elseswitch
  3. 中断处理

    • 隐式调用:硬件中断自动触发类似CALL的操作,保存上下文后跳转中断服务程序。

五、注意事项

  • 性能影响:跳转指令可能导致流水线停顿,需谨慎优化。
  • 栈平衡:子程序中需确保RET前栈指针与CALL时一致。
  • 标志位安全:子程序执行期间需保存和恢复相关寄存器避免破坏主程序状态。

3.4.4输入输出类指令

一、I/O类指令的核心功能

I/O类指令用于CPU与外部设备之间的数据交换和控制,主要包括:

  1. 数据传输:CPU与I/O设备之间交换数据(如键盘输入、屏幕输出)。
  2. 设备控制:发送指令控制外设(如启动磁盘读取)。
  3. 状态查询:读取外设状态(如判断设备是否就绪)。

典型I/O指令:

  • IN:从外设读取数据到CPU寄存器(输入)。
  • OUT:向外部设备发送数据(输出)。
  • START:启动外设操作(如开始打印)。
  • HALT:停止外设操作。

二、I/O指令的两种编址方式

1. 独立编址(I/O-Mapped I/O)

  • 特点:外设地址与内存地址完全独立,需专用IN/OUT指令操作。
  • 优点:I/O设备与内存地址空间不冲突。
  • 缺点:需要额外的控制逻辑。
  • 示例
    • IN AL, 60h:从I/O端口60h读取数据到寄存器AL
    • OUT 80h, AL:将AL的内容输出到I/O端口80h

在这里插入图片描述

2. 统一编址(Memory-Mapped I/O)

  • 特点:外设寄存器映射到内存地址空间,可通过普通访存指令访问。
  • 优点:简化指令设计,兼容通用指令。
  • 缺点:占用内存地址空间。
  • 示例
    • MOV AX, [0f000h]:读取外设0F000h的输入数据。
    • MOV [0f001h], AX:向0F001h端口写入数据。

三、典型I/O指令的执行流程

1. 输入指令(IN)执行流程

在这里插入图片描述

2. 输出指令(OUT)执行流程

在这里插入图片描述

四、关键硬件部件与流程图

1. 典型I/O系统结构

在这里插入图片描述

2. I/O指令执行的控制信号流程

在这里插入图片描述

五、设计案例分析

案例:从键盘输入字符并显示

在这里插入图片描述

六、关键问题与答案

  1. Q:独立编址和统一编址有何区别?

    • 独立编址需专用指令(如IN/OUT),外设端口独立;统一编址通过普通访存指令操作外设。
  2. Q:I/O指令为何需要状态寄存器?

    • 为了解决外设速度与CPU不匹配的问题。例如:CPU通过状态寄存器查询设备是否就绪(如“就绪位”是否为1)。
  3. Q:什么是轮询与中断?

    • 轮询:CPU持续查询外设状态(效率低,适用于简单设备)。
    • 中断:外设通过中断控制器主动通知CPU(效率高,复杂系统常用)。

相关文章:

计算机组成原理笔记(十四)——3.4指令类型

一台计算机的指令系统可以有上百条指令,这些指令按其功能可以分成几种类型,下面分别介绍。 3.4.1数据传送类指令 一、核心概念与功能定位 数据传送类指令是计算机指令系统中最基础的指令类型,负责在 寄存器、主存、I/O设备 之间高效复制数…...

GM DC Monitor v2.0 数据中心监控预警平台-CMDB使用教程(第九篇)

SNMP配置管理功能使用手册 本模块主要用于导入设备厂家的mib库文件,也可以手工创建对应的oid信息,用以实现设备的被动监控功能。 另:系统部署完毕后,已经集成了个别厂家的MIB库数据。 设计思路及使用教程 设计思路:通…...

try-with-resources 详解

try-with-resources 详解 一、基本概念 try-with-resources 是 Java 7 引入的语法结构,用于自动管理资源(如文件流、数据库连接等需要关闭的对象)。 核心特点 自动资源释放:无需手动调用 close() 简洁代码:减少 tr…...

第二十四:查看当前 端口号是否被占用

查看当前 端口号是否被占用: mac 情况下: lsof -i :端口号 netstat -an | grep 端口号 系统将显示监听该端口的进程信息,包括进程名称、进程ID、用户和协议等。如果需要更多信息,可以添加-P和-n参数,例如&#xf…...

【数据结构与算法】——堆(补充)

前言 上一篇文章讲解了堆的概念和堆排序,本文是对堆的内容补充 主要包括:堆排序的时间复杂度、TOP 这里写目录标题 前言正文堆排序的时间复杂度TOP-K 正文 堆排序的时间复杂度 前文提到,利用堆的思想完成的堆排序的代码如下(包…...

【Web功能测试】Web商城搜索模块测试用例设计深度解析

Web商城的搜索模块功能测试用例设计 1.搜索功能设计 1.1 搜索框设计 位置显眼:通常置于页面顶部中央,符合用户习惯。 智能提示(Autocomplete):输入时实时推荐关键词、商品或分类(如“手机 苹果”&#x…...

ubuntu 18.04安装tomcat,zookeeper,kafka,hadoop,MySQL,maxwell

事情是这样的,因为昨天发现我用的ubuntu16.04官方不维护了,以及之前就觉得不是很好用,于是升级到了18.04。如图: 但是!由于为备份升级前忘记关闭服务,上面装好的东西所剩无几。 于是我重装了。。。 如何启…...

设计模式(结构型)-享元模式

摘要 在软件开发的广阔领域中,随着系统规模的不断膨胀,资源的有效利用逐渐成为了一个至关重要的议题。当一个系统中存在大量相似的对象时,如何优化这些对象的管理,减少内存的占用,提升系统的整体性能,成为了…...

1.1显存

显存是显卡(GPU)专用的高性能内存,负责存储渲染所需的纹理、帧缓冲、几何数据等。其设计直接影响图形性能、分辨率和复杂场景处理能力 苹果统一内存(Unified Memory)、集成显卡共享内存(Integrated Graphi…...

C# 选择文件的路径、导出文件储存路径

1、选择导入文件,获取其路径 C#通过这段代码将弹出一个文件选择对话框,允许用户选择一个文件,并返回所选文件的完整路径。如果用户取消了选择,则直接返回结束函数。 string OpenFilePath;//存储选择到的文件的完整路径OpenFileDia…...

【最后203篇系列】027 基于消息队列的处理架构

起因 之所以写这篇文章,主要是梳理一下进展。因为同时研究好几块内容,切换起来要点时间。这次也是因为协作的同事们把各自的分工都搞定了,瓶颈反而在我自己这里,哈哈。 除了帮自己思路恢复过来,我觉得这方法可能也有…...

多线程与Tkinter界面交互

在现代图形用户界面(GUI)应用程序中,可能会遇到需要长时间运行的任务,例如网络请求、数据处理或文件读取等。如果这些任务直接在主线程中运行,会导致GUI界面“卡顿”或“不响应”。为了保持界面流畅和响应用户操作,我们可以通过使用多线程来将这些任务移到后台运行。然而…...

【工程开发】LLMC准确高效的LLM压缩工具(一)

​【文献阅读】LLMC: Benchmarking Large Language Model Quantization with a Versatile Compression Toolkit 北航 2024年10月 摘要 大语言模型(LLMs)的最新进展凭借其卓越的涌现能力和推理能力,正推动我们迈向通用人工智能。然而&#…...

回顾CSA,CSA复习

RHCSA redhat certificate system Administrator RHCE redhat certificate engineer 回顾CSA 文件管理 创建文件:touch 、重定向、vim 阅读文件:cat看短小的文件、vim、head看文件前面部分、tail看文件的尾部内容、more、less看文档使用more和less…...

基于电子等排体的3D分子生成模型 ShEPhERD - 评测

一、背景介绍 ShEPhERD 是一个由 MIT 开发的一个 3D 相互作用感知的 ligand-based的分子生成模型,以 arXiv 预印本的形式发表于 2024 年,被ICLR2025 会议接收。文章链接:https://openreview.net/pdf?idKSLkFYHlYg ShEPhERD 是一种基于去噪扩…...

平凡日子里的挣扎

2025年4月13日,9~23℃,好 待办: 融智云考平台《物理》《物理2》~~《地理》《地理1》~~重修试卷 卫健委统考监考(2025年4月12日早上7点半) 冶金《物理》课程标准 冶金《物理》教案 期中教学检查——自查表材料&#xff…...

智能制造方案精读:117页MES制造执行系统解决方案【附全文阅读】

本方案围绕制造执行系统(MES)展开,阐述了智能制造相关概念及发展趋势,指出 MES 是连接 ERP 与生产现场的关键系统。介绍其在加工、装配及其他场景的应用,通过实例展示各场景下的功能、特点和实施效果,如实现生产信息可视化、产品追溯、设备监控等。还提及实施 MES 面临的…...

[推荐]AI驱动的知识图谱生成器(AI Powered Knowledge Graph Generator)

网址:https://github.com/robert-mcdermott/ai-knowledge-graph# 一、介绍 简介:以非结构化文本文档为输入,使用您选择的LLM以主语-谓语-宾语 (SPO) 三元组的形式提取知识,并将这些关系可视化为交互式知识图谱 特点&#xff1a…...

波束形成(BF)从算法仿真到工程源码实现-第七节-关于波束10个基本概念

一、波束10个基本概念 1.作用: 对多路麦克风信号进行合并处理,抑制非目标方向的干扰信号,增强目标方向的声音信号。 2.原理: 调整相位阵列的基本单元参数,使得某些角度的信号获得相长干涉,而另一些角度的…...

深度学习(第一集)

123 import torch# 创建一个需要计算梯度的张量 x1 torch.tensor([2.0], requires_gradTrue)# 定义一个简单的函数 y x^2 y x1 ** 4# 计算梯度 y.backward()print("x1.grad 的值:", ) # 打印 x1.grad print("x1.grad 的值:", x1…...

Spring 事务传播行为

在Spring框架中,事务传播行为(Transaction Propagation)定义了事务在多个方法调用之间的行为方式。理解这些传播行为对于设计可靠的事务管理策略至关重要。以下是Spring支持的七种事务传播行为及其应用场景的详细说明: 1. REQUIRED(默认) 行为:如果当前存在事务,则加入…...

搬运机器人的基本工作场景及原理

搬运机器人广泛应用于工业生产中,主要用于搬运、堆放、装配等工作。它通过机械手臂的运动,结合机器视觉技术完成各种自动化作业。 一、搬运机器人的设计原理 搬运机器人通常采用可移动门架式结构,手臂承载机构安装在导轨上,可以沿…...

Ubuntu终端中常用的快捷键整理

1. 导航与编辑 光标移动: Ctrl A:跳转到行首。 Ctrl E:跳转到行尾。 Alt B:向左移动一个单词(或 Ctrl ←)。 Alt F:向右移动一个单词(或 Ctrl →)。 删除操作…...

mysql安装-MySQL MGR(Group Replication)+ ProxySQL 架构

文章目录 前言一、环境规划二、安装 MySQL 8.0.36(主库,CentOS 9)2.1 添加 Yum 源2.2 安装 MySQL 8.0.362.3 初始化 三、配置主库 my.cnf(192.168.1.101)四、(可选)创建远程可访问的用户&#x…...

Opencv使用cuda实现图像处理

main.py import os import cv2 print(fOpenCV: {cv2.__version__} for python installed and working) image cv2.imread(bus.jpg) if image is None:print("无法加载图像1") print(cv2.cuda.getCudaEnabledDeviceCount()) cv2.cuda.setDevice(0) cv2.cuda.printCu…...

ubuntu 安装samba

ubuntu 版本:Ubuntu 24.04.2 LTS 1. 保证连网 2. 安装samba sudo apt install samba 在安装结束以后,我们可以使用下面的命令来查看安装: apt list | grep samba freeipa-client-samba/noble 4.11.1-2 amd64 ldb-tools/noble 2:2.8.0samba…...

山东大学软件学院创新项目实训开发日志(12)之将对话记录保存到数据库中

在之前的功能开发中,已经成功将deepseekAPI接口接入到springbootvue项目中,所以下一步的操作是将对话和消息记录保存到数据库中 在之前的开发日志中提到数据库建表,所以在此刻需要用到两个表,conversation表和message表&#xff…...

欢乐力扣:反转链表二

文章目录 1、题目描述2、思路 1、题目描述 反转链表二。  给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 2、思路 参考官方题解&#xff0c;基本思路…...

【CS*N是狗】亲测可用!!WIN11上禁用Chrome自动更新IDM插件

现象&#xff1a;每次打开chrome后IDM会弹出提示插件版本不一致。经过排查后发现是chrome把IDM插件给更新了&#xff0c;导致IDM提示版本不匹配。经过摸索后&#xff0c;得到了可行的方案。 第一步&#xff0c;打开Chrome&#xff0c;把IDM插件卸载掉&#xff0c;然后重新安装I…...

Linux:DNS服务配置(课堂实验总结)

遇到的问题&#xff0c;都有解决方案&#xff0c;希望我的博客能为你提供一点帮助。 操作系统&#xff1a;rocky Linux 9.5 ​​一、配置DNS服务器的核心步骤​​ 步骤 1&#xff1a;安装 BIND 软件​​ ​​检查是否安装​​&#xff1a; rpm -qa | grep "^bind"…...

啥是Spring,有什么用,既然收费,如何免费创建SpringBoot项目,依赖下载不下来的解决方法,解决99%问题!

一、啥是Spring&#xff0c;为啥选择它 我们平常说的Spring指的是Spring全家桶&#xff0c;我们为什么要选择Spring&#xff0c;看看官方的话&#xff1a; 意思就是&#xff1a;用这个东西&#xff0c;又快又好又安全&#xff0c;反正就是好处全占了&#xff0c;所以我们选择它…...

【LeetCode】算法详解#4 ---合并区间

1.题目介绍 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 1 < intervals.length < 104interval…...

安装树莓派3B+环境

目录 一、安装树莓派3B环境 1.1 格式化SD卡 1.2 环境安装与配置 1.2.1 安装Raspberry Pi 1.2.2 SSH访问树莓派 1.3 创建用户账号 二、在树莓派上用C和Python编程运行一个简单的程序 2.1 C语言程序 2.2 Python程序 三、总结 树莓派是一款功能强大的微型计算机&#xf…...

​​STM32(3.3V 系统)通过串口直接向 ATmega328P(5V 系统)发送数据​​,居然能正常通信

​​核心结论​​ 如果 ​​STM32&#xff08;3.3V 系统&#xff09;通过串口直接向 ATmega328P&#xff08;5V 系统&#xff09;发送数据​​&#xff0c;​​3.3V 的 TX 高电平可能无法被 ATmega328P 可靠识别为逻辑“1”​​&#xff01;以下是详细分析&#xff1a; ​​1.…...

Java 8中的Lambda 和 Stream (from Effective Java 第三版)

42.Lambda 优先于匿名类 在之前的做法中&#xff08;Historically&#xff09;&#xff0c;使用单个抽象方法的接口&#xff08;或很少的抽象类【只有一个抽象方法的抽象类数量比较少】&#xff09;被用作函数类型。它们的实例称为函数对象&#xff0c;代表一个函数或一种行为。…...

MIPI协议介绍

MIPI协议介绍 mipi 协议分为 CSI 和DSI,两者的区别在于 CSI用于接收sensor数据流 DSI用于连接显示屏 csi分类 csi 分为 csi2 和 csi3 csi2根据物理层分为 c-phy 和 d-phy, csi-3采用的是m-phy 一般采用csi2 c-phy 和 d-phy的区别 d-phy的时钟线和数据线是分开的,2根线一对…...

深入解析 HTML 中 `<script>` 标签的 async 和 defer 属性

一、背景与问题 在网页性能优化中&#xff0c;脚本的加载和执行方式直接影响页面渲染速度和用户体验。传统 <script> 标签的阻塞行为可能导致页面“白屏”&#xff0c;而 async 和 defer 属性提供了非阻塞的解决方案。本周重点研究二者的差异、适用场景及实际应用。 二、…...

【从0到1学Elasticsearch】Elasticsearch从入门到精通(上)

黑马商城作为一个电商项目&#xff0c;商品的搜索肯定是访问频率最高的页面之一。目前搜索功能是基于数据库的模糊搜索来实现的&#xff0c;存在很多问题。 首先&#xff0c;查询效率较低。 由于数据库模糊查询不走索引&#xff0c;在数据量较大的时候&#xff0c;查询性能很差…...

2.0 全栈运维管理:Linux网络基础核心概念解析、Proxmox网络组件详解、虚拟化网络模型分类

本文是Proxmox VE 全栈管理体系的系列文章之一&#xff0c;如果对 Proxmox VE 全栈管理感兴趣&#xff0c;可以关注“Proxmox VE 全栈管理”专栏&#xff0c;后续文章将围绕该体系&#xff0c;从多个维度深入展开。 摘要&#xff1a;Linux 网络基础借助桥接、VLAN 和 Bonding 实…...

案例驱动的 IT 团队管理:创新与突破之路: 第四章 危机应对:从风险预见到创新破局-4.1.3重构过程中的团队士气管理

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 案例驱动的 IT 团队管理&#xff1a;创新与突破之路 - 第四章 危机应对&#xff1a;从风险预见到创新破局4.1.3 重构过程中的团队士气管理1. 技术债务重构与团队士气的矛盾2…...

洛谷刷题小结

#include <iostream> using namespace std; int n, m,ans0; char s[105][105]; //深搜 void dfs(int x, int y) {//将搜索到的水坑看为干地s[x][y] .;//确定八个方向int next[8][2] {{0,1},{0,-1},{1,0},{-1,0},{1,1},{1,-1},{-1,1},{-1,-1},};//朝八个方向搜索for (in…...

Android Compose 权限申请完整指南

Android Compose 权限申请完整指南 在 Jetpack Compose 中处理运行时权限申请需要结合传统的权限 API 和 Compose 的状态管理。以下是完整的实现方案&#xff1a; 1. 基本权限申请流程 添加依赖 implementation "com.google.accompanist:accompanist-permissions:0.34…...

VirtualBox虚拟机转换到VMware

VirtualBox虚拟机转换到VMware **参考文章&#xff1a;**https://blog.csdn.net/qq_30054403/article/details/123451969 一.找到对应文件位置 Windows11系统&#xff0c;VirtualBox版本为6.1.50&#xff0c;VMware版本为17.5.2 1.首先找到自己需要转换的vdi文件位置 D:\v…...

Spring Boot(二十二):RedisTemplate的List类型操作

RedisTemplate和StringRedisTemplate的系列文章详见&#xff1a; Spring Boot&#xff08;十七&#xff09;&#xff1a;集成和使用Redis Spring Boot&#xff08;十八&#xff09;&#xff1a;RedisTemplate和StringRedisTemplate Spring Boot&#xff08;十九&#xff09;…...

【MySQL】关于何时使用start slave和start slave user=‘’ password=‘’

这个问题是我在配置三个服务器的复制拓扑时&#xff0c;一开始没有给复制用户 repl 创建密码&#xff0c;搭建好循环拓扑后&#xff0c;给server1的复制用户通过 ALTER USER USER() IDENTIFIED BY oracle 设置了密码&#xff0c;然后同步给了server2和server3。 这时server2突…...

(个人题解)第十六届蓝桥杯大赛软件赛省赛C/C++ 研究生组

宇宙超级无敌声明&#xff1a;个人题解&#xff08;好久不训练&#xff0c;赛中就是一个憨憨&#xff09; 先放代码吧&#xff0c;回头写思路。 文章目录 A. 数位倍数B. IPv6C. 变换数组D. 最大数字E. 冷热数据队列F. 01串G. 甘蔗H. 原料采购 A. 数位倍数 问&#xff1a; 在1至…...

GitLab + Jenkins + .Net8 实现CICD部署

前提条件&#xff1a;需要安装好 Jenkins 和 GitLab 。 1. Jenkins配置 登录 Jenkins 找到自己的一个任务&#xff0c;点击配置&#xff08;没有任务就新建&#xff09;。 按图操作 点击高级展开后截图&#xff0c;点击生成Token 配置好自己的作业&#xff08;我的是一个 .Ne…...

AI工具导航 快速找到喜欢的AI工具 功能使用介绍

此篇文章内容来源CTO Plus技术服务栈官网&#xff1a;http://www.mdrsec.com/ 在人工智能技术迅猛发展的2025年&#xff0c;AI工具的数量和种类呈爆炸式增长&#xff0c;涵盖文本生成、图像创作、视频编辑、编程辅助等多个领域。面对琳琅满目的AI工具&#xff0c;如何高效筛选和…...

[题解] Educational Codeforces Round 168 (Rated for Div. 2) E - level up

链接 思路 1 注意到在 k ∈ [ 1 , n ] k \in [1,n] k∈[1,n] 可以得到的最高等级分别为: n , n 2 , n 3 . . . . . n n n,\frac{n}{2},\frac{n}{3}.....\frac{n}{n} n,2n​,3n​.....nn​, 总的个数是一个调和级数, s u m n ∗ ln ⁡ n sumn*\ln n sumn∗lnn, 完全可以处…...

达梦数据库-学习-19-兼容ORACLE相关参数介绍

目录 一、环境信息 二、介绍 三、参数 一、环境信息 名称值CPU12th Gen Intel(R) Core(TM) i7-12700H操作系统CentOS Linux release 7.9.2009 (Core)内存4G逻辑核数2DM版本1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134284194-202…...