计算机是怎样跑起来的
程序是怎样跑起来的
了解到 计算机 cpu isr io 的构成
汇编代码 与 二进制代码
程序的加载 执行
系统调用规则
计算机
最简单的计算机包括几个模块(flash 不是必备单元)
cpu
从内存中取值,取数据,到寄存器,然后译码,然后执行.
向内存中写值.
从IO中取值.
向IO中写值
内存
存储数据与指令
IO
被cpu 控制
告知cpu IO 状态
和内存都是存储单元,存在 XIP 的 rom,此时 flash 和 内存一样.
各芯片电源 ,地,时钟
1. cpu 与 IO
cpu芯片的address 线 和 IO 的 address 线
cpu 芯片的 data 线 和 IO 的 data 线
cpu 芯片的 控制线 和 IO 的 控制线(读写使能)
2. cpu 与 内存
cpu芯片的address 线 和 内存 的 address 线
cpu 芯片的 data 线 和 内存 的 data 线
cpu 芯片的 控制线 和 内存的 控制线(读写使能)
3. IO芯片 与 外设
寄存器
指令寄存器
栈寄存器
程序寄存器(程序计数器)
标志寄存器(状态寄存器)
控制寄存器
通用寄存器
累加寄存器
索引寄存器
控制器
被指令操纵做控制
运算器
alu
vpu
rpu
被指令操作做运算
时钟
指令按照时钟滴答运行.一个指令是N个时钟周期代表着一个N个时钟周期的时间内会执行完这条指令.
io端口号(必须)
IO端口就像是一个港口,用于临时保存输入输出数据的内存.
如果执行 OUT (3) 0x01 . 在这个命令之后,IO控制器将该管脚置 1 ,并保持该状态,直到下次控制命令到达.
irq(非必须)
用于给 cpu 中断
dma通道(非必须)
用于减轻cpu负担,将IO数据直接放到内存里.
数据转送指令
cpu寄存器 <-> 内存
load
store
cpu寄存器 <-> io
运算指令
mov
add
...
程序流程控制指令
跳转指令
halt
call/return
wfi/wfe
swi/int
中断