精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一行代碼,揭開CPU執行原理!

商務辦公
很多剛剛入坑的小白可能對此完全沒有概念,或者模模糊糊知道個大概,我們寫下的一行行代碼,計算機到底是如何在執行的呢?

[[420603]]

 計算機如何執行你寫的代碼?

知乎上有人提問:電腦怎樣執行編程語言的?

很多剛剛入坑的小白可能對此完全沒有概念,或者模模糊糊知道個大概,我們寫下的一行行代碼,計算機到底是如何在執行的呢?

我們以x86架構的CPU為研究對象,從一個例子出發,來嘗試解答這個問題。

1、高級語言

為了方便編程,偉大的計算機先驅們發明了一個又一個的編程語言,使得我們可以用人類最容易理解的語法規則去告訴計算機完成我們想要的功能。

比如,一個C語言程序員寫下了一行代碼:

  1. int sum = a + b; 

一句簡單的不能再簡單的C語言語句。

但即便是如此簡單,聰明絕頂的計算機卻還是看不懂:這是弄啥捏?

這時候就需要一個翻譯,負責把人類編寫的高級語言“翻譯”成計算機能看得懂的東西,這個翻譯就是編譯器。

2、編譯鏈接

上面的高級語言語句經過編譯器編譯鏈接后,生成了一個目標運行平臺為x86架構的可執行程序exe/elf,使用反編譯工具IDA進行分析,可以看到這行代碼編譯后的樣子是這樣的:

mov eax, a : 將變量a的值存入eax寄存器中

add eax, b : 把變量b的值和eax寄存器的值相加,并將結果保存在eax寄存器中

mov sum, eax : 將計算結果從eax寄存器寫入sum變量

看到了嗎,就像把大象關進冰箱需要分三步,計算機完成程序員的一條加法語句,也分了三步:取出被加數、加上加數、寫入結果。

3、機器指令

上面的匯編指令只是為了人類理解方便的助記符,計算機同樣也不認識這玩意,那幾條指令在內存中實際上是這樣的一串數據:

十六進制:

  1. 8B 45 EC 03 45 E0 89 45 F8 

十六進制是為了書寫方便,計算機真正能看到的只有二進制的比特流:

  1. 10001011 01000101 11101100 00000011 01000101 11100000 10001001 01000101 11111000 

接下來,計算機要做的事情就是識別這些二進制流都是什么意思,轉換成一條條的指令來執行。

在開始執行之前,先來了解一下指令格式。

4、指令格式

x86架構CPU指令集中的指令格式如下:

主要有六個部分:

  • [非必需] 指令前綴:我們經常用到的原子操作指令前面有一個lock前綴,就屬于指令前綴。
  • [必需] 操作碼:指令最核心的部分,標識這條指令是什么功能。
  • [非必需] ModR/M:內存/寄存器操作數字節
  • [非必需] SIB:索引尋址描述字節
  • [非必需] Displacement:常數偏移字節/半字/字
  • [非必需] Immediate:立即數字節/半字/字

需要注意的是,并不是每一條指令都包含上面的所有部分,許多指令只包含其中一部分字段。

根據操作碼的長度不同,指令分為單字節操作碼指令、雙字節操作碼指令、三字節操作碼指令。

5、執行指令

計算機中真正負責指令執行的核心部件是中央處理器CPU,在CPU中有一個指令寄存器IP,全稱是Instruction Pointer,在32位下,它叫EIP,在64位下它叫RIP。

下面開始執行:

指令寄存器EIP指向了第一條指令,開始讀取第一個字節:10001011,也就是0x8B。

開始指令譯碼,翻譯出這是一條什么指令。

下面是x86架構的CPU指令操作碼表:

CPU中的指令譯碼模塊拿到手一看,呀,不是指令前綴,是個單字節操作碼的mov指令,要往eax寄存器里面塞數據,數據從哪來呢?

再往后一看,0x45,再來譯碼:

好家伙,原來是根據ebp寄存器的值+一個8位的偏移來讀取數據。

再往后讀取一個字節,就是偏移值:EC。

現在第一條指令就譯碼出來了:將ebp+0xEC位置處的4個字節的數據取出來,放到eax寄存器中。,這就是這一條指令要干的事情。

同時CPU還得出了另一個信息:這一條指令長度是3個字節,下一條指令的起始地址是在3個字節之后,隨后,指令寄存器EIP向后撥動,指向下一條指令的地址:$+3。

指令譯碼完成之后,開始來正式執行它。

執行完一條以后,又來到指令寄存器EIP指向的地方,隨后再次指令譯碼、執行,不斷重復這個過程,依次執行每一條指令。

這其實就是CPU工作最基本的原理。

拓展

上面描述的過程是CPU在硬件電路層面完成的,但這種設計思想在軟件領域也同樣適用。

大家如果去研究Java虛擬機JVM和Python的解釋器源代碼時,也會發現有相似之處:JVM和解釋器通過定義一套自己的“指令集”,然后它們的編譯器使用這套指令集將Java和Python代碼編譯成對應的程序。

運行的時候也類似,虛擬機或者解釋器不斷識別每一條指令,譯碼、執行,和CPU執行指令的過程頗有幾分相似。

C/C++語言編譯的程序,最后是直接編譯成了CPU的指令,所以跨平臺能力差,如果換到ARM架構平臺,原來的程序將無法執行,需要重新編譯成新的平臺的程序。

而Java、Python這類語言,是自己在軟件層面的指令集,因為其自身已經開發了針對不同CPU平臺的虛擬機、解釋器,所以這些語言編寫的程序移植性好,真正做到一次編寫,到處運行。

總結

我們使用高級語言C、C++編寫的程序代碼,經過編譯器的編譯鏈接,最終變成CPU可以理解的機器指令,隨后CPU在執行時通過不斷的譯碼、執行,最終實現高級語言所描述的功能。

現在你知道你用編程語言寫下的程序是如何跑起來的了嗎?

責任編輯:武曉燕 來源: 編程技術宇宙
相關推薦

2016-12-02 08:53:18

Python一行代碼

2021-12-26 12:10:21

React組件前端

2017-04-05 11:10:23

Javascript代碼前端

2022-04-09 09:11:33

Python

2014-02-12 13:43:50

代碼并行任務

2021-11-02 16:25:41

Python代碼技巧

2020-09-09 16:00:22

Linux進程

2020-08-19 10:30:25

代碼Python多線程

2017-04-13 19:20:18

Python代碼并行任務

2023-09-12 10:10:57

開發者工具開源

2020-09-28 12:34:38

Python代碼開發

2019-12-25 14:08:50

Pandas數據計算

2020-08-12 14:54:00

Python代碼開發

2021-11-11 23:02:16

電腦垃圾軟件

2021-05-28 07:39:17

SQL代碼操作

2017-11-20 14:46:27

命令代碼

2022-09-28 10:12:50

Python代碼可視化

2020-01-10 22:56:56

Python圖像處理Linux

2021-11-05 06:57:50

架構工具代碼

2025-02-12 09:55:01

Java代碼性能
點贊
收藏

51CTO技術棧公眾號

