MC9S12XS128汇编指令速查:寄存器、寻址与条件跳转解析
简介这是面向MC9S12XS128微控制器的指令集速查资料专为智能车竞赛选手、嵌入式初学者和汇编编程人员设计。MC9S12XS128由飞思卡尔现NXP生产广泛应用于智能车、工业控制与教学实验掌握其指令集是编写高效汇编代码的基础。文档以字母检索表排列从ABA加法、ADCA带进位加法到BCC、BCS等条件转移再到BCLR位清零、BSR子程序调用、CMPA比较、CLRA清零、DBEQ循环跳转等常用指令逐一解释并标明操作数格式与执行结果覆盖算术逻辑、位操作、跳转分支、堆栈操作、中断控制等多个功能类别适合在开发中快速查证或系统学习。整个资源包仅含1个docx文档压缩后约30KB内容精炼便于收藏与打印。目前已有299人学习浏览适合需要系统掌握MC9S12XS128汇编指令或希望在备赛与调试中快速查证的开发者。1. 搞 MC9S12XS128 汇编先把这张指令表吃透做智能车和嵌入式课设的人几乎都绕不开一块 MC9S12XS128。这颗 16 位单片机最劝退的不是外设而是它那套 C28 内核的指令系统一百多条指令助记符长得像双胞胎ABA、ABX、ADDA、ADDB差一个字母就是另一种操作。对着英文手册翻半天在 CodeWarrior 里编译不过或者跑飞了才意识到自己连“带进位加法”和“不带进位加法”都没分清。这份指令集查询表的定位很直接把 MC9S12XS128 的指令按字母序整理成速查手册每条都标了助记符、功能和操作数传递关系适合写底层驱动前快速确认语义、调试时核对标志位影响也适合刚接触 HCS12 汇编的人当字典用。2. 读懂指令表前的基础寄存器模型与操作数传递2.1 A、B、D、X、Y、SP 的配对关系决定你用哪条指令指令表里大量出现“AB—A”这类写法本质是在描述操作数的来源和去向。在 MC9S12XS128 里A 和 B 是两个独立的 8 位累加器但它俩拼在一起组成 16 位的 D 寄存器A 是高字节B 是低字节。X、Y 是两个 16 位变址寄存器SP 是堆栈指针PC 是程序计数器CCR 是条件码寄存器。ADDAA M → AM 是内存单元8 位操作ADDBB M → B8 位操作ADDDA:B M:M1→ A:B16 位操作内存里高字节在前我一般拿到一条指令先做三件事看操作数在内存还是在寄存器里看结果是 8 位还是 16 位看它影响 CCR 里的哪几个标志位。指令表里 ABA、ABX、ABY 这类不带后缀 M 的操作数全在寄存器里ADCA、ADDB、ADDA 这类带 M 的操作数从内存来。搞反了就会踩到寻址方式的坑。2.2 控制流与 CCR 标志位的联动关系条件跳转指令那一大串 BC**、LB**全靠 CCR 寄存器里的五个标志位做判定C进位/借位、Z零、N负、V溢出、I中断屏蔽。比如 BCC 是 C0 就跳BCS 是 C1 就跳一个是“没进位跳”一个是“有进位跳”用于无符号数比较和移位操作的边界判断。BEQ 是 Z1 跳BNE 是 Z0 跳这两个是写循环和判断相等最常用的也是新手最容易把条件写反的一对。注意BGE/BGT/BLE/BLT 这四个是带符号数比较用的看的是 N 与 V 的异或结果BHI/BHS/BLO/BLS 这四个是无符号数比较用的看的是 C 与 Z。你要比较的是int8_t还是uint8_t直接决定选哪组指令选错了结果正好反过来。2.3 指令编码与寻址方式同一助记符后面跟什么操作数查询表里只给了指令语义没展开寻址方式。实际使用中同样的 LDAA 可以针对立即数、直接页、扩展地址、变址等不同寻址方式生成不同机器码。常见做法是在 CodeWarrior 里写成LDAA #$10 ; 立即数寻址把 0x10 装入 A LDAA $10 ; 直接页寻址把地址 0x0010 的内容装入 A LDAA $1000 ; 扩展寻址把 0x1000 的内容装入 A LDAA $1000, X ; X 变址寻址把 (X0x1000) 指向的内容装入 A对于同一个助记符操作数的写法决定了 CPU 用哪种寻址方式执行周期也不一样。如果你在做时间敏感的控制循环比如智能车的转向环能用直接页就别用扩展寻址能立即数就别反复读内存这也是把指令表用熟的进阶意义。3. 算术与逻辑指令分类梳理按功能分组后好记多了3.1 加法减法族进位标志是分水岭加法指令分两拨不带进位ADDA/ADDB/ADDD 和 ABA/ABX/ABY和带进位ADCA/ADCB。带进位的版本会读取当前 CCR 里的 C 标志把上一次运算的进位一起加进去这是实现多字节加法的基础。写 16 位加法要对齐使用比如LDD加ADDD再加STD如果中间要处理进位就要用ADCA把进位链起来。减法这边逻辑类似SBA 是 A - B → ASUBA 是 A - M → ASBCA 是带借位的减法。指令表里 SBA 没有内存操作数操作数在 B 寄存器里这是它和 SUBA 的关键区别。我在调 PID 输出限幅时经常用 SBA 配合 BPL/BMI 判断符号比先比较再跳转少一条指令。指令操作操作数位置影响标志位ABA(A)(B)→A寄存器H,N,Z,V,CADDA(A)(M)→A内存寄存器H,N,Z,V,CADCA(A)(M)C→A内存寄存器CCRH,N,Z,V,CSBA(A)-(B)→A寄存器N,Z,V,CSUBA(A)-(M)→A内存寄存器N,Z,V,CSBCA(A)-(M)-C→A内存寄存器CCRN,Z,V,CADDD(A:B)(M:M1)→A:B16位内存N,Z,V,C3.2 逻辑与位操作族掩码操作与置位清位ANDA/ANDB 常用来做掩码比如只保留低四位ANDA #$0F。ORAA/ORAB 用来置位EORA/EORB 用来翻转特定位。这三个指令的共同特点是能直接改变累加器的值而 BITA/BITB 只做与运算并更新 CCR 标志不写回寄存器专门用来测某一位是不是 1。位操作类还有 BCLR 和 BSET它们是对内存单元直接操作BCLR $1000, $01 ; 把地址 0x1000 的 bit0 清 0 BSET $1000, $01 ; 把地址 0x1000 的 bit0 置 1 BRCLR $1000, $01, LOOP ; 如果 bit00 就跳转到 LOOPBCLR/BSET 在操作端口引脚时非常有用像控制 LED 灯或者电机方向引脚直接写内存位比读改写三步要省指令周期。但要注意它们只能对内存单元操作不能直接作用于累加器和变址寄存器。3.3 移位与乘除法左右移和符号位的坑ASL 是算术左移低位补 0最高位移进 CASR 是算术右移最高位保持不变符号位扩展最低位移进 C。LSL 和 ASL 效果相同LSR 是逻辑右移最高位补 0。做无符号数除以 2 用 LSR做有符号数除以 2 用 ASR这个别混。乘除法指令里MUL 是 8 位乘 8 位结果放进 A:BEMUL 是 16 位乘 16 位结果放进 Y:DIDIV 是 16 位除以 16 位商在 X余数在 D。除法指令有个前置条件被除数必须提前放到寄存器 D 里除数放到 X 里。写除法前忘掉这条结果就是个随机数我在这上面吃过亏。4. 跳转指令与控制流写循环和分支前必看的对照4.1 条件跳转的五个核心标志位查询表里列了十几条条件跳转指令BEQ/BNE、BCC/BCS、BMI/BPL、BVC/BVS、以及带符号的 BGE/BGT/BLE/BLT 和无符号的 BHI/BHS/BLO/BLS。这么多条本质都是对 CCR 五个位的组合判断。我把判定条件按标志位归类Z1 → BEQZ0 → BNEC1 → BCSC0 → BCCN1 → BMIN0 → BPLV1 → BVSV0 → BVC带符号比较BGE 是 N⊕V0BGT 是 Z∨(N⊕V)0BLE 是 Z∨(N⊕V)1BLT 是 N⊕V1无符号比较BHI 是 C∨Z0BHS 是 C0BLO 是 C1BLS 是 C∨Z1带符号和无符号这两组是最容易翻车的。比如 A 里存的是int8_t的 -10xFF内存里是 10x01用 BHI 判断无符号大于会认为 255 1 成立但用 BGT 判断有符号大于-1 1 不成立两个结果完全相反。判断语义用错了程序行为就是玄学。4.2 短跳转与长跳转B** 和 LB** 的覆盖范围B** 系列是短跳转偏移量只有 8 位跳转范围是当前 PC 往后 128 字节往前 127 字节也就是 -128 到 127。LB** 系列是长跳转16 位偏移量能覆盖 64K 地址空间。写循环和分支时跳转距离超过 128 字节编译器会报错解决办法要么手动改成 LBRA/LBEQ要么把代码结构调整让跳转靠近。短跳转适合紧凑循环DBNE一句话就能完成计数器和条件跳转长跳转适合跨函数跳转写大段初始化代码或中断服务程序时用 LBRALDAB #10 ; B 10循环计数 LOOP: JSR DO_STEP ; 调用子程序 DBNE B, LOOP ; B B - 1不为 0 就跳回DBNE 是组合指令减 1 和条件跳转一步完成比 DECB 加 BNE 两条指令省一条循环体越短优势越明显。如果计数器是 16 位就用 DBNE D 或者 DBNE X注意看指令表里 DBNE 支持的操作数范围A、B、D、X、SP 都可以。4.3 子程序调用与返回JSR、BSR、RTS 的栈操作细节JSR 和 BSR 都是调用子程序区别是 JSR 用 16 位绝对地址跳转可以跳到整个 64K 空间的任何位置BSR 用带符号 8 位偏移做相对跳转只能跳到当前指令前后 128 字节内。两者都会把返回地址压栈SP 先减 2然后 PC 当前值存入栈顶。RTS 出栈时就简单了从栈顶弹出两个字节放进 PC。所以写子程序时PSH 和 PUL 必须成对出现进出栈不平衡直接导致 RTS 返回到错误地址程序大概率跑飞。我在调试时遇到“调用子程序后程序跳到 0x0000”的第一反应就是检查有没有多了 PSH 少了 PUL。4.4 中断相关RTI 的恢复顺序不能搞错SWI软中断和硬件中断都会把现场按固定顺序压栈出栈时用 RTI 一次恢复。查询表里把压栈顺序写得很清楚压栈顺序内容1RTN:RTNL返回地址低 16 位2YH:YL3XH:XL4B:A5CCRRTI 出栈顺序和压栈刚好相反先恢复 CCR再恢复 B:A再恢复 X再恢复 Y最后恢复 PC。这意味着如果你在中断服务程序里额外 PSH 了寄存器RTI 之前必须手动 PUL 回来并且要保证在恢复顺序最前面的是 CCR。我写中断服务程序有个原则能不用 PSH/PUL 就不用确实要用就在 RTI 前逐条对照压栈顺序反向弹栈。5. 常见问题与避坑六个最容易翻车的点5.1 现象ABA 和 ADDA 都能“加法”执行结果却对不上原因ABA 的操作数在寄存器 B 里ADDA 的操作数在内存里。查询表里 ABA 的说明是“(A)(B)→A”ADDA 是“(A)(M)→A”拿 ABA 去加内存变量根本没这个操作数。 解决加寄存器用 ABA/ABX/ABY加内存用 ADDA/ADDB/ADDD。看到助记符末尾没有 M 系字母就默认操作数来自寄存器。这个可以从助记符末尾是否带 D 或 A/B 区分。5.2 现象16 位加法结果只有低 8 位对高 8 位丢失原因用了 ADDA 做两个 16 位数相加A 寄存器只有 8 位高字节被丢弃。要对齐用 ADDD。 解决先用 LDD 把第一个数载入 D 寄存器再 ADDD 加第二个 16 位数最后 STD 存出去。如果是超过 16 位的大数加法要从低位开始用 ADCA/ADCB 把进位逐级传递LDD LOW16_A ; 低字载入 D ADDD LOW16_B ; 低字相加产生进位 C STD LOW16_SUM LDAA HIGH16_A ; 高字节载入 A ADCA HIGH16_B ; 带进位相加 STAA HIGH16_SUM5.3 现象用 BHI 比较有符号数大于判断结果不对原因BHI/BHS/BLO/BLS 是无符号数条件跳转只判断 C 和 Z带符号数要用 BGT/BGE/BLT/BLE。 解决判断前先确认数据类型。int8_t或int16_t比较用 BGT/BGE/BLT/BLEuint8_t或uint16_t比较用 BHI/BHS/BLO/BLS。我处理数据手册里的温度值有符号和车速值无符号时会分开写宏避免混用。5.4 现象DBNE 循环次数正好多执行一次或少执行一次原因DBNE 是先减 1 再判断是否为 0如果初值设成循环次数执行 N 次后变成 0 跳出循环这是对的。但如果你在循环体里又 DEC 了同一个计数器或者把初值设成了 N-1就会少执行。 解决计数器初值 期望循环次数。循环体里不要再动计数器要动也换一个寄存器。用 X 做 16 位计数时同理DBNE X 的偏移范围要检查能否覆盖循环体长度。5.5 现象子程序返回后 PC 跳到了奇怪的地方原因典型的是 PSH/PUL 次数不匹配。进入子程序 PSH A、PSH B返回前漏了 PUL B栈顶数据错位RTS 弹出的“返回地址”其实是 B 寄存器的旧值。 解决把 PSH 和 PUL 成对写好再填代码。用编辑器的折叠功能把子程序块折叠起来一眼就能看到每个 PSH 都有对应的 PUL。中断服务程序里则要保证 RTI 前的栈状态和进入时一致额外压栈多少就必须在当前代码路径上全部弹回去。5.6 现象BCLR 想清零累加器编译不过或没效果原因BCLR 只能清内存单位没法直接对 A/B 寄存器的位操作。对累加器清位要用 ANDA/ANDB 加掩码置位用 ORAA/ORAB翻转用 EORA/EORB。 解决代码里写BCLR A, $01这种确实不对。要对 A 的 bit0 清零写成ANDA #$FE。对内存端口比如 PORTB 的某个引脚才用BCLR PORTB, $01。6. 落到实践三段式验证法与随身速查表实操层面我建议把指令学习拆成三步先在 CodeWarrior 里单步跑通一段汇编再对照内存窗口看数据变化最后用 CCR 标志位反推指令行为。比如验证 ABALDAA #$01 ; A 0x01 LDAB #$02 ; B 0x02 ABA ; A 0x03Z0N0C0 NOP单步执行到 ABA 那一行看 A 寄存器变成 0x03CCR 的 Z 位为 0就能确认这条指令语义没记错。验证 ASR 的符号扩展LDAA #$80 ; A 0x80二进制 1000 0000 ASRA ; A 0xC01100 0000最高位保持 1C0 NOP从 0x80 算术后移一位得 0xC0符号位保持了说明 ASR 是正确的算术右移。如果用 LSR0x80 会变成 0x40区别一眼就看出来。最后分享一个小技巧把条件跳转判定表打印出来贴在工位边上。写了三年嵌入式我最后留下的不是完整指令手册而是这张标志位对照表。那个坑我踩过不止一次——比较无符号数用了带符号跳转跑起来完全随机查了两天才发现是 BHI 和 BGT 选错了。从那以后我在工程里加了个注释头把带符号/无符号跳转的选型规则写在 main 文件第一屏每次写比较逻辑强制过一眼无符号大于BHI无符号大于等于BHS无符号小于BLO无符号小于等于BLS有符号大于BGT有符号大于等于BGE有符号小于BLT有符号小于等于BLE等于/不等于BEQ/BNE不区分符号这套查询表配合 CodeWarrior 的单步调试能覆盖日常 80% 的汇编开发场景。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

