======================仰望星空 脚踏实地==========================
====================== lesson 1 ==========================
程序与CPU
问题切入:1.程序是什么?
2.程序由什么组成?
3.什么是机器语言?
4.运行中的程序存储在什么位置?
5.什么是内存地址?
6.程序的解释和运行的计算机部件叫什么?
====================== lesson 1 ==========================
程序与CPU
问题切入:1.程序是什么?
2.程序由什么组成?
3.什么是机器语言?
4.运行中的程序存储在什么位置?
5.什么是内存地址?
6.程序的解释和运行的计算机部件叫什么?
CPU的组成:
1.寄存器 => 短暂存储一些值(数据) (寄存器的数量可能不止一个;角色:负责数据的存储)
2.控制器 => 读取 写入 (角色:指挥)
3.运算器 => 逻辑运算单元 (角色:协调)
4.时钟 => 推动CPU运转一次的时间 (1GHz=10亿次/秒)
1.寄存器 => 短暂存储一些值(数据) (寄存器的数量可能不止一个;角色:负责数据的存储)
2.控制器 => 读取 写入 (角色:指挥)
3.运算器 => 逻辑运算单元 (角色:协调)
4.时钟 => 推动CPU运转一次的时间 (1GHz=10亿次/秒)
程序:程序=指令+数据
高级语言:指令更少,更易记忆(如C中的printf("hello world"))
低级语言:机器语言(由0和1构成)
乱码(网络传播导致):由原来的1234排序变为了2431 即从有规则变为无规则
低级语言:机器语言(由0和1构成)
乱码(网络传播导致):由原来的1234排序变为了2431 即从有规则变为无规则
代码->CPU:
代码 => EXE => 加载 => CPU
(算法+数据) (二进制指令) (进内存) (寄存器交互)
代码 => EXE => 加载 => CPU
(算法+数据) (二进制指令) (进内存) (寄存器交互)
寄存器的类型:1.累加寄存器 : 加法运算
2.标志寄存器: 进行逻辑判断(数据处理之后CPU的状态)
3.基址寄存器:存储当前数据内存的开始位置
4.变址寄存器:存储基址寄存器的相对位置
5.通用寄存器:可接受各种运用
6.指令寄存器:不对外开放,用于CPU存储指令
7.栈寄存器 :记录栈的起始位置
8.程序计数器:存储下一条指令的内存地址
寄存器可看作是CPU的内存,与普通内存相比,其速度会是普通内存的几十甚至上百倍
某一内存的具体地址=基址+变址
程序计数器的用处更大的体现在不是顺序执行的时候,例如条件语句,循环语句等需要判断/跳转的时候
2.标志寄存器: 进行逻辑判断(数据处理之后CPU的状态)
3.基址寄存器:存储当前数据内存的开始位置
4.变址寄存器:存储基址寄存器的相对位置
5.通用寄存器:可接受各种运用
6.指令寄存器:不对外开放,用于CPU存储指令
7.栈寄存器 :记录栈的起始位置
8.程序计数器:存储下一条指令的内存地址
寄存器可看作是CPU的内存,与普通内存相比,其速度会是普通内存的几十甚至上百倍
某一内存的具体地址=基址+变址
程序计数器的用处更大的体现在不是顺序执行的时候,例如条件语句,循环语句等需要判断/跳转的时候
关于二进制:
为什么使用二进制而不使用熟知的十进制?
二进制便于记录通电状态(0或5v) (集成芯片=>引脚)
二进制对于图片的呈现:通过点阵实现
二进制对于视频的呈现:视频课看作是多张图片的翻动形成(帧),故实现原理与图片的呈现相同
二进制对于音频的呈现:通过控制音宽实现
练习:书写十进制数字0~16所对应的二进制
为什么使用二进制而不使用熟知的十进制?
二进制便于记录通电状态(0或5v) (集成芯片=>引脚)
二进制对于图片的呈现:通过点阵实现
二进制对于视频的呈现:视频课看作是多张图片的翻动形成(帧),故实现原理与图片的呈现相同
二进制对于音频的呈现:通过控制音宽实现
练习:书写十进制数字0~16所对应的二进制