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


🌈 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 | 🌟 原创不易,如果对你有帮助,记得 👍 点赞 + ⭐ 收藏 哦!

相关推荐
iCxhust2 小时前
C# 程序,实现二进制文件十六进制查看器,支持按行定位
开发语言·单片机·嵌入式硬件·c#·微机原理·8086最小系统·8088单板机
Dovis(誓平步青云)5 小时前
《QT学习第四篇:常见事件与UDP、TCP、文件系统、(锁、信号量、条件变量》
c语言·开发语言·汇编·qt
hef28813 小时前
NASM工具怎么用 汇编转机器码实战教程
汇编
是星辰吖~19 小时前
X86反汇编:内存幻影_数组解码纪元(3-2)
汇编
是星辰吖~1 天前
X86反汇编:内存矩阵与指针之剑(3-1)
汇编
iCxhust2 天前
如何利用iret修改cs ip
汇编·单片机·嵌入式硬件·微机原理·8088单板机
是星辰吖~3 天前
X86反汇编:透视之眼_反编译特训(1-2)
汇编
是星辰吖~3 天前
X86反汇编:破茧成蝶 —— 赤裸逻辑与机械之心(1-1)
汇编
逆向命运3 天前
PC企微搜索手机号窗口绕过
c语言·汇编·c++·飞书·企业微信