计算机组成原理学习(二)

前言
本次计算机组成原理学习主要分为两块

我们的世界是多元多义的,而计算机的世界永远是枯燥的,除了0就是1,为了能够勾画出我们能够理解的东西,我们定义了单位字节,但是这些又不能被大多数人认知,因为我们不能写一篇文章,然后满篇都是0和1吧,所以后来CPU的架构师们设计了很多机器指令,这些指令刚开始是一些十六进制的机器码,而这些指令的集合就是CPU指令集,随着科技的发展,这样的设计已经不能满足需求,为了让更多的人能够参与进来,顶层设计师们设计了一种最接近CPU指令集的低级语言,我们称它为汇编语言,汇编的诞生,让计算机有了质的发展。
  汇编语言已经能够让很多人编写自己的软件,但是这样还不够,因为不同的CPU生产厂家指令集不一致,出现了一个问题就是一次编写不能重复使用,不同的CPU需要一定的修改程序的额外工作,后来就提出了高级语言,CPU厂家根据ISA(工业标准规范架构)统一协定实现并支持汇编语言集合(其中有少些汇编语言功能会有所不同),这种汇编集合就是汇编指令集。

一、CPU指令集(机器语言)和汇编语言

  • CPU指令集
    由十六进制数字组成的一组指令。每条指令需要查大量的表格来确定每个数字表示什么意思。每个厂家的指令集都有不同。

  • 汇编语言
    将一组一组的十六进制数字用助记符(Mnemonic)表示,这些助记符就是汇编语言,写好的汇编程序可以通过汇编器(Assembler)去查表把助记符替换成数字,也就把汇编语言翻译成了机器语言。

汇编过程

注意:
1、汇编语言和机器语言的指令是一一对应的,汇编语言有三条指令,机器语言也有三条指令,汇编器就是做一个简单的替换工作
2、

二、32/64位CPU、操作系统、应用程序

  • 32/64位CPU
    指的是CPU的处理数据的能力(每个CPU时钟周期内,CPU能够处理的数据量(二进制数的位数长度))。

注意:
该能力影响CPU的运算速度和内存寻址能力。位数更大的机器的运算速度和内存寻址能力更快和更大,比如,64位机有比32位机更快的运算速度,64位机支持比32机更大的内存。

  • 32/64位操作系统
    指的是操作系统能够操作的最大内存地址空间。32位只能支持并且操作最大4GB的内存,而64位支持128G内存。

  • 32/64位应用程序
    指的是该软件能够操作的最大内存地址空间。32位应用程序只能操作最大4GB的内存,而64位支持128G内存。

  • 三者位数上关系
    从理论上来讲,三者的位数要保持一致的。实际上情况,
    1、64位CPU能够运行32位操作系统,32位系统不能运行64位CPU上。

CPU的位数与操作系统的位数间的关系 不同位数的CPU的指令集的指令长度是不同的。所以,理论上32位CPU上只能跑32位操作系统、64位CPU上只能跑64位操作系统。 但是为了实现”升级到64位硬件的同时保证之前购买的32位软件仍然能够运行”,所以主要厂商对CPU进行处理,使64位CPU能够运行32位操作系统。

2、64位操作系统能够运行32位软件,32软件不能运行在64位系统上。

三、程序运行原理

首先我们通过上面的学习,高级语言需要通过翻译成机器语言才能执行,而翻译的方式分为两种,一种是编译型,另一种是解释型,因此我们基本上将高级语言分为两大类,一种是编译型语言,例如C,C++,Java,另一种是解释型语言,例如Python、Ruby、MATLAB 、JavaScript。

  • 编译型
    源程序全部编译成二进制代码的可运行程序,以后运行该程序无需再经过编译过程。
  • 解释型
    源程序解释一句,然后执行一句,直至结束,以后每次运行都需要解释引擎,解释一句,执行一句。

注意:
关于Java语言到底是编译型还是解释型,这里不做讨论。

让我们拿一个简单的C程序如何在操作系统中运行作为例子,再细入的学习下整个运行全过程。首先C语言程序需要经过编译后才能运行。编译过程如下:预处理、编译、汇编和链接。

  • 预处理
    预处理是编译过程的第一遍做替换工作,将头文件,条件编译指令和宏中的引用用真实的实现代码替换,同时完成其他工作。
  • 编译
    编译是第二遍,它将C语言程序转换为汇编语言程序。
  • 汇编
    汇编将汇编程序转换成机器语言程序,也就是机器指令序列。
  • 链接
    是编译的最后阶段。这需要一个或多个目标文件或库作为输入,并结合他们产生一种单一的(通常是可执行文件)文件。在这样做时,它解析引用外部符号,分配给最后地址的程序/函数和变量,并修改代码和数据,以反映新的地址(一个称为重定位的处理)
C语言编译全过程

注意:
1、链接的作用
  编译的最后一个阶段是链接,链接的作用是将程序代码与操作系统中自带的动态链接库和系统API进行关联。只有关联后程序才能运行。

如果你们想更细入的了解程序运行过程,那就要去深读《编译原理》。因本人知识有限,如果有错误,请指出,随时沟通交流,感谢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容