intel白皮书卷2 附录A(AI翻译)

A.1 使用操作码表(Using Opcode Tables)

本附录中的表格列出了各条指令的操作码(包括必须的指令前缀以及由 ModR/M 字节提供的操作码扩展)。
表格中的空白单元表示该操作码是保留的(reserved)未定义的(undefined)

操作码映射表是按照操作码字节高 4 位和低 4 位的十六进制值来组织的。

  • 1 字节操作码编码(表 A-2)
    使用操作码的高 4 位作为行索引,低 4 位作为列索引,在操作码表中查找对应指令。

  • 0FH开头的 2 字节操作码(表 A-3)
    跳过所有指令前缀以及0FH字节(0FH之前可能带有66HF2HF3H前缀),
    然后使用下一个操作码字节的高 4 位和低 4 位分别作为行和列索引。

  • 0F38H0F3AH开头的 3 字节操作码(表 A-4)
    跳过所有指令前缀以及0F38H0F3AH
    再使用第三个操作码字节的高 4 位和低 4 位来索引表中的行和列。

关于一字节、两字节和三字节操作码的查表示例,请参见
A.2.4 节《一字节、两字节和三字节操作码的查找示例》

ModR/M 字节提供操作码扩展时,该信息会对操作码的执行进行限定。
有关 ModR/M 字节中的操作码扩展如何修改表 A-2 和表 A-3 中的操作码映射,请参见A.4 节

用于浮点指令的转义(ESC)操作码表在每一页的顶部标识了操作码的高 8 位
请参见A.5 节

如果随附的 ModR/M 字节位于00H–BFH范围内,则由:

  • ModR/M 的reg 位
  • 以及位 3–5(每页第三张表的顶行)

共同决定具体操作码。

如果 ModR/M 字节超出00H–BFH的范围,则由该节中每页底部的两张表进行映射。


A.2 缩写说明(Key to Abbreviations)

操作数使用一种Zz形式的两字符代码进行标识:

  • 第一个字符(大写字母):表示寻址方式(addressing method)
  • 第二个字符(小写字母):表示操作数类型(operand type)

A.2.1 寻址方式代码(Codes for Addressing Method)

下列缩写用于描述指令操作数的寻址方式(addressing method)

代码含义说明
A直接地址:指令中没有 ModR/M 字节,操作数地址直接编码在指令中。不能使用基址寄存器、变址寄存器或比例因子(例如:远跳转JMP (EA))。
CModR/M 字节中的reg 字段选择一个控制寄存器(例如:MOV (0F20, 0F22))。
DModR/M 字节中的reg 字段选择一个调试寄存器(例如:MOV (0F21, 0F23))。
E操作码后跟一个ModR/M 字节,用于指定操作数。操作数可以是通用寄存器内存地址。若为内存地址,则由段寄存器以及以下元素计算得出:基址寄存器、变址寄存器、比例因子、位移。
FEFLAGS / RFLAGS 寄存器
GModR/M 字节中的reg 字段选择一个通用寄存器(例如:AX (000))。
HVEX 前缀中的VEX.vvvv 字段选择一个128 位 XMM256 位 YMM 寄存器(由操作数类型决定)。在传统 SSE 编码中该操作数不存在,此时指令会变为破坏式(destructive)形式
I立即数:操作数的值直接编码在指令的后续字节中。
J指令中包含一个相对偏移量,该偏移量会加到指令指针寄存器中(例如:JMP (E9)LOOP)。
L8 位立即数的高 4 位选择一个128 位 XMM256 位 YMM 寄存器(由操作数类型决定)。在32 位模式下最高位被忽略。
MModR/M 字节只能引用内存操作数(例如:BOUNDLESLDSLSSLFSLGSCMPXCHG8B)。
NModR/M 字节中的R/M 字段选择一个MMX 技术的 packed-quadword 寄存器
O指令中没有 ModR/M 字节。操作数的偏移量以word 或 double word(取决于地址大小属性)的形式直接编码在指令中。不能使用基址寄存器、变址寄存器或比例因子(例如:MOV (A0–A3))。
PModR/M 字节中的reg 字段选择一个MMX 技术的 packed-quadword 寄存器
Q操作码后跟一个ModR/M 字节,用于指定操作数。操作数可以是MMX 寄存器内存地址。若为内存地址,则由段寄存器以及基址寄存器、变址寄存器、比例因子和位移共同计算。
RModR/M 字节中的R/M 字段只能引用通用寄存器(例如:MOV (0F20–0F23))。
SModR/M 字节中的reg 字段选择一个段寄存器(例如:MOV (8C, 8E))。
UModR/M 字节中的R/M 字段选择一个128 位 XMM256 位 YMM 寄存器(由操作数类型决定)。
VModR/M 字节中的reg 字段选择一个128 位 XMM256 位 YMM 寄存器(由操作数类型决定)。
W操作码后跟一个ModR/M 字节,用于指定操作数。操作数可以是128 位 XMM 寄存器256 位 YMM 寄存器(由操作数类型决定),或内存地址。若为内存地址,则由段寄存器、基址寄存器、变址寄存器、比例因子和位移共同计算。
XDS:rSI寄存器对寻址的内存(例如:MOVSCMPSOUTSLODS)。
YES:rDI寄存器对寻址的内存(例如:MOVSCMPSINSSTOSSCAS)。

