计算机处理器是如何运行条件和循环的?
合集 · 直观理解计算机技术【CoreDumped】 (68)
-
代码中指定变量类型为何如此重要?
11:03
-
栈为何如此之快?
13:46
-
堆为何如此之慢?
17:53
-
动态数组的内部机制(ArrayList VS LinkedList)
19:56
-
探索计算机并发与多任务处理的历史
15:37
-
晶体管是如何运行代码的?
12:54
-
晶体管是如何记忆数据的?
16:12
-
制作一个CPU来运行程序
18:47
-
计算机如何将字符串转换为数字
11:23
-
动态随机存取存储器(DRAM)的工作原理
17:18
-
计算机处理器是如何运行条件和循环的?
16:05
-
一个程序不是一个进程
6:51
-
深入理解进程,如何进行上下文切换?计算机科学中最深刻和最成功的想法之一。
14:52
-
处理器内部的单个位如何保护操作系统的完整性?
20:20
-
计算的心跳:时钟如何推动 CPU 前进?
13:14
-
英语原声版-计算的心跳:时钟如何推动 CPU 前进?
14:22
-
(英语原声)进程间通信:共享内存或发送消息
14:15
-
(中文配音)进程间通信:共享内存或发送消息
12:29
-
(中文配音)为什么单核处理器需要线程?
14:59
-
(英语原声)为什么单核处理器需要线程?
16:07
-
(中文配音)多核系统上的线程
9:26
-
(英语原声)多核系统上的线程
11:27
-
(中文配音)为什么应用程序是特定于操作系统的?
11:52
-
(英语原声)为什么应用程序是特定于操作系统的?
13:09
-
(英语原声)硬件如何在多任务处理中协助软件?
13:15
-
(中文配音)硬件如何在多任务处理中协助软件?
11:29
-
链表的一个实际应用
20:34
-
让你的电脑运行更流畅的奇妙算法
45:02
-
(流畅中文配音)让你的电脑运行更流畅的奇妙算法
43:38
-
(原声双语字幕)当程序调用 sleep() 时会发生什么?
19:41
-
(流畅中文配音)当程序调用 sleep() 时会发生什么?
17:57
-
这个简单算法驱动了真正的解释器:Pratt Parsing
20:40
-
(双语字幕)编程中最难以捉摸的Bug:竞态条件
18:19
-
(流畅中文配音)编程中最难以捉摸的Bug:竞态条件
19:23
-
(中文配音)阻止内存攻击的底层电路
16:02
-
(英语原声)阻止内存攻击的底层电路
14:51
-
为什么有些项目会使用多种编程语言?
18:04
-
为什么有些项目会使用多种编程语言?
19:32
-
别再杀进程了!让 Ctrl+C 变成“喵”……(用信号实现)
17:15
-
别再杀进程了!让 Ctrl+C 变成“喵”...(用信号实现)
19:23
-
80 年代避免竞态条件的算法(以及它为何失败)
19:05
-
80 年代避免竞态条件的算法(以及它为何失败)
19:43
-
CPU如何与众多不同设备交互?
22:10
-
(中文配音)CPU如何与众多不同设备交互?
23:52
-
(中文配音)你每天都在用的奇特CPU操作
14:04
-
你每天都在用的奇特CPU操作
13:04
-
(中文配音)历史如何塑造了我们今天仍在使用的编程术语?
18:04
-
(英语原声)历史如何塑造了我们今天仍在使用的编程术语?
17:42
-
为什么有些底层项目里会充满这种奇怪的代码?
16:41
-
(中文配音)为什么有些底层项目里会充满这种奇怪的代码?
16:39
-
编译与解释代码如何共处同一程序中?
21:35
-
(英语原声)编译与解释代码如何共处同一程序中?
21:30
-
【双语字幕】Core Dumped 常见问题的集中回答
17:09
-
【双语字幕】90年代的设计决策阻碍了Python并行化
13:36
-
【中文配音】90年代的设计决策阻碍了Python并行化
12:01
-
Linux创建进程的奇怪方式
17:51
-
【中文配音】Linux创建进程的奇怪方式
18:14
-
CPU如何运行函数?
19:49
-
【中文配音】CPU如何运行函数?
19:38
-
没有人解释的问题:内核的边界在哪里?
17:15
-
【英语原声】没有人解释的问题:内核的边界在哪里?
19:36
-
硬件如何让线程问题不再那么棘手?
35:49
-
为什么在macOS、Windows和Linux上安装应用程序如此不同?
19:47
-
游戏公司真的能破坏你的电脑吗?
24:00
-
一个视频说透“架构”:为什么你的程序换个CPU就可能跑不了?
10:43
-
CPU如何执行有符号和无符号运算?
14:45
-
简单指令, 奇妙算法
19:11
-
当CPU遇到它不认识的指令,会发生什么?😱【底层原理】
9:26
Description
视频为个人学习所收集,为方便快速理解,通过chatgpt将视频原英文配音翻译校准后转成中文配音,原视频地址为:https://www.youtube.com/watch?v=Ui6QyzcD3_E。 在这段视频中,从基础的指令执行到复杂的条件判断和循环处理,视频详细解释了CPU如何逐步读取、解码和执行指令。通过一个简化的汇编语言示例,观众可以直观地理解程序的编译和运行过程,包括如何使用条件跳转和循环来控制程序流程。此外,视频还介绍了处理器的标志(flags)如何帮助做出决策,以及如何通过设置和检测这些标志来实现条件判断。最后,视频提供了一个工具的链接,允许用户逐步运行示例程序,加深对内容的理解。无论你是编程新手还是希望加深对计算机工作原理认识的老手,这个视频都将为你提供宝贵的知识和洞见。
Comments
非常好的說明 使我的計算機概論旋轉
♥ 61 ↩ 7
有趣!原来条件判断是用jump实现的。
♥ 49 ↩ 3
CPU用计数器从头开始读取指令,汇编代码就是你给每一个二进制码取名字,再把这些名字组合起来,实际读取时还是读取二进制源码。jump指令其实就是向计数器里写入数据,因为计数器里的值决定了读哪个地方的代码,然后就能实现跳转了。以上是我玩过图灵完备后的个人观点,如有错误,欢迎指正[呲牙]
♥ 37 ↩ 4
如果能把视频分成2p,1p放原视频,另1p放你处理过的翻译视频那就更好了
♥ 14 ↩ 3
GCC会将代码编译为右边形式,先将0赋值给ax寄存器,然后无条件跳转到cmp进行减法比较,小于则触发jle跳转到add进行加法,再重复cmp、jle、add循环,直到比较不成立了再忽略jle执行下面的指令。值得注意的是:%ax会被c语言当作返回值,前面只是暂时用寄存器%ax存储a的值而已,当编译器发觉a这个变量没有任何意义了时,就会扔掉它并重新腾出这个寄存器保存返回值(return 0;),然后ret返回。
♥ 11 ↩ 2
牛逼,这比我大学老师讲的好
♥ 7
视频开始就很引人注目!(●´∇`●)
♥ 6
从汇编到c是这样的[doge]
♥ 4
感谢分享,建议加一个中英字幕版
♥ 4
条件判断 ,地址加法器
♥ 4
24小时不停转是吧
♥ 4
推荐游戏:程序员升职记
♥ 3
这不是转载视频吗 配音字幕都是ai 投自创视频真的合适吗
♥ 3 ↩ 10
这比看书好理解多了
♥ 1
原码 反码 补码
♥ 1
条件往后跳,循环往前跳
♥ 1
讲得非常好
♥ 1
避免数据和指令地址乱套是不是分别放在.data/.bss和.text两个不同内存段中就行了?
♥ 1
视频里标志位的 O Z N 代表什么,我自己设计的电路只有两个标志位,分别为 = ,以及 ≥ ,用这两个标志实现了 > ≥ = ≤ < ≠ 视频里第三个是什么?
♥ 1 ↩ 2