辟雍匾额考据与礼制建筑象征体系研究

辟雍匾额考据与礼制建筑象征体系研究

1. 辟雍建筑规制与匾额设置考据辟雍作为中国古代最高学府的礼仪建筑,其匾额设置严格遵循礼制规范。根据《清会典》记载,北京国子监辟雍殿内应悬挂"建极绥猷"、"中和位育"等六方御笔匾额,分别对应儒家思想的核心理念。这些…

2026/10/15 9:39:34 阅读更多 →
深入解析Iced框架中的Vector结构体设计与优化

深入解析Iced框架中的Vector结构体设计与优化

1. 项目概述今天我们来深入剖析Iced框架中core库的Vector结构体实现。作为UI框架中的基础数学类型,Vector在布局计算、动画插值、图形变换等场景中扮演着核心角色。通过解析vector.rs源码,我们不仅能理解其设计哲学,更能掌握高性能UI框架的底…

2026/10/15 9:39:34 阅读更多 →
SpringBoot+Vue构建养老院管理系统的实践与优化

SpringBoot+Vue构建养老院管理系统的实践与优化

1. 项目背景与需求分析白龙桥敬老院管理系统是一个面向中小型养老机构的综合性管理平台。随着我国老龄化进程加速,传统手工管理方式已无法满足现代养老机构在入住管理、健康监测、服务记录等方面的需求。这个系统正是为解决以下核心痛点而设计:纸质档案易…

