输入输出技术_接口到中断完全指南


🌈 say-fall:个人主页 🚀 专栏:《手把手教你学会C++》 | 《系统深入Linux操作系统》 | 《数据结构与算法》 | 《小游戏与项目》 💪 格言:做好你自己,才能吸引更多的人,与他们共赢,这才是最好的成长方式。

📝 前言

CPU再强大,也需要和外设打交道------键盘输入、屏幕显示、磁盘读写、网络通信......但CPU的速度是外设的成千上万倍,它们之间怎么"对话"?谁来充当"翻译官"?如果多个外设同时"喊"CPU,CPU该先响应谁?

这些问题的答案都指向一个核心概念------输入输出(I/O)技术。它不仅是微机原理课程的考试重点,更是理解计算机系统如何与外部世界交互的关键。

本文将系统讲解I/O接口原理、简单接口电路设计、四种I/O传输方式、中断技术以及8259A可编程中断控制器的完整知识体系。

通过本文,你将掌握:

技能 应用场景
I/O接口与端口的分类及编址方式 理解CPU与外设通信的基本框架
简单接口电路(三态门/锁存器) 设计基本的输入输出接口
四种I/O传输方式的选择与程序设计 根据外设特点选择合适的传输方式
8086中断系统与中断向量表 编写中断服务程序,处理中断事件
8259A的初始化编程与操作控制 管理多个外设的中断请求

📌 前置知识: 掌握8086指令系统、汇编语言程序设计基础,了解段寄存器和内存寻址。