A.2.2 操作数类型代码(Codes for Operand Type)

下列缩写用于描述指令操作数的类型(operand type)

代码含义说明
a两个内存操作数:根据操作数大小属性(operand-size attribute),表示两个word内存操作数或两个doubleword内存操作数(仅用于BOUND指令)。
b字节(byte),与操作数大小属性无关。
c字节或字(byte / word),取决于操作数大小属性。
d双字(doubleword),与操作数大小属性无关。
dq双四字(double-quadword),与操作数大小属性无关。
p指针类型:32 位、48 位或 80 位指针,取决于操作数大小属性。
pd128 位或 256 位打包的双精度浮点数据(packed double-precision floating-point)
pi四字(quadword)MMX 技术寄存器(例如:mm0)。
ps128 位或 256 位打包的单精度浮点数据(packed single-precision floating-point)
q四字(quadword),与操作数大小属性无关。
qq双四字(Quad-Quadword,256 位),与操作数大小属性无关。
s伪描述符(pseudo-descriptor),长度为6 字节或 10 字节
sd128 位双精度浮点向量中的标量元素(scalar double-precision)
ss128 位单精度浮点向量中的标量元素(scalar single-precision)
si双字整数寄存器(例如:eax)。
v字 / 双字 / 四字(64 位模式),取决于操作数大小属性。
w字(word),与操作数大小属性无关。
x根据操作数大小属性,表示dqqq
y双字 / 四字(64 位模式),取决于操作数大小属性。
z当操作数大小为16 位时表示word;当操作数大小为32 位或 64 位时表示doubleword

A.2.3 寄存器代码(Register Codes)

当某条指令要求使用特定寄存器作为操作数时,寄存器会直接以名称标识
(例如:AXCLESI)。
寄存器名称本身就表明了该寄存器的位宽是64 位、32 位、16 位还是 8 位

当寄存器的位宽**取决于操作数大小属性(operand-size attribute)**时,会使用
eXXrXX形式的寄存器标识符:

  • eXX:用于16 位或 32 位两种可能的情况
  • rXX:用于16 位、32 位或 64 位三种可能的情况

例如:

  • eAX

    • 操作数大小为 16 位 → 使用AX
    • 操作数大小为 32 位 → 使用EAX
  • rAX

    • 可能表示AXEAXRAX(取决于操作数大小属性)

当使用REX.B 位来修改操作码中reg 字段所指定的寄存器时,
会在寄存器名称后面加上“/x”,以表示存在额外的寄存器可能性

例如:

  • rCX/r9
    表示该寄存器既可能是rCX,也可能是r9

需要注意的是:
在这种情况下,r9的位宽同样由操作数大小属性决定,
其规则与rCX完全一致。


A.2.4 一字节、两字节和三字节操作码的查找示例

(Opcode Look-up Examples for One, Two, and Three-Byte Opcodes)

本节通过示例说明如何使用操作码映射表来查找指令操作码。

A.2.4.1 一字节操作码指令(One-Byte Opcode Instructions)

一字节操作码的操作码映射表见表 A-2
该表按照以下方式组织:

  • 行(row):操作码十六进制值的低 4 位
  • 列(column):操作码十六进制值的高 4 位

操作码表中的每一个表项,属于以下两种类型之一:

  • 使用A.2 节中定义的记号表示的指令助记符及其操作数类型
  • 用作**指令前缀(instruction prefix)**的操作码

一字节操作码后续字节的解释规则

对于操作码映射表中对应具体指令的表项,主操作码后续字节的解释规则属于以下几种情况之一:

  • 需要 ModR/M 字节
    ModR/M 字节按照A.1 节以及
    《Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 2A》
    第 2 章Instruction Format中定义的规则进行解释。
    操作数类型使用A.2 节中定义的记号。

  • 需要 ModR/M 字节,且 reg 字段作为操作码扩展
    此时 ModR/M 字节中的reg/opcode 字段用于区分具体指令。
    解释该 ModR/M 字节时应使用表 A-6

  • ModR/M 字节的使用是保留或未定义的
    该情况适用于:

    • 表示指令前缀的表项
    • 不带操作数、且不使用 ModR/M 的指令
      (例如:60HPUSHA06HPUSH ES

示例 A-1:一字节操作码的查找示例

(Look-up Example for 1-Byte Opcodes)

给定操作码:

030500000000

这是一个ADD指令,其解释过程如下(使用表 A-2):

  1. 定位操作码

    • 操作码的第一个十六进制数字0→ 表示表中的
    • 第二个十六进制数字3→ 表示表中的

    由此定位到一个ADD 指令(两个操作数)

  2. 解析操作数类型

    • 第一个操作数类型为Gv
      → 表示一个通用寄存器,其大小为word 或 doubleword,取决于操作数大小属性。
    • 第二个操作数类型为Ev
      → 表示后面跟随一个ModR/M 字节,该字节指定操作数是:
      • 一个 word / doubleword 通用寄存器,或
      • 一个内存操作数。
  3. 解析 ModR/M 字节

    • ModR/M 字节为05H
      → 表示后面跟随一个32 位位移量00000000H)。
    • ModR/M 字节中的 **reg/opcode 字段(位 3–5)**为000
      → 指定寄存器为EAX

最终,该操作码对应的指令为:

ADD EAX,mem_op

其中,内存操作数mem_op的偏移量为:

00000000H

说明:Group 指令

部分一字节和两字节操作码在操作码表中指向一个组号(Group Number)
(在操作码映射表中以阴影单元格表示)。

组号表示:

该指令使用ModR/M 字节中的 reg/opcode 位作为操作码扩展
用于区分同一主操作码下的不同指令。

有关详细说明,请参见A.4 节

A.2.4.2 两字节操作码指令(Two-Byte Opcode Instructions)

A-3给出了两字节操作码映射表,该表中包含的主操作码可能是:

  • 2 字节长度,或
  • 3 字节长度

两字节长度的操作码

长度为2 字节的主操作码以转义操作码0FH开头。

  • 使用第二个操作码字节的:
    • 高 4 位 → 表示表中的
    • 低 4 位 → 表示表中的
  • 由此在表A-3中定位对应的指令。

三字节长度(使用 0FH)的操作码

某些被归类在两字节 opcode 表中的操作码,实际上是3 字节长度,其形式为:

[mandatory prefix]+0FH+opcode

其中 mandatory prefix 可能是:

  • 66H
  • F2H
  • F3H

此时:

  • 使用第三个字节的高 4 位和低 4 位
  • 在表A-3中索引行和列