2026/10/15 9:39:34 阅读更多 →

最新新闻

正弦波转方波方案对比:比较器、施密特、运放与专用芯片选型指南

正弦波转方波方案对比:比较器、施密特、运放与专用芯片选型指南

简介:这份PPT资料面向电子工程、测控仪器相关专业的学生与工程师,围绕正弦波转方波这一常见电路设计问题,系统比较了四种实现方案并给出详细电路图。内容以220V/50Hz正弦波转10V/50Hz方波为设计目标,依次讲解由555定时器构成的施密…

2026/10/15 10:14:14 阅读更多 →
无可挑剔执行法:用清单与检查提升工作交付可靠性

无可挑剔执行法:用清单与检查提升工作交付可靠性

1. 项目概述与“impeccable”的重新定义1.1 为什么叫“impeccable”:从词源到执行哲学“Impeccable”这个词,字面意思是“无可挑剔的、完美无瑕的”,但它真正的词源很有意思——拉丁语“peccare”是“犯错”的意思,加上否定前缀“…

2026/10/15 10:14:14 阅读更多 →
SpringBoot整合NapCatQQ实现高效QQ机器人开发

SpringBoot整合NapCatQQ实现高效QQ机器人开发

1. 项目概述:当QQ机器人遇上SpringBoot去年接手公司内部自动化通知系统改造时,我第一次将NapCatQQ与SpringBoot整合。这个组合带来的开发效率提升让我印象深刻——原本需要两周完成的客服机器人原型,用这个方案三天就跑了通。NapCatQQ作为轻量…

