简介本资源是《微型计算机原理与接口技术》尹建华编著配套习题的完整参考答案面向高校计算机、电子、自动化等专业本科生及考研复习者解决课后习题无标准解析、核心概念理解困难、数制转换与汇编指令实践薄弱等典型学习痛点。资源为单文件PDF大小仅23KB内容覆盖全书六章重点第一章聚焦二进制/十六进制/BCD码转换、原反补码计算与溢出判断第二章详解8086存储器组织与总线周期含等待/空闲周期第三章系统梳理寄存器寻址、相对基址变址等八类寻址方式辨析第四至六章深入MOV/XOR/SAL等指令应用、排序程序设计、存储器译码扩展及I/O端口编程。已有673人学习下载答案步骤清晰、推导严谨含大量手写风格演算过程与易错点标注可直接用于作业核对、考前冲刺与原理-代码联动理解。1. 这不是“背公式”的数学课而是让你看懂电脑怎么“听懂人话”的第一把钥匙你有没有好奇过键盘按下一个“1”屏幕为什么就跳出个“1”鼠标点一下程序怎么就知道该放大还是保存这些动作背后没有魔法只有一套被设计得极其精密、又必须被人类“翻译”出来的底层语言——微型计算机原理与接口技术。它不是教你怎么用电脑而是带你掀开机箱盖子看清CPU怎么数数、内存怎么记地址、外设怎么“敲门”才能被CPU听见。尹建华老师这本教材就像一位不说话但手把手带你搭积木的老师第一章教你把十进制数字“翻译”成电脑能存的二进制比如156D 10011100B第二章告诉你CPU复位后第一眼看到的地址是0FFFF0H第三章开始让你亲手写MOV AX, 0让寄存器清零……这份《习题答案.pdf》就是你搭完第一块积木后立刻能对照着检查“我拧对螺丝了吗”的那张校准图。它专为零基础新手准备——不需要你先会汇编不需要你拆过主板只要你愿意从“156D 10011100B”这个等式开始亲手把抽象符号变成可验证的动作。如果你曾对着“原码/反码/补码”发懵或在“段基址:偏移地址物理地址”这行字前卡住超过三分钟这份答案就是为你写的“后悔药”它不讲大道理只告诉你每一步算什么、为什么这么算、错在哪一行。2. 先搞懂一个概念所有计算本质都是“数数”和“找位置”微型计算机再复杂干的也就两件事存数和找数。而“数”怎么存、“位置”怎么找全靠一套统一的规则。这份习题答案的第一章就是帮你把这套规则从“天书”变成“家常话”。2.1 进制转换不是考试陷阱是电脑的“母语发音表”电脑只认识0和1但它得跟人类打交道。人类习惯十进制逢十进一电脑就得学会“翻译”。答案里出现的156D 10011100B 9CH就是最典型的三语对照156DD代表Decimal十进制这是你日常用的数字10011100BB代表Binary二进制这是CPU真正存储和运算的形式9CHH代表Hexadecimal十六进制这是人类给二进制起的“昵称”——因为每4位二进制刚好对应1位十六进制0000→0, 1111→F写起来比一长串01短得多也更不容易看错。提示别死记硬背换算口诀。记住一个核心除2取余法。比如把156转二进制156 ÷ 2 78 余 0最低位78 ÷ 2 39 余 039 ÷ 2 19 余 119 ÷ 2 9 余 19 ÷ 2 4 余 14 ÷ 2 2 余 02 ÷ 2 1 余 01 ÷ 2 0 余 1最高位把余数从下往上写10011100B。这就是答案里那个等式的来路。2.2 带小数的转换重点在“乘2取整”不是“除2取余”整数部分用“除2取余”小数部分恰恰相反乘2取整。看答案里的0.675D 0.1011B0.675 × 2 1.35 → 取整数部分1小数点后第一位0.35 × 2 0.7 → 取整数部分0第二位0.7 × 2 1.4 → 取整数部分1第三位0.4 × 2 0.8 → 取整数部分0第四位0.8 × 2 1.6 → 取整数部分1第五位但答案只写了4位说明四舍五入或截断所以是0.1010...B答案写0.1011B是因为继续算下去0.6×21.2→10.2×20.4→00.4×20.8→00.8×21.6→1… 实际上0.675的二进制是无限循环小数0.1010110011001100...0.1011B是四舍五入到4位的结果0.1011B 0.6875D比0.675D略大。这解释了为什么答案里写的是0.1011B而不是更长的串——它告诉你精度是可控的也是有代价的。2.3 为什么需要原码、反码、补码——解决“负数怎么存”的千年难题电脑的寄存器只有0和1没有“-”号。怎么表示-1最直觉的想法是最高位当符号位0正1负剩下位存绝对值。这就是原码如-1的8位原码是10000001B。但问题来了1 (-1)应该等于0可00000001B 10000001B 10000010B这结果是-2不是0于是有了反码正数同原码负数是符号位不变其余位取反。-1的反码是11111110B。再算1 (-1)00000001B 11111110B 11111111B这结果是-0反码里有0和-0还是不对。最后是补码正数同原码负数是反码加1。-1的补码是11111111B。00000001B 11111111B 00000000B最高位溢出丢弃完美等于0答案里-128的补码是10000000B这就是8位补码能表示的最小数-128 ~ 127。它之所以能多表示一个负数正是因为补码把10000000B这个“原码/反码无法合理解释”的编码明确赋予了-128的含义。补码不是数学发明是硬件工程师为让加法电路能同时处理正负数而做的最优妥协。2.4 地址怎么算段基址和偏移地址就是“楼号房间号”CPU要读内存里的一个字节得知道它的“门牌号”。但8086 CPU的地址总线是20位能寻址1MB空间00000H ~ FFFFFH而它的寄存器只有16位存不下20位地址。怎么办分两半存段基址16位和偏移地址16位。物理地址 段基址 × 16 偏移地址 段基址左移4位 偏移地址。答案第二章第6题1230H : 0045H的物理地址 1230H 4 0045H 12300H 0045H 12345H。1000H : 2345H10000H 2345H 12345H。看两个完全不同的“段:偏移”组合算出来是同一个物理地址12345H。这就像“中关村大厦3层305室”和“海淀区知春路100号3层305室”地址不同但指向同一个房间。段地址不是固定不变的它是CPU为了管理大内存而设计的灵活“分区”机制。2.5 避坑进制与编码的5个新手高频翻车点新手在做第一章习题时最容易在以下5个地方栽跟头每一条都来自真实血泪经验现象把79D算成1001111B但答案写1001111B少了一个1原因漏掉了最高位。79 ÷ 2 39余139÷219余119÷29余19÷24余14÷22余02÷21余01÷20余1 → 从下往上是1001111B7位但8位寄存器里要补前导零写成01001111B。答案里4FH是十六进制4F转二进制是01001111B和01001111B一致。关键答案给的是标准形式不是最简形式寄存器宽度决定了位数。现象0.675D 0.1011B但自己算出来是0.1010B纠结哪个对原因二进制小数转换存在精度损失。0.1011B 0.6875D0.1010B 0.625D而0.675D介于两者之间。答案选0.1011B是四舍五入0.675离0.6875更近。关键小数转换永远有误差题目要求几位就取几位不必追求绝对精确。现象-128的原码写成10000000B但答案写1000000010000000B16位原因题目没说位宽答案里-128出现在8位补码讨论中8位补码范围-128~127所以-128的8位补码是10000000B。但后面-128的原码写成1000000010000000B这是16位原码符号位15位绝对值。关键原/反/补码的位数必须和题目上下文一致同一题里可能混用不同位宽要看清题干。现象37.164D转二进制小数部分算到0.0011B就停了但答案写0.0011B怀疑自己漏了原因0.164D转二进制0.164×20.328→00.328×20.656→00.656×21.312→10.312×20.624→00.624×21.248→1… 所以是0.00101...B。答案0.0011B是四舍五入到4位0.0011B0.1875D比0.164D略大。关键带小数的转换答案给的通常是四舍五入后的近似值不是无限展开。现象151作为无符号数答案写151作为符号数写-105原因这是8位数的歧义151的二进制是10010111B。如果当无符号数就是151如果当有符号数补码最高位1表示负数其绝对值是01101001B取反加1 105所以是-105。关键“151”本身只是个十进制数它在计算机里存成什么取决于你把它当无符号还是有符号来解读。3. 别急着写代码先学会“指挥CPU”指令与寻址方式的实战逻辑第三章的答案表面是判断MOV AX, [BXSI]是什么寻址方式实则是教你如何向CPU下达一条清晰、无歧义的指令。就像指挥一个只懂简单动词的机器人“去取地址→ 拿读数据→ 放存到AX”。理解这个过程比死记“基址变址寻址”这个词重要一百倍。3.1 寻址方式的本质CPU找数据的“导航地图”CPU执行MOV AX, [BXSI]时脑子里在跑一个极简脚本看操作数[BXSI]——方括号表示“我要的是这个地址里的内容”不是BX或SI本身的值算地址BX寄存器里存着一个数比如1234HSI里存着另一个数比如0010H把它们加起来1234H 0010H 1244H去取数拿着1244H这个地址到内存里找到那个位置把里面2个字节一个字的数据读出来放目标把读到的数据放进AX寄存器。这就是基址变址寻址。BX是“基址”像大楼的楼号SI是“变址”像楼层里的房间号加起来才是完整门牌。答案里第1题⑶的相对基址变址寻址就是在BXSI基础上再加一个常数比如[BXSI10H]相当于“楼号房间号门牌号”。所有寻址方式都是在回答一个问题CPU你到底要去哪拿这个数3.2 为什么MOV AX, 0和XOR AX, AX都能清零——理解指令的“副作用”第三章第6题答案给了两种清零方法⑴ MOV AX, 0 ⑵ XOR AX, AXMOV AX, 0直白把0搬进AX。XOR AX, AX玄学AX和自己异或。异或规则0^00,1^10, 所以任何数和自己异或都等于0。XOR AX, AX执行后AX一定为0。但为什么老程序员偏爱XOR因为它不改变标志位中的CF进位标志和OF溢出标志而MOV不碰任何标志位。更重要的是XOR AX, AX通常比MOV AX, 0生成的机器码更短2字节 vs 3字节执行更快。这不是炫技是在资源内存、速度极度受限的底层世界里一种精打细算的生存智慧。3.3 看懂一段排序代码从CMP到XCHG的完整控制流第四章第5题答案是一个冒泡排序片段它完美展示了指令如何协同工作MOV AL, [SI] ; 把第一个数放进AL INC SI ; SI指针移到第二个数 MOV BL, [SI] ; 把第二个数放进BL INC SI ; SI指针移到第三个数 MOV CL, [SI] ; 把第三个数放进CL CMP AL, BL ; 比较AL和BL第一个和第二个 JB L1 ; 如果AL BL跳到L1不用交换 XCHG AL, BL ; 否则交换AL和BL让小的在前 L1: CMP AL, CL ; 再比较AL现在是前两个中较小的和CL第三个 JB L2 ; 如果AL CL跳L2 XCHG AL, CL ; 否则交换AL现在是三个数中最小的 L2: CMP BL, CL ; 最后比较BL和CL剩下两个 JB L3 ; 如果BL CL跳L3 XCHG BL, CL ; 否则交换BL和CL就有序了 L3: MOV DI, OFFSET RESULT ; 把结果存到RESULT地址 MOV [DI], AL ; 存最小的 INC DI MOV [DI], BL ; 存中间的 INC DI MOV [DI], CL ; 存最大的这段代码没用循环是手动展开的3个数排序。关键在CMP比较和条件跳转JBJump if Below即无符号小于。CMP AL, BL实际是做AL - BL但不保存结果只设置标志位比如ZF零标志、CF进位标志。JB就去看CF如果AL BL无符号减法会产生借位CF1就跳否则CF0不跳执行后面的XCHG。CPU的“智能”就藏在这些标志位和跳转指令的配合里——它不思考只机械地响应信号。3.4 避坑指令与寻址的5个致命误解刚接触汇编的新手常因对指令行为理解偏差而写出“看似正确、实则崩溃”的代码现象MOV [SI], AX报错“operand must have size”或者运行出错。原因[SI]只是一个地址CPU不知道你要存1个字节byte还是1个字word。AX是16位寄存器必须明确告诉CPU“我要存一个字”。正确写法是MOV WORD PTR [SI], AXWORD PTR是“字类型指针”。关键内存操作数必须显式声明大小寄存器操作数则由寄存器名隐含AXword, ALbyte。现象ADD AX, [BX]执行后AX的值和预期不符查了半天发现BX里是0000H但[BX]地址里存的是乱码。原因BX只是个地址寄存器它指向的内存位置[BX]必须是你之前用MOV或其他指令写入过有效数据的地方。如果BX0[0]是中断向量表起始乱改会死机。关键所有内存访问前提是你“拥有”并“初始化”了那块内存不要假设某个地址天然就有安全数据。现象JZ ZEROJump if Zero没跳但CMP AL, 0后AL确实是0。原因CMP设置标志位但中间插入了其他会改标志位的指令比如MOV BL, AL不会改标志但ADD BL, 1会JZ只看上一条影响标志位的指令这里是ADD的结果。关键条件跳转只依赖最近一次影响标志位的指令CMP之后不能插任何“污染”标志位的指令。现象SAL AX, CL算术左移想乘以4CL2但结果错了。原因SAL是“算术左移”对有符号数安全但若AX里存的是无符号大数如8000H左移2位变成0000H高位溢出丢弃这没问题。但如果误用了SHL逻辑左移效果一样但若用ROL循环左移8000H左移2位变成0002H就完全错了。关键移位指令有5种SAL/SHL, SAR/SHR, ROL/ROR名字差一个字母行为天壤之别必须根据数据是有符号/无符号、是否允许溢出严格选择。现象IN AL, DX从端口读数据但AL总是0或程序卡死。原因IN指令需要外设如键盘控制器准备好数据并通过READY信号通知CPU。如果外设没响应IN会一直等死循环。答案第四章第4题的WAIT循环就是先IN AL, DX读状态端口TEST AL, 80H检查第7位80H10000000B如果为1才表示数据就绪再执行真正的IN。关键I/O操作不是内存操作必须遵循外设的“握手协议”没有等待循环的IN/OUT大概率失败。4. 让电脑“认出”你的硬件存储器与I/O接口的地址规划术第五章开始你正式踏入“硬件世界”。这里没有虚拟内存只有真实的芯片引脚和地址线。答案里那些6116芯片4片、2716芯片4片的计算不是考数学而是在教你如何给每个硬件芯片分配一个独一无二的“身份证号”地址让CPU叫谁谁就应声。4.1 存储器扩展为什么需要“译码”——CPU的地址太宽芯片的地址太窄一个6116芯片是2K×8位2048个字节的RAM。它的地址线只有11根A0-A10只能寻址2048个位置。但8086 CPU的地址总线是20位能管1M空间。怎么让CPU的20位地址精准地“命中”这2048个位置而不误伤隔壁的芯片靠地址译码器。答案第五章第8题解释了两种译码法全译码把CPU除了A0-A10片内地址之外的所有高位地址线A11-A19共9根全部接到译码器输入端。译码器输出一个唯一的片选信号CS只在特定地址范围内有效。比如给第一组6116分配00000H~007FFH那么只有当A19-A11全是0时CS才有效。优点地址唯一、连续、无重叠缺点译码电路复杂需要9输入与门。部分译码只用其中几根高位地址线比如A15,A14,A13去译码。这样00000H和08000H可能都让CS有效因为A15-A13相同导致地址重叠。优点电路简单缺点浪费地址空间可能引发冲突。选择哪种取决于你对可靠性和成本的权衡。4.2 I/O端口地址为什么IN AL, 2F8H能读串口——端口不是内存是独立通道CPU访问内存用地址总线访问外设键盘、串口、打印机用I/O端口地址。8086有独立的I/O地址空间0000H~FFFFH64K个端口用IN/OUT指令访问和内存访问完全隔离。答案第六章第4题WAIT: MOV DX, 101H状态端口IN AL, DXTEST AL, 80HJZ WAIT—— 这是在轮询一个串口的状态寄存器地址101H检查最高位80H是否为1表示数据已准备好。一旦为1就执行MOV DX, 100H数据端口IN AL, DX去读真正的数据。关键每个外设芯片都有自己的“控制端口”和“数据端口”地址由硬件设计者固化。你写的程序必须严格遵循这个地址约定。4.3 中断控制器8259ACPU的“前台接待员”如何登记和分发中断请求当键盘按下、串口收到数据、定时器到点这些事件不能直接冲进CPU说“快理我”得有个“接待员”先登记、排队、按优先级叫号。8259A就是这个接待员。答案第七章第11题ICW112H或16HICW270H。ICW1Initialization Command Word 1是初始化命令字112H00010010B其中D41表示要写ICW4D30表示单片8259AD00表示边沿触发。ICW2初始化命令字2是中断类型码的高5位70H01110000B意味着接在这个8259A上的8个中断请求IRQ0~IRQ7对应的中断类型号是70H~77H即112~119号中断。写ICW1和ICW2就是告诉8259A“我是单片、边沿触发、我的中断号从112开始排”——这是让它上岗的第一步。4.4 并行接口8255A让CPU和LED、开关“对话”的万能转接头8255A是经典的可编程并行接口芯片有3个8位端口A、B、C和1个控制端口。它像一个“翻译官”CPU给它发命令写控制端口它就决定A/B/C端口是输入还是输出然后CPU就能通过读/写A/B/C端口和外部硬件交互。答案第十章第6题MOV AL, 92HOUT PORTC, AL—— 这是往控制端口PORTC写92H10010010B根据8255A的控制字格式这表示端口A为方式0输出端口B为方式0输入端口C高4位为输出低4位为输入。接着MOV AL, 01HOUT PORTC, AL就把PC0端口C的第0位置1去触发ADC0809模数转换器的START信号MOV AL, 00HOUT PORTC, AL再拉低完成一次启动脉冲。8255A的精髓在于同一个芯片通过写不同的控制字就能变身成输入设备、输出设备、甚至握手信号发生器。4.5 避坑硬件接口的5个“一接就崩”瞬间和真实硬件打交道容错率极低一个参数错整个系统就静音现象给6116芯片接地址线A0-A10接对了但A11没接悬空结果内存时好时坏。原因悬空的地址线电平不确定可能是高也可能是低导致片选信号随机有效或无效。关键所有未使用的地址线、数据线、控制线必须明确接高VCC或接低GND绝不能悬空。现象OUT 2F8H, AL向串口发数据但串口没反应用示波器看TX引脚没波形。原因忘了初始化串口芯片如16550的波特率、数据位、停止位。2F8H只是数据端口必须先往2F9H除数锁存器低、2FAH除数锁存器高写入波特率因子再往2FCH线路控制寄存器写03H8位数据、1停止位、无校验。关键I/O端口操作有严格时序数据端口只是“最后一环”前面的初始化寄存器必须先配好。现象8259A初始化后中断服务程序不执行或执行错乱。原因ICW2中断类型码设错了。比如设成08H那么IRQ0就对应中断号8INT 08H但你的中断向量表里08H*420H地址处放的却是别的程序的入口。关键ICW2的值必须和你在内存0000H:0020HINT 08H向量等位置存放的中断服务程序入口地址严格匹配。现象8255A控制字写80H端口A/B/C全设成输入但读PORTA得到的值全是FFH255。原因端口设为输入时外部硬件必须提供确定的电平高或低。如果A端口接的开关没接上拉/下拉电阻引脚悬空读到的就是随机值常为FFH。关键输入端口必须有明确的电平来源输出端口可以驱动LED但输入端口需要外部“推”或“拉”。现象用MOV AL, 5BHOUT 2FBH, AL初始化8250串口但5BH是错误的。原因5BH是01011011B其中D70表示“写除数锁存器低字节”D61表示“允许接收中断”D50表示“允许发送保持寄存器空中断”D41表示“允许接收线路状态中断”D30表示“无奇偶校验”D21表示“1停止位”D1-D011表示“数据位为8位”。这看起来没错但5BH的D70意味着接下来要往2F8H除数锁存器低写波特率因子而2F8H正是数据端口关键写控制字前必须确保DLAB除数锁存器访问位为0否则会误操作数据端口5BH的D70是正确的但新手常混淆5BH和0DH线路控制寄存器。5. 从习题答案到真实项目你的第一个可运行的汇编小程序光看答案还不够得亲手敲一行代码看到它在模拟器里跑起来。下面我们就用答案第四章第9题的“十进制转十六进制显示”思路写一个能在DOSBox里运行的、完整的.asm程序。它不复杂但包含了从数据定义、计算、到屏幕输出的全流程。5.1 第一步环境准备——你需要什么汇编器MASM 5.0经典兼容性好或TASM。下载后解压把ml.exeMicrosoft Macro Assembler或tasm.exe放到系统PATH里。链接器link.exe随MASM提供。调试/运行环境DOSBox免费模拟真实DOS环境。安装后在DOSBox里用mount c c:\myasm把你的代码目录挂载为C盘。编辑器任何纯文本编辑器Notepad、VS Code保存为.asm文件编码选ANSIDOS默认。5.2 第二步抄答案改代码——把习题变成可执行程序答案第四章第9题是将十进制数369转换为十六进制并在屏幕上显示为字符串如171。我们把它扩展成一个完整程序; 文件名: DEC2HEX.ASM ; 功能将立即数369D转换为十六进制字符串171H并在DOS下显示 ; 编译ml /c /Zi dec2hex.asm ; 链接link dec2hex.obj; ; 运行dec2 p a hrefhttps://download.csdn.net/download/m0_62051506/30345897 stylecolor:#ec7500;font-size:14px; 本文还有配套的精品资源点击获取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p
企业数字化 ERP 产品动态
相关推荐
Vue2 视频播放器组件封装:HLS/FLV、清晰度切换与生命周期治理 做 Vue2 项目这几年,视频模块基本是绕不过去的一关。不管是后台管理系统里的课程回放、电商详情页的商品视频,还是监控看板里的实时画面,最后都会落到同一个需求上:在页面里塞一个能播 HLS、能播 FLV、能切清晰度、能记住上次看到… · 2026/11/2 22:33:56
米勒阀门选型与应用全解析:从参数计算到行业实践 1. 美国米勒阀门产品线概述作为全球领先的工业阀门制造商,美国米勒阀门(Miller Valve)拥有超过60年的专业经验,其产品线覆盖了从常规工况到极端环境的全系列解决方案。在石油化工、电力能源、水处理等行业,米勒阀门以其… · 2026/11/2 22:33:56
SpringBoot+JDBC+MySQL源码包:JdbcTemplate避坑 简介:面向Java初学者以及需要快速跑通数据库示例的开发者,这套Spring Boot整合JDBC连接MySQL的完整方案覆盖从环境准备到代码落地的常见环节,适合课程实验、小型项目脚手架及自学练手。压缩包共136个文件、约637.42MB,包含Java源码… · 2026/11/2 22:33:56
手机AI新纪元:MiniCPM-o 4.5全双工实时交互 手机AI新纪元:MiniCPM-o 4.5全双工实时交互
导语:OpenBMB最新发布的MiniCPM-o 4.5模型以90亿参数实现全双工多模态交互,首次将类Gemini 2.5 Flash能力带到移动端,开启手机端实时音视频交互新时代。
行业现状:随着GPT… · 2026/11/3 2:05:20
面试草稿 面试官您好,我叫赵广宁,是河北环境工程学院软件工程专业 26 届本科应届生。在校期间,大一一个月左右考取了驾驶证,我参与过每个学期末的课设,担任过项目组长,负责主要代码任务和答辩ppt过程。我学习并使用过… · 2026/11/3 2:05:20
Harness Engineering(驾驭工程)初识 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 2:05:20
【Ollama】 AMD 显卡安装完整教程(Windows 版) /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 2:05:20
rk添加uboot按键功能 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 2:05:20
【系统架构设计师-案例题-分布式系统设计】24年下半:Redis(1)数据库缓存设计 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 2:04:20
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18