以下部分内容由AI生成
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、寄存器组 |
| 控制器 | 控制程序的执行流程 | 指令译码器、时序控制器 |
| 输出设备 | 输出处理结果 | 显示器、打印机、音箱等 |
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
南北桥架构:
有符号整数:
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
IEEE 754 单精度浮点数格式: