首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >《计算机是怎么跑起来的》第三章读后小结

《计算机是怎么跑起来的》第三章读后小结

作者头像
Lihua奏
发布2026-06-23 20:27:48
发布2026-06-23 20:27:48
70
举报

《计算机是怎么跑起来的》第三章读后小结

编程语言

首先我们看到 “编程语言”,大致分为两类,

  • 高级语言:像、等等JavaPython
  • 低级语言:机器语言 + 汇编语言 构成,更靠近底层硬件

高级语言同样要需要转换成机器语言才能解释、执行

  • 那为什么还设计出高级语言?当然是为了贴合人类思考方式而设计的
  • 高级语言为什么能让CPU看懂?因为一条高级语言,对应着多条指令
代码语言:javascript
复制
//高级语言程序
ans = a + b 
//机器语言程序
a1 00 20 40 00
03 05 04 20 40 00
a3 08 20 40 00

汇编语言

汇编语言,本质上是 机器语言助记符版本

  • 那什么是 机器语言 呢?就是 CPU 能直接理解和执行的指令集合
  • 什么又叫 助记符帮助记忆的符号,来代替原本难记的数字 比如 记住 “+” 比 记住 “01 00 00 00” 好多了

还有三个常用"代号"

  1. MOV:搬运数据
  2. ADD:做加法
  3. JMP:跳到别的位置继续执行

举个例子:

代码语言:javascript
复制
mov eax, 5  eax就是cpu中的寄存器的名字
add eax, 3

意思大致是:
  把数字 5 放进一个小工作格子里
  再给这个格子里的值加上 3

学习汇编语言之前

学习汇编语言之前,先了解一些硬件知识,比如

  • CPU内部的寄存器
  • 内存的地址范围

CPU内部的寄存器

CPU的寄存机,分 COMETII. CPU(模型计算机) 和 Intel CPU(个人计算机) 主要介绍 Intel CPU

  • eax、、、、、、和这8个通用寄存器ecxedxebxespebpesiedi
  • eflags寄存器也叫“标志寄存器”,包含、、等ZFSFOF
    1. ZF(Zero Flag,零标志)为1时表示作为计算结果的数值为0;
    2. SF(Sign Flag,符号标志)为1时表示数据是负数;
    3. OF(Overflow Flag,溢出标志)为1时表示数据溢出(数据无法容纳在容量为32比特的寄存器中)

内存的地址范围

内存并不是一整块模糊的空间,而是按地址一个一个区分开的。程序在运行时,不仅会用到寄存器里的值,也会用到某个地址上的数据,所以了解内存的地址范围,其实就是在了解程序到底是怎么找到数据的。

这样再回头看汇编语言,就会更容易理解,因为很多指令并不是只在“算”,而是在寄存器和内存之间搬运、比较、修改数据。

为什么这些硬件知识重要

之所以学习汇编语言之前要先看这些硬件知识,是因为汇编语言不像高级语言那样帮我们把很多细节都藏起来。它更接近 CPU 的工作方式,所以寄存器、标志寄存器、内存地址这些概念,基本都是绕不过去的。

如果前面不先把这些基础概念弄清楚,后面看到指令的时候,就很容易变成只是在记名字,却不知道这些指令到底在和什么东西打交道。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lihua奏 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 《计算机是怎么跑起来的》第三章读后小结
    • 编程语言
    • 汇编语言
    • 学习汇编语言之前
    • CPU内部的寄存器
    • 内存的地址范围
    • 为什么这些硬件知识重要
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档