⚠️ 例外情况:
如果第二个操作码字节是38H3AH
则该指令属于三字节 opcode 转义指令,应参见A.2.4.3


两字节操作码后续字节的解释规则

对于操作码映射表中的每一个表项,主操作码之后的字节解释规则属于以下情况之一:

  • 需要 ModR/M 字节
    ModR/M 字节按照A.1 节以及
    《Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 2A》
    第 2 章Instruction Format的规则进行解析。
    操作数类型使用A.2 节中的记号。

  • 需要 ModR/M 字节,且 reg 字段作为操作码扩展
    此时 ModR/M 字节中的reg/opcode 字段用于区分具体指令,
    解释应参考表 A-6

  • ModR/M 字节的使用是保留或未定义的
    该情况适用于:

    • 使用 ModR/M 编码、但没有操作数的指令
      (例如:0F77HEMMS

示例 A-2:两字节操作码查找示例

(Look-up Example for 2-Byte Opcodes)

给定操作码:

0FA4050000000003

使用表A-3SHLD指令进行查找与解析:

  1. 定位操作码

    • 行:A
    • 列:4

    表明该指令是SHLD,操作数类型为Ev, Gv, Ib

  2. 解析操作数

    • Ev:ModR/M 字节指定的 word 或 doubleword 操作数
    • Gv:ModR/M 字节中的 reg 字段指定一个通用寄存器
    • Ib:紧随其后的一个立即数字节
  3. 解析 ModR/M 字节

    • ModR/M =05H
    • modr/m表示:
      • 使用32 位位移来定位第一个内存操作数
    • reg字段指定第二个操作数为EAX
  4. 解析后续字节

    • 接下来的00000000H:目的操作数的 32 位内存位移
    • 最后一个字节03H:移位次数的立即数

最终,该操作码表示的指令为:

SHLD DS:00000000H,EAX,3

A.2.4.3 三字节操作码指令(Three-Byte Opcode Instructions)

A-4表 A-5给出了三字节操作码映射表
这些表中包含的主操作码可能是:

  • 3 字节长度
  • 4 字节长度

三字节长度的操作码

长度为3 字节的主操作码以以下双转义字节开头之一:

  • 0F38H
  • 0F3AH

此时:

  • 使用第三个操作码字节的高 4 位和低 4 位
  • 在表A-4A-5中索引行和列

四字节长度的操作码

长度为4 字节的主操作码形式为:

[mandatory prefix]+0F38H/0F3AH+opcode

其中 mandatory prefix 可以是:

  • 66H
  • F2H
  • F3H

此时:

  • 使用第四个字节的高 4 位和低 4 位
  • 在表A-4A-5中索引行和列

三字节操作码后续字节的解释规则

对于操作码映射表中的每一个表项:

  • 必须存在 ModR/M 字节
  • ModR/M 的解释规则与A.1 节以及
    Volume 2A 的Instruction Format完全一致
  • 操作数类型仍然使用A.2 节中的记号

示例 A-3:三字节操作码查找示例

(Look-up Example for 3-Byte Opcodes)

给定操作码:

660F3A0FC108

使用表A-5解析PALIGNR指令:

  1. 前缀与表选择

    • 66H:操作数大小前缀
    • 0F 3A:表示使用表 A-5
  2. 定位操作码

    • 行:0
    • 列:F

    表明该指令为PALIGNR,操作数类型为Vdq, Wdq, Ib

  3. 解析操作数

    • Vdq:ModR/M 的 reg 字段选择一个128 位 XMM 寄存器
    • Wdq:ModR/M 的 R/M 字段选择一个128 位 XMM 寄存器或内存操作数
    • Ib:紧随其后的立即数字节
  4. 解析 ModR/M 字节

    • ModR/M =C1H
    • reg→ 指定第一个操作数为XMM0
    • mod+r/m→ 指定第二个操作数为XMM1
  5. 解析立即数

    • 最后一个字节08H:立即数

最终,该操作码表示的指令为:

PALIGNR XMM0,XMM1,8

A.2.4.4 VEX 前缀指令(VEX Prefix Instructions)

包含VEX 前缀的指令,是在两字节和三字节操作码映射表的基础上进行组织的,
其对应关系由VEX.mmmmm 字段所隐含的转义操作码决定:

  • mmmm = 00001→ 隐含0F
  • mmmm = 00010→ 隐含0F38H
  • mmmm = 00011→ 隐含0F3AH

因此,VEX 编码指令在 opcode 表中的定位方式,与非 VEX 编码指令是类似的:
每个表项仍然基于 opcode 字节的值进行索引


VEX 前缀的功能位

VEX 前缀包含多个比特字段,用于编码以下信息:

  • 隐含的前缀功能(VEX.pp)
    • 对应传统前缀:66HF2HF3H
  • 操作数大小 / opcode 相关信息(VEX.L)
    • 用于区分128 位256 位向量操作

有关 VEX 前缀各字段的详细说明,请参见第 4 章


VEX / 非 VEX 指令在 opcode 表中的表示方式

操作码表A-2 到 A-6中同时包含:

  • 带 VEX 前缀的指令
  • 不带 VEX 前缀的指令

许多表项只列出一次,但实际上同时代表:

  • VEX 形式
  • 非 VEX 形式

其区分规则如下:

  • 存在 VEX 前缀时

    • 所有操作数均有效
    • 指令助记符通常以前缀v开头
      (例如:VMOVUPD
  • 不存在 VEX 前缀时

    • VEX.vvvv 操作数不可用
    • 指令助记符中的v前缀被省略
      (例如:MOVUPD

仅存在于 VEX 形式的指令

有少量指令只存在 VEX 编码形式
这些指令在操作码表中会用上标 “v”进行标记。


VEX 指令的操作数大小判定

VEX 前缀指令的操作数大小,可通过操作数类型代码(operand type code)来判断:

  • dq→ 128 位向量
  • qq→ 256 位向量
  • x→ 支持 128 位或 256 位
    • 具体大小由VEX.L 位决定

例如:

VMOVUPD Vx,Wx

表示:

  • VEX.L = 0→ 使用128 位
  • VEX.L = 1→ 使用256 位

两种形式均被该指令支持。

A.2.5 操作码表中使用的上标说明

(Superscripts Utilized in Opcode Tables)

A-1给出了针对某些特殊编码情况的说明。
这些说明在后续的操作码映射表中通过**上标(superscript)**进行标注。
在操作码表中,灰色单元格表示指令分组(instruction groupings)。


表 A-1:操作码表中使用的上标含义

上标符号含义说明
1AModR/M 字节的第 5、4、3 位(即reg/opcode字段)用作操作码扩展
参见A.4 节《一字节与两字节操作码的操作码扩展》
1B当需要刻意触发非法操作码异常(#UD)时,应使用:
0F 0BUD2指令)或0F B9H操作码。
1C某些指令共用同一个两字节操作码
当指令存在变体,或同一操作码对应多条不同指令时,
需通过ModR/M 字节来区分具体指令。
有关用于区分指令的 ModR/M 取值,请参见表 A-6
i64该指令在64 位模式非法或不可编码
注意:40H–4FH(单字节INC/DEC)在 64 位模式下会被解释为REX 前缀组合
在 64 位模式下应使用FE / FF(Group 4 和 Group 5)来实现INC/DEC
o64该指令仅在 64 位模式下可用。
d6464 位模式下,该指令默认使用 64 位操作数大小,且无法编码为 32 位操作数大小
f6464 位模式下,该指令的操作数大小被强制为 64 位
任何试图改变操作数大小的前缀,在 64 位模式下都会被忽略。
v该指令仅存在 VEX 形式,不存在传统的 SSE(legacy SSE)形式。
v1该指令仅存在 VEX128 与 SSE 形式,不存在 VEX256 形式。
当无法仅通过数据大小推断这一点时,会使用该上标进行说明。

A.3 一字节、两字节和三字节操作码映射表

(ONE, TWO, AND THREE-BYTE OPCODE MAPS)

一字节、两字节以及三字节操作码的映射表,见下文中的表 A-2 至 表 A-5

这些操作码表采用多页形式进行展示。
为了方便查找,在逻辑上具有连续关系的行与列,会被安排在相对的页面上,以减少查表时的翻页成本。

需要注意的是:

  • 各个表格页面中不会重复显示表注(footnotes)
  • 每一张表对应的完整表注,统一放置在该表的最后一页

因此,在查阅操作码映射表时,
如果遇到上标、分组说明或特殊限制条件,应当查看该表最后一页的表注说明

Table A-2

注释(NOTES)

  • 所有操作码映射表中的空白单元均为保留项(reserved)不得使用
  • 不要依赖任何**未定义(undefined)保留(reserved)**位置的行为。
Table A-3

注释(NOTES)

  • 所有操作码映射表中的空白项均为保留(reserved)不得使用
  • 不要依赖任何**未定义(undefined)保留(reserved)**位置的行为。
Table A-4

注释(NOTES)
  • 所有操作码映射表中的空白项均为保留(reserved)不得使用
  • 不要依赖任何**未定义(undefined)保留(reserved)**位置的行为。
Table A-5

注释(NOTES)
  • 所有操作码映射表中的空白项均为保留(reserved)不得使用
  • 不要依赖任何**未定义(undefined)保留(reserved)**位置的行为。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1215345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

https 证书 生成安装笔记

Windows 第一步:获取 OpenSSL for Windows https://slproweb.com/download/Win64OpenSSL-3_6_0.exe 你可以从以下两个可靠的官方渠道选择其一进行下载: 官方二进制发行版:访问 OpenSSL 维基的二进制分发页,从列表中选择一个提供…

半导体企业数字化转型技术方案:SAP S/4HANA 私有云如何打通研产供销财全链路?

目录 一、企业概况:科创板半导体热电技术核心企业 二、转型挑战:科创板上市半导体企业的典型数字化难题 三、解决方案:SAP S/4HANA 私有云的精准匹配 四、实施优势:工博科技的行业经验与服务能力 五、项目成效:运…

SAP ERP 公有云 AI / 机器学习落地指南:技术架构、业务场景与实施路径

目录 一、SAP ERP 公有云的 AI 能力体系 二、SAP ERP 公有云中 AI 的典型业务应用场景 三、生成式 AI Joule 如何改变ERP 使用方式? 四、企业如何落地SAP公有云AI?三步实施路径 五、哪些企业最适合部署SAP ERP公有云 AI? 六、选择专业…

一篇文章讲清楚:中转API如何用Python调用ChatGPT

你是否遇到过这样的场景? 想把 ChatGPT 接入自己的应用,却被模型限制、价格波动、接口差异搞得一头雾水; 刚写好的代码,换一个模型就要重构一遍; 好不容易跑通了,又发现前端、后端、流式输出全都要重新适配…

智能井盖安全监测系统的设计与实现

目录智能井盖安全监测系统的设计原理系统硬件组成软件架构设计关键技术实现典型应用场景系统优势特点源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!智能井盖安全监测系统的设计原理 智能井盖安全监测系统通过物联网技术实时监控井盖状…

深度测评9个论文写作工具,自考学生一键生成论文工具推荐!

深度测评9个论文写作工具,自考学生一键生成论文工具推荐! 自考论文写作的革新之路 随着人工智能技术的飞速发展,越来越多的学生开始借助AI工具来提升论文写作效率。尤其是在自考群体中,面对繁重的学习任务和严格的论文要求&#x…

【节点】[NormalVector节点]原理解析与实际应用

在Unity的Shader Graph中,NormalVector节点是一个基础且重要的工具,它允许着色器访问网格的法线矢量信息。法线矢量在计算机图形学中扮演着关键角色,它定义了表面的朝向,是光照计算【Unity Shader Graph 使用与特效…

我在运动-轨迹查看器

我在运动-轨迹查看器我在运动-轨迹查看器v0.28 我在运动-轨迹查看器 使用帮助 功能: 导入运动、旅行走过的轨迹,在地图上动画真实还原 基本功能自定义动画标记、支持时区偏移时间、轨迹暂停模式 打开轨迹文件: 支持 K…

我在这儿--给照片加定位

我在这儿--给照片加定位我在这儿--给照片加定位 v0.21 增加exiftool及高德地图API批量添加水印 我在这儿--给照片加定位 使用说明这是《我在哪儿--照片定位查看助手》的同门兄弟,专门给没有GPS的照片、图片添加定位信…

2026年做得好的上海花旗大厦广告代理公司联系方式,上海外滩广告/电视台广告/公交广告,户外led大屏广告公司推荐

随着城市商业空间升级与品牌传播需求多元化,户外LED大屏广告凭借高曝光、强互动、精准触达等特性,成为品牌抢占核心商圈流量、塑造高端形象的关键载体。上海作为国际消费中心城市,花旗大厦等标志性建筑周边的大屏资…

如何在Azure Pipeline中使用PowerShell从OneDrive for Business下载指定文件

最近在配置AzureDevOps Pipeline的时候需要在执行任务之前下载一个cli工具,但是由于工具的下载服务器速度不稳定,有时候会造成Pipeline执行速度过慢导致整个流水线超时, 这时我想到可以把文件上传到OneDrive for Bu…

YOLOv26自行车部件检测识别系统实现

1. YOLOv26自行车部件检测识别系统实现 1.1. 系统概述 近年来,随着智能交通和城市共享单车系统的快速发展,自行车部件检测与识别技术在车辆管理、故障检测和维护保养等方面发挥着越来越重要的作用。YOLOv26作为一种先进的实时目标检测算法,…

35.LRU 缓存

面试题 16.25. LRU 缓存 设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近…

初学者使用 docker 快速体验 TDengine 功能

TDengine Docker 初学者完整指南 什么是 TDengine? TDengine 是一款专为物联网、工业互联网等场景设计的高性能时序数据库(Time-Series Database, TSDB)。它能够高效地处理海量时序数据的写入、存储和查询,广泛应用于智能制造、…

【LeetCode】四数之和 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

我在哪儿-- 照片定位查看助手

我在哪儿-- 照片定位查看助手我在哪儿-- 照片定位查看助手 功能:查看图片和缩略图 自动提取图片GPS信息 自动显示地理位置信息 在百度地图、高德地图和谷歌地图中查看位置使用说明:文件菜单:打开图片: 选择单个图片文件…

2026年企业AI获客必看:GEO服务商选型权威指南

随着生成式AI的全面普及,用户信息获取方式正经历历史性迁移。截至2026年初,国内主流AI平台日活跃用户已突破5000万,其中DeepSeek DAU超2000万,豆包MAU近6000万。据艾瑞咨询预测,2026年AI搜索将承接30%以上的商业查…

LoRA微调target module设置

目录原则1️⃣ 注意力 Q/K/V2️⃣ FFN(前馈层)target modules 最佳组合Q/V + 顶层 2~4 层 FFN 配置一、先给你一个“能直接用”的结论版本(以 Qwen / LLaMA 系结构为例)1️⃣ Q / V 的 target modules(必选)2️…

Claude Skills 保姆级教程:无脑照做就能用出效果

大家好,我是六哥。 Claude Skills 我也是上周一才知道有这么个东西,具体是什么完全没概念,想想还是自己知道的太晚了。 但说实话,这玩意成功的引起了我的好奇心,所以就有了这篇文章! 没有所谓的方法论和废话,下…

人工智能之核心技术 深度学习 第一章 神经网络基础

人工智能之核心技术 深度学习 第一章 神经网络基础—公式关注公众号 文章目录 人工智能之核心技术 深度学习一、感知器模型1.1 线性感知器(Perceptron)1.2 多层感知器(MLP, Multi-Layer Perceptron) 二、激活函数常见激活函数对比…