程序员应如何理解CPU:上篇


你可能会想,作为程序员,我们需要理解CPU吗?

是的,如果你想彻底理解操作系统的话。

在后面的课程中你会发现,仅仅依赖软件是无法完成某些特定的功能的,比如,我们在《程序员如何理解内存》这一节中提到的虚拟内存,这项功能的实现需要依赖CPU的配合才能完成。因此在这一节中,将重点讲解一下作为程序员应该知道哪些CPU相关的知识。

 

什么是机器指令

你肯定已经知道了,CPU是计算机的大脑,程序员写的代码最终都是CPU来执行的。但作为计算机的大脑,CPU并不认识C,C++、Python、Java等语言,这些语言是人类可以认识的,CPU真正能理解的是机器指令。我们写的C/C++程序(包括Java、Python等于语言的解释器)最终被编译器翻译成了机器指令后才被CPU执行的。

你可以把机器指令理解为CPU可以直接执行的代码。那这些CPU可以直接执行的机器指令是什么样子的呢?

我们来看一下C语言中经典的HelloWorld程序:

#include<stdio.h>

int main() {
    printf("hello world.");
    return 0;
}

以下就是HelloWorld程序在被编译器编译后生成的可执行程序。

40055d:       48 83 ec 08             sub    $0x8,%rsp
400561:       be 04 06 40 00          mov    $0x400604,%esi
400566:       bf 01 00 00 00          mov    $0x1,%edi
40056b:     
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值