本文共 1366 字,大约阅读时间需要 4 分钟。
// 最近看了两本书,关注点是计算机组成计算机是怎样跑起来的程序是怎样跑起来的
了解到 计算机 cpu isr io 的构成汇编代码 与 二进制代码程序的加载 执行 // 不表系统调用规则 // 不表
最简单的计算机包括几个模块(flash 不是必备单元) cpu 从内存中取值,取数据,到寄存器,然后译码,然后执行. 向内存中写值. 从IO中取值. 向IO中写值 内存 存储数据与指令 IO 被cpu 控制 告知cpu IO 状态 //flash(flash 不是必备单元) 和内存都是存储单元,存在 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芯片 与 外设
寄存器 指令寄存器 // 存储指令,一般不对程序员开放 栈寄存器 // 栈区域的起始位置 程序寄存器(程序计数器) // 存储下一条指令所在的位置 标志寄存器(状态寄存器) // 存储计算后cpu的状态 控制寄存器 // cpu工作状态 通用寄存器 累加寄存器 索引寄存器 控制器 被指令操纵做控制 运算器 alu vpu rpu 被指令操作做运算 时钟 指令按照时钟滴答运行.一个指令是N个时钟周期代表着一个N个时钟周期的时间内会执行完这条指令.
io端口号(必须) IO端口就像是一个港口,用于临时保存输入输出数据的内存. 如果执行 OUT (3) 0x01 . 在这个命令之后,IO控制器将该管脚置 1 ,并保持该状态,直到下次控制命令到达. irq(非必须) 用于给 cpu 中断 dma通道(非必须) 用于减轻cpu负担,将IO数据直接放到内存里.
// 指令中 包括 操作码 和 操作数 (操作数就是数据)// 所以 数据在指令中.数据转送指令 cpu寄存器 <-> 内存 load // arm 架构 store // arm 架构 cpu寄存器 <-> io运算指令 mov add ...程序流程控制指令 跳转指令 halt call/return wfi/wfe swi/int 中断 // 被动
转载地址:http://oligi.baihongyu.com/