文章目录

    • [📝 前言](#📝 前言)
    • [一、🔧 I/O接口与端口基础](#一、🔧 I/O接口与端口基础)
      • [1️⃣ 为什么需要I/O接口](#1️⃣ 为什么需要I/O接口)
      • [2️⃣ I/O端口的分类](#2️⃣ I/O端口的分类)
      • [3️⃣ 8088系统I/O总线信号](#3️⃣ 8088系统I/O总线信号)
      • [4️⃣ I/O端口编址方式](#4️⃣ I/O端口编址方式)
      • [5️⃣ I/O地址译码](#5️⃣ I/O地址译码)
    • [二、💡 简单接口电路](#二、💡 简单接口电路)
      • [1️⃣ 输入接口------ 三态门](#1️⃣ 输入接口—— 三态门)
      • [2️⃣ 输出接口------ 锁存器](#2️⃣ 输出接口—— 锁存器)
      • [3️⃣ 典型芯片:74LS373**最常用的简单接口芯片**](#3️⃣ 典型芯片:74LS373最常用的简单接口芯片)
      • [4️⃣ 综合应用:开关控制7段数码管](#4️⃣ 综合应用:开关控制7段数码管)
    • [三、🔄 四种基本输入输出方式](#三、🔄 四种基本输入输出方式)
      • [1️⃣ 无条件传送](#1️⃣ 无条件传送)
      • [2️⃣ 查询式传送(条件传送)](#2️⃣ 查询式传送(条件传送))
      • [3️⃣ 中断控制方式](#3️⃣ 中断控制方式)
      • [4️⃣ DMA方式(直接存储器存取)](#4️⃣ DMA方式(直接存储器存取))
      • [5️⃣ 四种方式综合对比](#5️⃣ 四种方式综合对比)
    • [四、⚡ 中断技术详解](#四、⚡ 中断技术详解)
      • [1️⃣ 中断的基本概念](#1️⃣ 中断的基本概念)
      • [2️⃣ 8088/8086的中断分类](#2️⃣ 8088/8086的中断分类)
      • [3️⃣ 可屏蔽中断的完整响应过程](#3️⃣ 可屏蔽中断的完整响应过程)
      • [4️⃣ 中断向量表](#4️⃣ 中断向量表)
      • [5️⃣ 中断优先级](#5️⃣ 中断优先级)
    • [五、🎛️ 可编程中断控制器8259A](#五、🎛️ 可编程中断控制器8259A)
    • [六、🤔 几个思考题](#六、🤔 几个思考题)
      • [1️⃣ 为什么输入接口需要三态门,输出接口需要锁存器?](#1️⃣ 为什么输入接口需要三态门,输出接口需要锁存器?)
      • [2️⃣ 查询式传送和中断方式各适用于什么场景?](#2️⃣ 查询式传送和中断方式各适用于什么场景?)
      • [3️⃣ 中断向量表中,类型码21H的中断向量存放在哪个地址?](#3️⃣ 中断向量表中,类型码21H的中断向量存放在哪个地址?)
      • [4️⃣ 8259A的中断结束(EOI)有哪几种方式?为什么非自动EOI方式下必须在服务程序中发送EOI命令?](#4️⃣ 8259A的中断结束(EOI)有哪几种方式?为什么非自动EOI方式下必须在服务程序中发送EOI命令?)
      • [5️⃣ DMA方式和中断方式的核心区别是什么?](#5️⃣ DMA方式和中断方式的核心区别是什么?)
    • [📚 学习总结与建议](#📚 学习总结与建议)

一、🔧 I/O接口与端口基础

1️⃣ 为什么需要I/O接口

CPU不能直接连接外设,必须通过I/O接口中转,原因主要有四点:

问题 说明
速度不匹配 CPU速度远高于外设(键盘、打印机等)
信号格式不匹配 外设可能是模拟信号、串行信号或不同电平
时序不匹配 外设工作时序与CPU总线时序不同
数据格式不匹配 外设数据宽度、编码方式可能与CPU不同

I/O接口就是解决这些矛盾的"桥梁",它的主要功能包括:数据缓冲与锁存、信号转换、地址译码、提供握手信号、中断管理和错误检测。

2️⃣ I/O端口的分类

CPU与外设之间传输的信息分为三类,对应三种独立的端口:

端口类型 传输方向 功能 特点
数据端口 双向 传输实际数据 支持8位或16位,可读可写
状态端口 输入 传输外设工作状态 只读,反映外设是否准备好
控制端口 输出 传输CPU发出的控制命令 只写,设置外设工作方式

💡 一个接口电路可以包含多个端口,例如串行接口可能同时有数据输入端口、数据输出端口、状态端口和控制端口

3️⃣ 8088系统I/O总线信号

总线类型 信号 数量 说明
地址总线 A15~A0 16根 指定I/O端口地址,寻址范围64K个端口
数据总线 D7~D0 8根 双向传输数据、状态和控制信息
控制总线 #IOR、#IOW、IO/#M、ALE --- 控制读/写操作和地址锁存

4️⃣ I/O端口编址方式

(1)独立编址(I/O映射方式)------ 8088采用
  • I/O端口地址空间与存储器地址空间完全分开
  • 有专门的IN、OUT指令
  • 译码电路简单,但I/O指令功能有限
  • 代表:Intel x86系列
(2)统一编址(存储器映射方式)
  • I/O端口与存储器单元共用地址空间
  • 可以用所有存储器指令访问I/O端口
  • 指令功能丰富,但占用存储器地址空间
  • 代表:ARM、MIPS等RISC处理器

5️⃣ I/O地址译码

与存储器译码类似,I/O地址译码将高位地址信号转换为接口芯片的片选信号。

复制代码
端口地址 = 片选地址(高位) + 片内地址(低位)

I/O与存储器译码的对比:

对比项 I/O译码 存储器译码
地址线 最多16位(A15~A0) 20位(A19~A0)
常用方式 部分地址译码 全地址译码
控制信号 #IOR、#IOW #MEMR、#MEMW
指令 IN、OUT MOV
地址空间 64KB 1MB

⚠️ I/O译码的输入信号必须包含#IOR和#IOW------只有当CPU真正访问I/O端口时,译码电路才输出有效片选信号

二、💡 简单接口电路

简单接口电路功能固定、不能通过编程改变工作方式,由基本逻辑门电路组成。

1️⃣ 输入接口------ 三态门

输入接口必须具备数据控制能力,因为数据总线是共享资源,同一时刻只能有一个设备向总线发送数据。

  • 当控制端有效时,输入数据送到数据总线
  • 当控制端无效时,输出高阻态,与数据总线断开

典型芯片:74LS244(八缓冲器/三态门)

  • 两个独立的4位三态缓冲器
  • #G=0时,Y=A(数据通过)
  • #G=1时,Y=高阻态(断开)
  • 只能用作输入接口

2️⃣ 输出接口------ 锁存器

输出接口必须具备数据锁存能力,因为CPU输出的数据在总线上只存在很短时间,外设来不及读取。

  • 当时钟端有效时,将总线数据锁存到输出端
  • 锁存后输出保持不变,直到下一次锁存

典型芯片:74LS273(八D触发器/锁存器)

  • CP上升沿到来时,Q=D
  • 其他时间Q保持不变
  • 只能用作输出接口,不具备三态控制

3️⃣ 典型芯片:74LS373最常用的简单接口芯片

74LS373是带三态输出的8路D锁存器,既可用作输入接口也可用作输出接口:

LE #OE 输出状态
1 0 Q=D(透明模式)
0 0 Q保持(锁存模式)
× 1 高阻态

4️⃣ 综合应用:开关控制7段数码管

这是经典的简单接口应用------读取开关状态,在数码管上显示对应的十六进制数字。

7段显示编码表(共阴极):

显示 gfeedcba 十六进制 显示 gfeedcba 十六进制
0 00111111 3FH 8 01111111 7FH
1 00000110 06H 9 01100111 67H
2 01011011 5BH A 01110111 77H
3 01001111 4FH B 01111100 7CH
4 01100110 66H C 00111001 39H
5 01101101 6DH D 01011110 5EH
6 01111101 7DH E 01111001 79H
7 00000111 07H F 01110001 71H

程序实现:

asm 复制代码
; 7段显示编码表
Seg7 DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H
     DB 7FH, 67H, 77H, 7CH, 39H, 5EH, 79H, 71H

; 主程序:读开关状态 → 查表 → 输出显示
START:
    LEA BX, Seg7         ; BX指向编码表首地址
LOOP:
    IN  AL, 0F1H         ; 读取开关状态(输入口地址F1H)
    AND AL, 0FH          ; 屏蔽高4位,保留低4位
    XLAT                 ; 查表:AL = [BX + AL]
    OUT 0F0H, AL         ; 输出到数码管(输出口地址F0H)
    JMP LOOP             ; 循环

三、🔄 四种基本输入输出方式

CPU与外设之间的数据传输有四种基本方法,从简单到复杂依次为:

1️⃣ 无条件传送

最简单的方式,CPU不查询外设状态,直接执行IN/OUT指令传输数据。假设外设总是准备好的。

  • 优点:软硬件最简单
  • 缺点:适用范围极窄
  • 适用外设:开关、拨码盘、LED数码管、继电器

2️⃣ 查询式传送(条件传送)

CPU传输前先读取外设状态,准备好才传输,未准备好则继续查询等待。

复制代码
读状态端口 → 就绪? → 否 → 继续查询
                ↓是
           进行数据传输 → 传送完? → 否 → 继续
                              ↓是
                           结束
  • 优点:软硬件较简单,可靠性高
  • 缺点:CPU效率极低,大部分时间在查询等待
  • 适用外设:打印机、串口、键盘

程序示例:查询式输出100个字节

asm 复制代码
; 状态端口:03FBH(bit5=1表示忙,bit5=0表示准备好)
; 数据端口:03F8H
    LEA  SI, DATA
    MOV  CX, 100
AGAIN:
    MOV  DX, 03FBH
WAIT:
    IN   AL, DX          ; 读状态端口
    TEST AL, 20H         ; 测试bit5是否为1(忙)
    JNZ  WAIT            ; 忙则继续等待
    MOV  DX, 03F8H
    MOV  AL, [SI]        ; 取数据
    OUT  DX, AL          ; 输出数据
    INC  SI
    LOOP AGAIN           ; CX-1,不为0则继续
    HLT

3️⃣ 中断控制方式

外设准备好后主动向CPU发中断请求,CPU暂停当前程序,转去执行中断服务程序完成数据传输。

  • 优点:CPU效率高,实时性好,可同时管理多个外设
  • 缺点:程序编制复杂,每次中断有保护和恢复现场的开销
  • 适用外设:键盘、鼠标、串口、硬盘

4️⃣ DMA方式(直接存储器存取)

由**DMA控制器(DMAC)**控制总线,实现外设与存储器之间直接数据传输,CPU不参与。

工作过程:

复制代码
外设请求DRQ → DMAC请求HOLD → CPU响应HLDA → DMAC控制传输 → 传输结束 → CPU收回总线
  • 优点:传输速度极快,CPU效率最高
  • 缺点:硬件复杂,成本高
  • 适用外设:磁盘、光盘、显卡、网卡

5️⃣ 四种方式综合对比

对比项 无条件传送 查询式 中断方式 DMA方式
CPU干预程度 无 全程 仅开始和结束 无
传输控制者 CPU CPU CPU DMAC
CPU效率 低 极低 高 最高
传输速度 慢 慢 较快 极快
硬件复杂度 最简单 简单 复杂 最复杂
适用外设 总是准备好 低速有状态 中速实时 高速大批量

💡 选择原则:简单外选用无条件,低速外选用查询,中速多用中断,高速大批量用DMA

四、⚡ 中断技术详解

1️⃣ 中断的基本概念

中断是指CPU执行程序时,由于某种随机事件,暂时中断当前程序,转去执行中断服务程序处理该事件,处理完后再返回原程序继续执行的过程。

核心术语:

术语 含义
中断源 引起中断的事件
中断向量 中断服务程序的入口地址
中断向量表 存放所有中断向量的表格
中断优先级 多个中断同时请求时的响应顺序
中断嵌套 在中断处理中响应更高优先级的中断

2️⃣ 8088/8086的中断分类

共支持256个中断源(类型码0~255),分为两大类:

(1)内部中断(不受IF影响,不可屏蔽)
中断 类型码 触发条件
除法错 0 除数为0或商溢出
单步中断 1 TF=1时每执行一条指令产生
断点中断 3 INT 3指令,用于调试
溢出中断 4 INTO指令且OF=1
软件中断 n INT n指令,n为任意值
(2)外部中断
中断 引脚 特点
非屏蔽中断(NMI) NMI引脚,类型码固定为2 不受IF影响,处理紧急事件
可屏蔽中断(INTR) INTR引脚,类型码由8259A提供 受IF控制,IF=1允许,IF=0禁止

3️⃣ 可屏蔽中断的完整响应过程

这是考试中最常考的知识点之一,必须完整掌握:

复制代码
外设发INTR → 8259A判优 → CPU响应条件满足 → 硬件自动完成:
  ├─ 第1个总线周期:CPU发#INTA信号
  ├─ 第2个总线周期:8259A将类型码送上数据总线,CPU读取
  ├─ 关中断(IF=0, TF=0)
  ├─ FLAGS压栈 → CS压栈 → IP压栈
  ├─ 计算向量地址:类型码×4
  ├─ 从向量表取入口地址:低2字节→IP,高2字节→CS
  └─ 转入中断服务程序执行

中断服务程序:
  ├─ 保护现场(PUSH寄存器)
  ├─ 中断处理(数据传输等)
  ├─ 发送EOI命令(非自动EOI时)
  ├─ 恢复现场(POP寄存器)
  └─ IRET(弹出IP、CS、FLAGS,返回原程序)

⚠️ 内部中断和NMI不需要#INTA总线周期,类型码固定或由指令给出,不受IF影响------这是它们与可屏蔽中断的核心区别

4️⃣ 中断向量表

中断向量表位于内存最低1KB(00000H~003FFH),每个向量占4字节:

复制代码
向量地址 = 中断类型码 × 4
偏移量+0~+1:中断服务程序的偏移地址(IP)
偏移量+2~+3:中断服务程序的段地址(CS)

设置中断向量的程序:

asm 复制代码
; 设置类型码60H的中断向量
    CLI                    ; 关中断
    MOV  AX, 0
    MOV  ES, AX            ; ES指向0段
    MOV  DI, 60H * 4       ; DI = 向量地址
    MOV  AX, OFFSET INT60  ; 取偏移地址
    STOSW                  ; 写入IP(ES:[DI]←AX, DI+2)
    MOV  AX, SEG INT60     ; 取段地址
    STOSW                  ; 写入CS
    STI                    ; 开中断

INT60 PROC FAR
    ; 中断处理代码
    IRET
INT60 ENDP

5️⃣ 中断优先级

8088/8086系统中断优先级从高到低:

复制代码
内部中断(除法错、INTO、INT n) > 非屏蔽中断(NMI) > 可屏蔽中断(INTR) > 单步中断

五、🎛️ 可编程中断控制器8259A

8259A是8088/8086系统中最常用的中断控制器,用于管理可屏蔽中断。

1️⃣ 主要功能

  • 管理8个 中断源,级联可扩展至64个
  • 可编程设置每个中断源的优先级
  • 可编程设置中断触发方式(边沿/电平)
  • 可编程设置中断结束方式(自动/非自动EOI)
  • 支持中断嵌套

2️⃣ 主要引脚

引脚 说明
D7~D0 双向数据总线
#RD、#WR 读/写信号
#CS 片选信号
A0 端口选择:A0=0偶地址,A0=1奇地址
INT 中断请求输出,连CPU的INTR
#INTA 中断响应输入,连CPU的#INTA
IR0~IR7 中断请求输入,连外设
CAS0~CAS2 级联线
#SP/#EN 缓冲方式为输出;非缓冲方式为输入(1=主片,0=从片)

3️⃣ 内部核心寄存器

寄存器 功能
IRR(中断请求寄存器) 保存IR0~IR7的中断请求,对应位=1表示有请求
ISR(中断服务寄存器) 记录正在服务的中断,对应位=1表示正在服务
IMR(中断屏蔽寄存器) 对应位=1表示屏蔽该中断

4️⃣ 8259A的工作方式

(1)中断优先级方式
  • 固定优先级(默认):IR0最高,IR7最低
  • 循环优先级:被服务后自动降为最低,轮流当最高
(2)中断嵌套方式
  • 普通全嵌套(默认):只有更高优先级能打断当前中断
  • 特殊全嵌套 :同级或更高优先级都能打断,仅用于级联主片
(3)中断结束方式(EOI)

服务结束时必须将ISR对应位清零,否则8259A将不再响应同级别及以下中断:

方式 说明 适用场景
自动EOI(AEOI) 第二个#INTA结束时自动清零 不能用于中断嵌套
非指定EOI CPU发命令,清最高优先级的ISR位 普通全嵌套
指定EOI 命令中指明要清哪一位 特殊屏蔽/循环优先级
(4)中断触发方式
方式 说明
边沿触发 IRi出现上升沿表示有请求
电平触发 IRi出现高电平 表示有请求,须保持到#INTA结束
(5)中断屏蔽方式
  • 普通屏蔽:IMR对应位=1则屏蔽该中断
  • 特殊屏蔽 :除当前服务的中断外,允许低优先级中断打断------用于特殊场景

5️⃣ 8259A的编程

(1)初始化命令字(ICW)------ 按固定顺序写入

ICW1(写偶地址,A0=0):

复制代码
D7  D6  D5  D4  D3   D2  D1   D0
 x   x   x   1  LTIM  x  SNGL  IC4
                ↑标志   ↑触发  ↑单片  ↑需要ICW4
  • LTIM=1电平触发,=0边沿触发
  • SNGL=1单片,=0级联
  • IC4=1需要写ICW4

ICW2(写奇地址,A0=1)------ 中断向量码:

复制代码
D7   D6   D5   D4   D3   D2   D1   D0
T7   T6   T5   T4   T3    x    x    x
  • T7T3为向量码高5位,低3位由8259A自动填入(000111对应IR0~IR7)

ICW3(仅级联时写)------ 级联控制字

ICW4(仅IC4=1时写)------ 中断结束方式:

复制代码
D7  D6  D5   D4  D3  D2  D1    D0
 0   0   0  SFNM BUF M/S AEOI   1
                ↑特殊 ↑缓冲 ↑自动
                全嵌套
(2)操作命令字(OCW)------ 任意时刻写入

OCW1(写奇地址,A0=1)------ 中断屏蔽字:

复制代码
D7  D6  D5  D4  D3  D2  D1  D0
M7  M6  M5  M4  M3  M2  M1  M0
  • Mi=1屏蔽对应IRi,=0允许

OCW2(写偶地址,D4=0, D3=0)------ EOI和优先级循环:

复制代码
D7  D6  D5  D4  D3  D2   D1   D0
 R  SL  EOI  0  0  L2   L1   L0

常用组合:

  • 20H(00100000B):非指定EOI命令,最常用
  • A0H(10100000B):非指定EOI + 优先级自动循环

OCW3(写偶地址,D4=0, D3=1)------ 特殊屏蔽和读寄存器控制

(3)编程示例

题目: 接口地址20H/21H,边沿触发,单片,需ICW4,IR0IR7对应08H0FH,屏蔽IR4~IR7。

asm 复制代码
INIT8259A:
    MOV DX, 20H              ; A0=0
    MOV AL, 00010011B        ; ICW1:边沿触发,单片,需ICW4
    OUT DX, AL
    MOV DX, 21H              ; A0=1
    MOV AL, 08H              ; ICW2:向量码高5位=00001B
    OUT DX, AL
    MOV AL, 00000001B        ; ICW4:普通全嵌套,非缓冲,非自动EOI
    OUT DX, AL
    MOV AL, 11110000B        ; OCW1:屏蔽IR4~IR7
    OUT DX, AL

中断服务程序模板:

asm 复制代码
INT0 PROC FAR
    PUSH AX                 ; 保护现场
    PUSH DX
    ; ===== 中断处理代码 =====

    MOV  AL, 20H            ; 非指定EOI命令
    MOV  DX, 20H
    OUT  DX, AL             ; 发送EOI
    POP  DX                 ; 恢复现场
    POP  AX
    IRET                    ; 中断返回
INT0 ENDP

⚠️ 中断服务程序中发送EOI命令(OUT 20H, 20H)是非常关键的一步!如果忘记发送,8259A的ISR对应位不会被清零,后续同级及更低优先级的中断将永远不会被响应

六、🤔 几个思考题

学完本文,来试试回答这些问题:

1️⃣ 为什么输入接口需要三态门,输出接口需要锁存器?

答: 因为数据总线是共享资源,同一时刻只能有一个设备向总线发送数据。输入接口用三态门控制:不访问时输出高阻态(断开),访问时才将数据送上总线。输出接口用锁存器是因为CPU输出数据在总线上只存在极短时间,外设来不及读取,锁存器可以"记住"数据并持续输出。

2️⃣ 查询式传送和中断方式各适用于什么场景?

答: 查询式适用于低速外设且CPU利用率要求不高的场合,实现简单可靠。中断方式适用于中速外设、需要实时响应和同时管理多个外设的场合,CPU效率高但程序复杂。

3️⃣ 中断向量表中,类型码21H的中断向量存放在哪个地址?

答: 向量地址 = 类型码 × 4 = 21H × 4 = 0084H。0084H0085H存放IP(偏移地址),0086H0087H存放CS(段地址)。

4️⃣ 8259A的中断结束(EOI)有哪几种方式?为什么非自动EOI方式下必须在服务程序中发送EOI命令?

答: 三种方式:自动EOI(#INTA结束时自动清ISR)、非指定EOI(清ISR中最高优先级位)、指定EOI(清指定位)。非自动EOI方式下,中断服务结束后ISR的对应位仍为1,8259A认为该中断仍在服务中,会屏蔽同级和更低优先级的中断,因此必须通过软件发送EOI命令将ISR位清零。

5️⃣ DMA方式和中断方式的核心区别是什么?

答: 核心区别在于数据传输由谁控制。中断方式下,数据传输由CPU控制(中断服务程序中执行IN/OUT指令),CPU仍需参与每次传输。DMA方式下,数据传输由DMAC(DMA控制器)控制,CPU完全不参与,将总线控制权交给DMAC,因此DMA方式适合高速大批量传输。

📚 学习总结与建议

重点掌握内容

  1. I/O接口基础:三种端口的功能、独立编址与统一编址的区别
  2. 简单接口电路:三态门(输入)和锁存器(输出)的原理与应用
  3. 四种I/O方式:各自的工作原理、优缺点、适用场景
  4. 中断技术:中断响应过程、中断向量表的使用、中断优先级
  5. 8259A:IRR/ISR/IMR三大寄存器、ICW和OCW的格式与编程

学习建议

  • 对比记忆:四种I/O方式、两种编址方式、两种触发方式------用对比表格整理
  • 画流程图:中断响应过程、DMA传输过程------画出来比背文字有效得多
  • 动手编程:重点练习8259A初始化编程和中断服务程序的编写
  • 理解"为什么":不要只背结论,理解三态门为什么必要、EOI为什么必须发等底层原因

✅ 本节完

📝 作者:say-fall | 编辑:say-fall | 🌟 原创不易,如果对你有帮助,记得 👍 点赞 + ⭐ 收藏 哦!

相关推荐
水饺编程17 小时前
第1章:下载 Linux 0.12 内核
linux·c语言·汇编·ubuntu
水饺编程17 小时前
第1章:开发环境搭建,在 Windows 中安装 Git
linux·c语言·汇编·git·ubuntu
水饺编程2 天前
第1章:在 Windows 中安装 GCC 套件
c语言·汇编
水饺编程2 天前
第1章,了解乌班图环境,使用浏览器和邮箱
c语言·汇编·ubuntu
水饺编程2 天前
第1章:开发环境搭建,在 Windows 中安装 QEMU
c语言·汇编
AC赳赳老秦2 天前
OpenClaw 数据引用规范自动生成:为公开数据构建可信来源标注与标准引用体系
大数据·开发语言·汇编·数据库·人工智能·deepseek·openclaw
AC赳赳老秦4 天前
数据采集全链路审计留痕:用 OpenClaw 实现合规审计与追溯
开发语言·汇编·python·php·swift·deepseek·openclaw
小雪崩5 天前
嵌入式学习 day60:ARM汇编——触摸屏与SPI
汇编·arm开发·学习
额额额对了5 天前
SPI通信
linux·c语言·汇编·单片机·嵌入式硬件·arm
AOI小白新手上路6 天前
4-3_ARM汇编_学习笔记
汇编·arm开发·学习