以下部分内容由AI生成

1. 计算机系统概述

1.1 冯·诺依曼架构

graph TB
    A["输入设备 Input"] --> B["运算器 ALU"]
    A --> C["控制器 CU"]
    D["存储器 Memory"] --> B
    D --> C
    B --> E["输出设备 Output"]
    C --> E

    style A fill:#f96
    style B fill:#6f6
    style C fill:#69f
    style D fill:#96f
    style E fill:#f969

五大组成部分:

组件 功能 说明
输入设备 输入数据和指令 键盘、鼠标、扫描仪等
存储器 存储程序和数据 内存、硬盘、U 盘
运算器 执行算术和逻辑运算 ALU、寄存器组
控制器 控制程序的执行流程 指令译码器、时序控制器
输出设备 输出处理结果 显示器、打印机、音箱等

1.2 现代计算机系统结构

graph TB
    A["中央处理器 CPU<br/>Intel/AMD"] --> B["北桥 Northbridge"]
    A --> C["存储控制器<br/>Memory Controller"]

    B --> D["图形控制器<br/>GPU"]
    B --> E["PCI Express 总线"]
    B --> F["DMI 总线"]

    C --> G["内存插槽<br/>DDR4/DDR5"]
    E --> H["显示器 Display"]

    I["南桥 Southbridge"] --> J["SATA 控制器"]
    I --> K["USB 控制器"]
    I --> L["PCI Express 插槽"]

    J --> M["硬盘 HDD"]
    K --> N["U 盘"]

    style A fill:#f96
    style B fill:#6f6
    style I fill:#69f

南北桥架构:


2. 数据的表示与运算

2.1 数值表示

2.1.1 整数表示

有符号整数:

8 位有符号整数(以 8 位为例)

原码:
00000000 =  +0
11111111 =  -1

问题:+0 和 -0 的原码不同

反码:
00000000 =  +0
00000000 =  -1(取反)

补码:
00000000 =  +0
11111111 =  -1(原码取反 +1)

优势:加法运算简单
表示法 说明 特点
原码 最高位为符号位 0 有两种表示(+0/-0)
反码 符号位不变,其余位取反 符号位单独考虑
补码 原码取反 +1 加减运算统一,最常用

补码加减法示例:

; =============================================
; 补码加减法示例
; 计算 5 + (-3) = 2
; =============================================

section .text
global _start

_start:
    ; 5 的补码:00000101
    ; -3 的补码:11111101

    mov al, 5              ; AL = 5
    add al, 11111101       ; AL = 5 + (-3) = 2

    ; 结果:00000010 = 2(正确!)
end

2.1.2 浮点数表示

IEEE 754 单精度浮点数格式: