26考研 | 王道 | 计算机组成原理 | 五、中央处理器
26考研 | 王道 | 计算机组成原理 | 五、中央处理器0.概览CPU能够识别执行的只有机器指令和微指令,汇编指令只有翻译为机器指令之后才可以执行 汇编程序员可见的寄存器有:基址寄存器、状态寄存器PSW、程序计数器PC、通用寄存器组 不可见的:MAR、MDR、IR、微指令寄存器 可见:可以修改的,一直指定它的值的 1.CPU的功能和结构CPU读写控制信号的作用是 决定数据总线上的数据流动方向,控制存储器操作的读写类型,控制流入流出存储器信息的方向 运算器包含的寄存器:ALU,ACC,PSW,通用寄存器 控制器包含的寄存器:PC,IR,MAR,MDR 寄存器可见性与透明性分类 寄存器 用户可见性 用户透明性 用户可修改性 修改方式 PSW(程序状态字) 可见 ✅ 不透明 部分可修改 间接修改(硬件自动设置状态位,部分标志位支持软件修改) ACC(累加器) 可见 ✅ 不透明 可修改 直接修改(如 MOV ACC, 10H) 通用寄存器组(如R0-R12) 可见 ✅ 不透明 可修改 直接修改(如 MOV R1, AX) PC(程序计数器) 可见...
26考研 | 王道 | 计算机组成原理 | 六、总线
26考研 | 王道 | 计算机组成原理 | 六、总线6.1 总线概述计算机使用总线结构便于增减外设,同时减少信息传输线的条数 总线简图 总线的物理实现 1. 总线概述 同一时刻只能有一个部件发送信息,但是各个部件可以同时从总线接收数据 在总线上,同一时刻只能有一个主设备控制总线传输操作 总线的特性 1.机械特性:尺寸、形状、管脚数、排列顺序 2.电气特性:传输方向和有效的电平范围 3.功能特性:每根传输线的功能(地址、数据、控制) 4.时间特性:信号的时序关系 串行总线抗干扰能力比较强 并行总线与串行总线并不一定谁就比谁快,并行总线工作频率高的时候会有严重干扰,所以频率不能太高 而串行总线虽然不行一次传很多个但是频率可以很高 不同信号在同一条信号线上分时传输的方式称为总线复用方式 主存通过总线的类型来识别信息是地址还是数据 总线的分类(按总线功能) 效率低是因为三个总线同一时刻只能有一个在工作 桥接器还会负责串并行转换、总线仲裁 多总线结构中,总线之间须通过桥接器相连 2....
26考研 | 王道 | 计算机组成原理 | 七、输入输出系统
26考研 | 王道 | 计算机组成原理 | 七、输入输出系统 7.1 输入输出系统及I/O控制方式IO指令格式与其他通用指令格式不同 I/O接口:又称I/O控制器、设备控制器、负责协调主机与外部设备之间的数据传输。(I/O控制器就是一块芯片,常被集成在主板上) I/O控制方式简介 DMA控制方式 通道控制方式 I/O系统基本组成 在配有通道的计算机系统中,用户需要输入输出时,引起的中断是 访管中断 (因为这时调用的是系统提供的接口,要去请求操作系统服务,此时会使得访管中断) 外部设备(考纲没有,做个了解) 7.2...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集78.子集78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完整代码: 选或不选 123456789101112131415161718192021222324class Solution {public: vector<vector<int>> res; vector<int> path; void backtracking(vector<int>& nums,int index) { if(index==nums.size()) { res.push_back(path); return; } //不选 backtracking(nums,index+1);...
26考研 | 王道 | 计算机组成原理 | 四、指令系统
26考研 | 王道 | 计算机组成原理 | 四、指令系统1.指令系统0.指令集体系结构 1. 指令格式 1.按地址码数目不同来分 2.指令-按指令长度分类机器字长和存储字长固定不变。 3.指令-按操作码长度分类 4.指令-按操作类型分类 程序控制类指令除了上述还有循环指令 2. 扩展操作码指令格式 2.指令的寻址方式###1. 指令寻址 1.顺序寻址(PC)+“1”–>PC 图中的指令字长是变化的,不是右边的16bit,所以才会每次读入一个字 2.跳跃寻址:由转移指令指出本节回顾 转移指令是通过修改PC实现的 程序计数器PC:存放下一条指令所在单元的地址 累加器ACC:用来存放操作数或运算结果 指令寄存器IR:临时放置从内存里面取得的程序指令的寄存器,用于存放当前从主存储器读出的正在执行的一条指令。 地址寄存器MAR:用来保存当前CPU所访问的内存单元的地址。 2. 数据寻址 1.常见寻址方式 取指令也需要一次访存(如果指令字长等于存储字长的话) 直接寻址 间接寻址 寄存器寻址 寄存器间接寻址 隐含寻址 立即寻址 2....
Day130 | 灵神 | 回溯算法 | 子集型 电话号码的字母组合
Day130 | 灵神 | 回溯算法 | 子集型 电话号码的字母组合17.电话号码的字母组合17. 电话号码的字母组合 - 力扣(LeetCode) 思路: 笔者用index代替i,这里的index其实就是digits数组的下标 按照灵神的回溯三问,那就是 1.当前的操作:找到本层要给path[index]里面填入哪个字母,很明显的是每层就是一个数字的那几个字母,所以就是选定一个数字然后从它的字母中选一个 2.子问题:构造字符串>=index的部分,其实也就是说明经过了index层选择之后,我们已经确定了i位字母 3.下一个子问题:构造字符串>=index+1的部分,就是说明我们下一层的递归参数是index+1,因为我们已经在本层的字母中选择了一个,所以要继续往下走了,表现在数组上就是继续往下遍历digits 注意的细节: 映射的建立,下标要对上数字,也就是让映射的数组从下标2开始而不是0,这样会方便很多 完整代码: 1234567891011121314151617181920212223242526272829class Solution...
26考研 | 王道 | 计算机组成原理 | 三、存储系统
26考研 | 王道 | 计算机组成原理 | 三、存储系统3.1...
Day129 | 灵神 | 二叉树 | 二叉树的堂兄弟节点II
Day129 | 灵神 | 二叉树 | 二叉树的堂兄弟节点II2641.二叉树的堂兄弟节点II2641. 二叉树的堂兄弟节点 II - 力扣(LeetCode) 思路: 笔者这道题就算告诉我要用层序遍历,后面我也没做出来….. 要从父节点思考子节点,而不是单纯从子节点下手 以这个例子为例 要算第三层,就要考虑第二层,当我们还在遍历第二层的时候,就把第二层的节点存起来 然后遍历一次第二层节点得到 第三层节点的和 10+1+7=18 为什么要算和是多少呢?因为我们要知道4的左右孩子的值是多少就必须知道9的左右孩子的和 而我们把所有结点的和加起来以后,再减去 4的左右孩子的值,那剩下的不就是9的左右孩子的值吗 算一下就是 10+1+7=18,这是第三层节点的和 4的左右孩子和是11,9的是7 那么4的左右孩子的值就是...
26考研 | 王道 | 第六章 应用层
26考研 | 王道 | 第六章 应用层 1.网络应用模型 1.CS模型的应用CS模型(客户端-服务器)的特点是客户端需要安装专用软件,服务端负责核心逻辑处理和数据存储。典型应用包括: 传统桌面软件:如早期的单机游戏(如《魔兽争霸3》)、办公软件(如Office) 网络游戏:如《王者荣耀》采用客户端-服务器架构,客户端负责渲染和操作,服务器处理战斗逻辑和匹配 企业级应用:如ERP系统、数据库管理系统(如MySQL客户端) 云服务工具:如Cobalt...
Day128 | 灵神 | 二叉树 | 反转二叉树的奇数层
Day128 | 灵神 | 二叉树 | 反转二叉树的奇数层2415.反转二叉树的奇数层2415. 反转二叉树的奇数层 - 力扣(LeetCode) 思路: 层序遍历的话就交换对应节点的值吧,就如果是奇数层的话,就把节点都弄到vector里面,然后反转节点的值 完整代码: 12345678910111213141516171819202122232425262728293031class Solution {public: TreeNode* reverseOddLevels(TreeNode* root) { queue<TreeNode *> q; if(root==nullptr) return root; q.push(root); int count=0; while(!q.empty()) { int size=q.size(); ...