2026/10/15 10:14:14 阅读更多 →
从夹逼定理到残差连接:AI模型的边界感、灰度地带与泛化真相

从夹逼定理到残差连接:AI模型的边界感、灰度地带与泛化真相

1. 从夹逼定理说起:为什么AI模型的“边界感”比准确率更重要第一次听到有人把夹逼定理和残差连接放在一起聊,是在一个做数值计算的老哥那里。他当时正在调一个物理仿真模型,发现神经网络在拟合某些函数时,输出值总是会“飘”出理论…

2026/10/15 10:14:14 阅读更多 →
OpenClaw 接入 Qwen 免费层:qwen-portal OAuth 插件启用、设备码认证与模型切换完全指南

OpenClaw 接入 Qwen 免费层:qwen-portal OAuth 插件启用、设备码认证与模型切换完全指南

人工智能大模型LLM 网关AI Agent即时通讯 【免费下载链接】openclaw-zero-token OpenClaw: Use All Major AI Models NO API Token! Claude/ChatGPT/Gemini/DeepSeek/Doubao/Grok/Qwen/Manus/Kimi 项目地址: https://gitcode.com/gh_mirrors/op/openclaw-zero-token…

2026/10/15 10:14:14 阅读更多 →
HDFS面试避坑指南:从NameNode内存到DataNode心跳的实战解析

HDFS面试避坑指南:从NameNode内存到DataNode心跳的实战解析

1. 为什么“HDFS面试基础知识点”这个标题背后藏着一场隐性淘汰赛刚带完一批某高校实验室的分布式系统实训,有个细节让我印象深刻:A同学在模拟面试中被问到“HDFS写入流程里,Client和NameNode交互几次?DataNode之间要不要通信&…

2026/10/15 10:13:13 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →