Bootstrap

计算机体系结构与汇编语言

前言

2.1 计算机体系结构

  • 计算机模型:图灵机(有兴趣可以观看模仿游戏,致敬图灵)
  • 冯·诺依曼与哈弗架构
  • 嵌入式最小系统概念

计算机模型:图灵机

在这里插入图片描述
在这里插入图片描述

冯·诺依曼与哈弗架构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

嵌入式最小系统概念

在这里插入图片描述

2.2 X86与ARM架构对比分析

  • X86架构演变过程
  • ARM架构演变过程
  • 对比分析及小结

X86架构演变过程

1.早期计算机时代

在这里插入图片描述

2.总线隔离

在这里插入图片描述

3.486时代

在这里插入图片描述

4.现代计算机

在这里插入图片描述
总线升级、cpu频率上升

ARM架构演变过程

AMBA2.0总线

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

AMBA3.0总线

在这里插入图片描述
在这里插入图片描述

对比分析及小结

  • 总线作用:为了频率同步、提升性能
    – 低速设备通过控制器连接总线、CPU通过倍频与总线通信工作
    – RAM、显卡高频率、大数据量模块挂高性能主线上
    – 串口、打印机、12C等低速设备挂低速总线上
  • X86总线在CPU外
  • ARM总线在S0C内部

2.3 C51与ARM架构对比分析

在这里插入图片描述

C51与ARM对比分析

类似的地方

  • 计算机基本架构及基本概念:复位、中断
  • 程序原理和运行过程:程序的编辑、编译、链接、调试
  • 指令的取指、译码、和执行过程
  • 中断的处理过程:响应中断、保护现场和中断退出
    在这里插入图片描述在这里插入图片描述
    ARM和51单片机的区别就是:单片机需要直接操作寄存器,而ARM需要通过配置寄存器来实现
    在这里插入图片描述

2.4 总线与地址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

x86内存和外设独立编址,不占用CPU寻址空间

2.5 指令集、微架构与编译器

指令集的基本概念

指令集就是架构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

微架构

在这里插入图片描述
在这里插入图片描述

编译器

在这里插入图片描述

2.6 ARM体系架构及指令

在这里插入图片描述
infocenter.arm.com可以下载指令集——芯片用户手册——wiki博客
计算机行业、IC行业、电子行业英语词汇

ARM体系结构

在这里插入图片描述
在这里插入图片描述

ARM工作模式

在这里插入图片描述

寄存器

在这里插入图片描述
在这里插入图片描述

ARM寻址方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:逻辑移位与算数移位有区别!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ARM栈类型是满递减堆栈
在这里插入图片描述

思考

  • ARM采用 满递减堆栈
  • X86使用满递减堆栈
  • 为什么要使用这种类型的堆栈?

满堆栈就是从两头开始存储,malloc主动申请的从堆这边存,系统分配的从栈那边开始存储

2.7 ARM汇编指令

指令基本格式

在这里插入图片描述

存储器访问指令

在这里插入图片描述

数据传送指令

在这里插入图片描述

算术逻辑运算指令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

跳转指令

在这里插入图片描述

2.8 伪指令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 因为操作码也会占用寄存器位数,剩下存储的位置只有imm8这一部分8bit了,因此,超过255就不能表示了,需要用到伪指令。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 使用到相对寻址的有uboot启动、编译链接库的时候。

2.9 ARM汇编程序设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.10 C和汇编混合编程

ATPCS规则

在这里插入图片描述

C语言內嵌汇编

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

汇编中调用C程序

在这里插入图片描述
在这里插入图片描述

2.11 GNU ARM汇编语言

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.12 链接脚本

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.13 嵌入式系统启动流程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

后记

  • 暂且到此,详细内容建议观看课程!
;