# tutor-assembly
**Repository Path**: hollson/tutor-assembly
## Basic Information
- **Project Name**: tutor-assembly
- **Description**: No description available
- **Primary Language**: C
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-02-08
- **Last Updated**: 2025-04-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[TOC]
# 汇编语言
**汇编语言**是与特定CPU架构紧密相关的低级编程语言,由汇编指令、伪指令和其他符号组成。汇编指令是机器指令的助记符,便于人们记忆和编写。
**x86-64**
- 概念:作为x86架构的64位扩展,由**AMD开发**,Intel后续采用,应用广泛。
- 应用:PC/服务器程序、操作系统开发、逆向工程、云计算、虚拟化等。
- 特点:**复杂指令**,可变长度编码,支持多种寻址模式,**兼容性强**。
- 优势:性能优化,成熟的生态系统,广泛的硬件支持。
- 工具:**MASM(微软汇编器) **、LLVM工具链、Visual Studio集成环境。
- 前景:主导PC和服务器市场,但面临ARM和RISC-V的竞争,尤其是云服务器领域。
- 市场:**PC市场**约90%,服务器市场约80% 。
**ARM汇编**
- 概念:基于**精简指令集**(RISC),**ARM公司设计**,广泛授权给芯片厂商。
- 应用:智能手机、平板、自动驾驶汽车、无人机、可穿戴设备。
- 特点:固定长度指令,大量寄存器,Thumb模式提升代码密度。
- 优势:能效比高,生态系统庞大,支持多种操作系统。
- 工具:**GNU工具链**(arm-none-eabi-gcc)、**QEMU模拟器**、Keil MDK。
- 前景:在移动端持续主导,**向服务器和PC端扩张(如Apple Silicon),IoT市场增长强劲**。
- 市场:**移动设备**市场约95%,**嵌入式**系统约70% 。
**MIPS汇编**
- 概念:经典RISC架构,早期在学术和网络设备中应用广泛。
- 应用:网络设备(路由交换机)、数字电视、机顶盒、打印机、游戏、教学实验平台。
- 特点:延迟槽设计,易于教学流水线原理。
- 优势:经典五级流水线架构、指令规整利于理解CPU原理。
- 工具:SPIM/MARS模拟器、MIPSpro编译器、GCC交叉编译工具链。
- 前景:**逐渐被ARM和RISC-V取代**,但在特定领域仍有遗留系统维护需求。
- 市场:网络设备约10%,教学领域仍有部分使用。
**RISC-V汇编**
- 概念:**开源指令集**架构,模块化设计,允许扩展自定义指令。
- 应用:学术研究、定制芯片(**人工智能、物联网**)、新型处理器设计。
- 特点:基础指令集精简,可扩展性强,免版税。
- 优势:灵活性高,社区活跃,**免授权费生态**,适合创新项目。
- 工具:**GNU工具链**(riscv64-unknown-elf-gcc)、**Spike模拟器**、PlatformIO。
- 前景:增长迅速,尤其在**IoT**和定制芯片领域潜力大。
- 市场:🚀 年增45%(IoT/AI芯片爆发) ,新兴市场,成长快速。
# 附A:主流CPU架构
**CPU架构**:指的是CPU的设计方式和内部电路结构,不同的CPU架构有不同的指令集和机器语言。
**全球主流CPU架构分布**
- **x86体系**:Intel Core/i9、AMD Ryzen/EPYC
- **ARM体系**:Apple M系列、AWS Graviton、华为鲲鹏
- **RISC-V体系**:SiFive U74、阿里平头哥C910
- **其他体系**:IBM Power10(Power ISA)、Fujitsu A64FX(ARM)
**主要国产CPU技术路线**
| 品牌 | 指令集架构 | 典型产品 | 应用领域 |
|--------|-----------------|----------------|------------------|
| 飞腾 | ARMv8 | FT-2000/4 | 服务器/桌面 |
| 龙芯 | LoongArch | 3A5000 | 桌面/嵌入式 |
| 申威 | SW-64 | 申威1621 | 超算领域 |
# 附B:2025手机芯片
- 主流芯片厂商包括**苹果、华为、三星、高通、联发科、谷歌** 等。
| 品牌 | 芯片型号 | 指令集 | 配置 | 工艺 |
| ----- | --------- | ---------- | --------- | --------- |
| **苹果** | A18 Pro | ARMv9.4-A | 6核CPU(4P+4E)+ 6核GPU | TSMC N3P |
| **华为** | 麒麟9100 | ARMv9.2-A | 泰山V140架构,12核(2+4+6)| SMIC 5nm+|
| **三星** | Exynos 2500| ARMv9.3-A| AMD RDNA4 GPU,10核CPU | SF3E 4nm|
| **vivo** | 天玑9400| ARMv9.1-A | 联发科全大核设计,Cortex-X5 | N3E |
| **小米** | 骁龙8 Gen4| ARMv9.3-A|(台积电)Oryon V2定制核心,12MB L3缓存|N3E|
| **OPPO** | 天玑9400定制版 | ARMv9.1-A | 联合联发科优化AI加速器| N3P|
| **谷歌** | Tensor G5| ARMv9.2+RISC-V| 2×Cortex-X5 + 4×RISC-V AI协处理器| TSMC N3E |
# ARM汇编知识体系
```shell
ARM汇编知识体系:
├─ 1. 计算机基础层
│ ├─ 冯·诺依曼架构与哈佛架构差异
│ ├─ CPU工作流程(取指-译码-执行)
│ ├─ 内存地址空间与总线协议
│ └─ 二进制补码/浮点表示(IEEE754)
│
├─ 2. ARM架构特性层
│ ├─ RISC设计哲学(精简指令集特点)
│ ├─ 执行模式:ARM/Thumb/A64
│ ├─ 寄存器组织(通用寄存器/SP/LR/PC)
│ └─ 流水线机制(3/5级流水冲突处理)
│
├─ 3. 指令系统层
│ ├─ 数据处理指令(MOV/ADD/AND)
│ ├─ 内存访问指令(LDR/STR/LDM/STM)
│ ├─ 控制流指令(B/BL/CBNZ)
│ ├─ 条件执行机制(CPSR标志位)
│ └─ SIMD指令(NEON基础)
│
├─ 4. 内存管理层
│ ├─ 栈操作(满递减/空递增)
│ ├─ 内存对齐与原子操作(LDREX/STREX)
│ ├─ 缓存一致性(DMB/DSB指令)
│ └─ MMU原理(页表/虚拟地址转换)
│
├─ 5. 系统编程层
│ ├─ 异常处理(SWI/SVC/IRQ)
│ ├─ 混合编程(C调用汇编规则AAPCS)
│ ├─ 外设控制(GPIO/UART寄存器映射)
│ └─ 操作系统交互(Linux系统调用约定)
│
└─ 6. 高级扩展层
├─ 性能优化(指令调度/循环展开)
├─ 安全机制(PAC指针认证)
├─ 多核同步(Spinlock/内存屏障)
└─ 逆向工程(IDA Pro分析ARM固件)
```
# 参考链接
> https://blog.csdn.net/Gusand/article/details/100088480