日韩成人亚洲| 欧洲精品久久一区二区| 天天综合一区| 欧美zozozo| www.国产区| 国产区在线看| av电影在线观看完整版一区二区| 日韩免费在线视频| 久久精品一区二区三区四区五区| 精品国产一区二区三区不卡蜜臂 | 717成人午夜免费福利电影| 亚洲色婷婷久久精品av蜜桃| 毛片在线播放网址| 久久se这里有精品| 777精品视频| www日韩在线| 亚洲香蕉视频| 日韩免费视频一区| 欧美午夜aaaaaa免费视频| 蜜臀av在线| 国产精品另类一区| 久久综合狠狠综合久久综青草| 91精品国自产| 天堂久久一区二区三区| 欧美激情网友自拍| 国产麻豆视频在线观看| 欧洲杯半决赛直播| 亚洲精品不卡在线| 国产人妻精品午夜福利免费| 精品福利在线| 在线视频你懂得一区| 加勒比成人在线| av大片在线| 亚洲欧洲日韩在线| 午夜精品短视频| 免费国产在线观看| 91性感美女视频| 99久久精品免费看国产四区 | 青青草国产精品亚洲专区无| 2019亚洲日韩新视频| 久久免费视频99| 亚洲经典一区| 日韩视频免费在线| 日本xxx在线播放| 欧美美女啪啪| 亚洲福利视频在线| 你懂的在线观看网站| 在线精品国产亚洲| 精品国内二区三区| 亚洲区 欧美区| 日韩三级网址| 日韩三级视频在线看| 99re6在线观看| 精品久久福利| 91精品国产综合久久婷婷香蕉 | 国产精品一区二区你懂的| 成人精品久久一区二区三区| 一级久久久久久久| 狠狠色丁香九九婷婷综合五月| 国产精品免费小视频| 日本中文字幕在线观看视频| 日本在线播放一区二区三区| 国产精品久久激情| 亚洲无码精品在线播放| 老司机一区二区| 91免费高清视频| 国产chinasex对白videos麻豆| 国产剧情一区在线| 99电影在线观看| 免费激情视频网站| 96av麻豆蜜桃一区二区| 日韩精品电影网站| √新版天堂资源在线资源| 一区二区中文字幕在线| 女人床在线观看| av剧情在线观看| 欧美性生活大片免费观看网址| 成人性生生活性生交12| 欧美日韩卡一| 欧美大片在线观看| 天堂久久久久久| 精品美女久久久| 日韩视频免费大全中文字幕| 久久免费黄色网址| 免费精品视频| 成人欧美一区二区三区在线湿哒哒| a级片在线视频| 99久久99久久久精品齐齐| 欧美人与性禽动交精品| 黄网页在线观看| 婷婷综合五月天| 国产精品v日韩精品v在线观看| 麻豆精品在线| 亚洲精品视频免费在线观看| 亚洲色图27p| 亚洲美女色禁图| 国产国语videosex另类| www.久久伊人| 久久精品视频在线看| 看全色黄大色大片| 中文在线а√天堂| 日韩一区二区精品| 色婷婷在线影院| 成人国产精品一级毛片视频| 欧美俄罗斯乱妇| 成年人av网站| 国产91精品在线观看| 性欧美.com| 国产777精品精品热热热一区二区| 欧美怡红院视频| 在线精品视频播放| 国产精品久久久久久久久久10秀 | 成人少妇影院yyyy| 色一情一区二区三区四区| 久久国产精品黑丝| 欧美精品第一页| 国产美女免费网站| 91久久黄色| 成人国产精品久久久| 亚洲人午夜射精精品日韩| 亚洲美女区一区| heyzo国产| 日韩中文字幕在线一区| 丝袜亚洲欧美日韩综合| 老熟妇仑乱一区二区av| jlzzjlzz亚洲日本少妇| 国产精品视频二| 在线免费观看亚洲| 国产亚洲精品久久久久久| 一级片中文字幕| 成人午夜激情在线| 成人在线免费高清视频| 欧美成人黄色| 国产一区二区三区三区在线观看 | 久久精品国产理论片免费| 在线中文字幕第一页| 666欧美在线视频| 四虎国产成人精品免费一女五男| 久久伊人亚洲| 狠狠久久综合婷婷不卡| 日韩激情美女| 日韩欧美国产精品一区| 性色av无码久久一区二区三区| 久久99精品久久只有精品| 亚洲国产精品一区在线观看不卡| 国产精品专区免费| 亚洲香蕉成视频在线观看| 在线能看的av| 91蝌蚪porny九色| 1024av视频| 色天下一区二区三区| 欧美亚洲第一页| 玖玖综合伊人| 在线看不卡av| 内射毛片内射国产夫妻| 免费看欧美女人艹b| 亚洲国产激情一区二区三区| 欧美啪啪网站| 欧美猛少妇色xxxxx| 国产夫妻在线观看| 亚洲高清在线精品| 少妇一级淫免费观看 | 日本一极黄色片| 国产精品亚洲二区| 国产女同一区二区| 麻豆电影在线播放| 日韩午夜精品电影| 亚洲一区 视频| 久久一区二区视频| 超碰在线97免费| 久久久久久久久久久妇女| 91精品国产综合久久久久久丝袜| 91桃色在线观看| 亚洲欧美综合另类中字| 中文字幕一区二区三区四区视频| 中文字幕亚洲在| 精品国产午夜福利在线观看| 一区视频在线| 视频一区亚洲| 中文字幕一区图| 日韩美女在线看| 麻豆tv免费在线观看| 精品久久久久久久久久久久久久久久久 | 国产精品巨作av| 日韩av片免费在线观看| 免费av在线网站| 亚洲激情国产精品| 一级成人免费视频| 亚洲国产综合在线| jizz中文字幕| 国产成人精品一区二区三区四区| 国产精品第12页| 亚洲精品99| 欧美日韩一区二区三| 91精品麻豆| 欧美一区二区三区免费视| 日本亚洲精品| 日韩成人xxxx| 国产裸体无遮挡| 色综合中文综合网| 免费在线观看黄视频| 国产三级三级三级精品8ⅰ区| 欧美污在线观看| 日韩不卡一二三区| 蜜臀av无码一区二区三区| 成人羞羞网站| 九9re精品视频在线观看re6| 国产精品亚洲欧美一级在线| 日本亚洲欧洲色α| 91探花在线观看| 美女精品久久久| 97在线观看免费观看高清| 亚洲国内精品视频| 国产免费黄色片| 一本色道久久综合亚洲91| 免费人成在线观看| 国产精品美女久久久久久久 | 亚洲成人黄色片| 欧美日精品一区视频| 天天综合天天干| 一区2区3区在线看| 亚洲二区在线播放| 国产精品美女一区二区三区| 瑟瑟视频在线观看| 99re亚洲国产精品| 在线观看一区二区三区视频| 看片的网站亚洲| 午夜免费精品视频| 亚洲影院免费| av7777777| 亚洲美女视频在线免费观看| 国产精彩视频一区二区| 欧美xxx在线观看| 亚洲天堂第一区| 99re6这里只有精品| 日韩国产美国| 国产欧美亚洲精品a| 欧美日韩一区在线视频| 日韩精品福利一区二区三区| 国产亚洲情侣一区二区无 | 日韩欧美亚洲在线| 色棕色天天综合网| 欧美精品欧美精品| 九一国产精品| 婷婷五月色综合| 第四色成人网| 香蕉视频在线网址| 国产精品久久久乱弄| 在线观看亚洲视频啊啊啊啊| 日韩专区精品| youjizz.com亚洲| 亚洲精品成人影院| 视色,视色影院,视色影库,视色网| 亚洲mv大片欧洲mv大片| 欧美一级免费在线观看| 欧美1区3d| 丁香六月激情网| 亚洲三级网站| 久久久久狠狠高潮亚洲精品| 午夜在线观看免费一区| 精品久久久久久中文字幕2017| 欧美bbbbb| 欧美午夜精品理论片| 国产成人av电影在线| 亚洲麻豆一区二区三区| 91网上在线视频| 国产伦精品一区二区三区视频女| 国产精品电影一区二区三区| www.超碰在线观看| 亚洲图片有声小说| 麻豆精品久久久久久久99蜜桃| 欧美这里有精品| jlzzjlzzjlzz亚洲人| 亚洲第五色综合网| 极品美乳网红视频免费在线观看| 最近中文字幕mv在线一区二区三区四区 | 欧美乱大交xxxxx潮喷l头像| 欧美一级二区| 一区二区久久精品| av网站一区二区三区| 国产全是老熟女太爽了| 最新久久zyz资源站| 麻豆国产尤物av尤物在线观看| 欧美日韩一区二区在线 | 欧美成人ⅴideosxxxxx| 91精品国产综合久久香蕉的用户体验| 中文字幕亚洲在线观看 | 中文字幕在线国产| 久久久精品影视| 九九精品在线观看视频| 一本到不卡精品视频在线观看| 国产精品无码久久av| 日韩成人av网| 1769免费视频在线观看| 日本精品免费观看| 日本一区二区三区电影免费观看| 快播亚洲色图| 欧美激情五月| 亚洲 中文字幕 日韩 无码| 国产剧情av麻豆香蕉精品| 9.1成人看片免费版| 亚洲愉拍自拍另类高清精品| 午夜精品久久久久久久蜜桃| 精品久久久三级丝袜| av福利在线播放| 91高潮在线观看| 视频一区国产| 亚洲一区二区免费视频软件合集 | 亚洲天堂网站在线| 久久奇米777| 国产在线观看成人| 欧美美女黄视频| 你懂的在线看| 国产精华7777777| 亚洲色图在线视频| www五月天com| 亚洲二区中文字幕| www.久久ai| 国产欧美一区二区三区久久人妖| 色婷婷精品视频| 久久人人爽人人爽人人av| 精品一区二区三区欧美| 国产又粗又黄又猛| 欧美日韩激情视频| 国产成人手机在线| 久久97久久97精品免视看 | 国语精品一区| 久久人人爽人人片| 国产精品久久二区二区| 91视频久久久| 亚洲免费小视频| 蜜桃av在线| 国内成+人亚洲| 激情亚洲成人| 亚洲国产精品狼友在线观看| 亚洲自拍偷拍麻豆| 99久久久久久久| 久久成人这里只有精品| 日韩毛片免费看| 色呦呦网站入口| 国产一区二区三区在线观看精品| 亚洲色图日韩精品| 欧美日韩精品福利| 素人av在线| 91最新在线免费观看| 欧美 日韩 国产精品免费观看| 色婷婷综合在线观看| 亚洲精品自拍动漫在线| www.好吊色| 97在线观看视频国产| 窝窝社区一区二区| 日本女优爱爱视频| 国产精品欧美一区二区三区| 91美女精品网站| 欧美日韩国产123| 成人免费直播在线| 狠狠干 狠狠操| 久久免费的精品国产v∧| 波多野结衣mp4| 日韩在线观看免费高清完整版| 国产免费av国片精品草莓男男| 水蜜桃在线免费观看| 懂色av一区二区三区免费观看| 日本在线观看视频网站| 亚洲精品一区中文字幕乱码| 日韩国产网站| 黄色网zhan| 不卡一二三区首页| 国产女主播喷水视频在线观看| 中文字幕av日韩| 日韩黄色av| 日日摸日日碰夜夜爽av| 国产精品久久精品日日| 亚洲AV无码一区二区三区性| 国产91av在线| 日韩成人激情| 自拍偷拍激情视频| 欧美日韩一区二区精品| 日韩子在线观看| 国产一区二区三区四区五区在线| 久久久久久9| 视频国产一区二区| 亚洲激情免费观看| 国产精品天堂蜜av在线播放| www.在线观看av| 日本一区二区视频在线观看| 国内老熟妇对白hdxxxx| 欧美亚洲国产视频| 欧美黄色录像片| 波多野结衣加勒比| 欧美日韩国产电影| 波多一区二区| 中文字幕在线观看一区二区三区| 成人精品在线视频观看| 亚洲网站免费观看| 91精品国产高清自在线| 91精品综合久久久久久久久久久 | 香蕉久久精品日日躁夜夜躁| 午夜一级免费视频| 日韩欧美在线字幕|