日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

指令到底是什么?机器码又是什么?

發布時間:2023/12/19 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 指令到底是什么?机器码又是什么? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在初學C語言編程的時候,有這么一個概念——程序是由指令構成,若干條指令按照一定的順序排列,來完成某個特定的任務。
我就在想指令到底是什么?

網絡上說:“高級語言被翻譯成匯編指令,匯編指令又被轉換為可執行機器碼。”
那么,匯編指令到底是什么?
匯編里的mov,add,sub,到底是什么?
教材里說匯編指令就是機器碼,那機器碼又是什么?

我們都知道計算機是由硬件電路組成的,而基本的硬件電路,只能完成最簡單的功能。
這肯定不能滿足需求,于是人們把這些基本的硬件電路組合成復雜的電路,來實現復雜的功能。

——————————————————————————————————————————
假設我們有一塊復雜的電路,它只能完成“加”和“減”兩個功能,這兩個功能是由兩個單獨的部件實現,加法電路和減法電路。
要驅動電路工作,就必須給它一個電信號,加法的電信號與減法的電信號肯定不同。
因為電路本身沒有智慧,如果信號相同,它無法區別到底使用哪一個部件。
這兩個不同的信號就能實現兩個不同的功能。
要想實現更多的功能,比如乘法,除法,就往它身上上添加新的硬件電路。
最后添加完成的復雜電路,就叫做微體系結構。
回到當初的問題,指令到底是什么?
指令(機器碼)就是信號,不同的電信號就能驅動不同的硬件,來實現不同的功能。
許許多多各不相同的指令(機器碼),人們給它歸納匯總,就是指令集系統。

———————————————————————————————————————————

指令就是信號說起來蠻簡單。
機器碼在我們人類看來它就是個二進制數,又怎么變成信號了?
實際上在cpu內部,指令的具體執行還是挺麻煩的。
一條指令通常可以被分成兩個部分:操作碼 地址碼
計算機在執行一條指令的時候,常規步驟如下:
1. 從內存里取出指令;
2. 把該指令放到指令寄存器;
3. cpu內部有一個硬件電路叫做譯碼器,它就負責把指令寄存器中的指令操作碼進行“翻譯”,翻譯結果交給操作控制器(硬件電路),控制器產生控制信號!
4. 指令寄存器中那條指令的地址碼,被送到地址寄存器;
到了第3步,指令到信號的轉換才真正完成。

所以硬件才是程序能夠運行的基礎。
計算機系統結構就是軟硬件的接口,人們在這個部分設置一系列的規范,硬件的開發者按照規范去實現硬件。
把規范的每一條指令都用邏輯電路去實現。
值得注意的是,每一條指令都有邏輯電路實現,這句話還可以細分。
有些指令它的邏輯電路屬于共用實現,也就是說好幾個邏輯電路配合起來完成該指令,這些邏輯電路也可以是另一條指令的組成部分。
有些指令它的邏輯電路屬于專用實現,比如x86的mmx或sse擴展指令,每一條mmx或sse指令都對應了專用的硬件電路。
很簡單就能想到——指令越多,硬件電路也越多越復雜。
這樣上層依賴于指令的高級語言,才能完成各種功能,如果沒有底層指令支持,程序是無法運行的。
所以在學習過程中,遇到一條指令,“為什么會有這個指令?”,“為什么指令是這個格式?”
諸如此類的問題,那是因為最初在計算機系統結構部分(分析+評測),被人為規定好的!
先有規范,再去實現硬件!
————————————————
版權聲明:本文為CSDN博主「dark_tone」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/dark_tone/article/details/52426886

總結

以上是生活随笔為你收集整理的指令到底是什么?机器码又是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。