我不能完全包裹我的頭部是我們如何在計算機中鍵入並從屏幕讀取變成計算機可以使用和執行的東西。即使是彙編語言中最低的語言,我也讀到「彙編是高級語言和實際機器代碼本身之間的橋樑」。但真的,這是如何工作的。如果計算機只能處理高低信號,那麼我們如何能夠編寫一個以字母數字和符號爲操作對象的編譯器。這些代碼串如何實際成爲通過晶體管柵極觸發的高和低信號?當你鍵入一個鍵時,實際上是否有一系列信號存儲在計算機電路中的某個寄存器中?它是否也會將該字符的信號發送到屏幕,或者是一個完全獨立的過程,當您按下某個按鍵時,這個過程會持續進行?從組裝代碼到機器代碼的旅程
0
A
回答
2
你其實問了很多(儘管相關)的問題那裏..
我會建議鑽研大會。處理器對所謂的「機器碼」進行操作,它們實際上只是數字,類似於「0x1234 0x001A 0x0002」可能意味着「將2添加到寄存器X的內容」。大多數彙編指令直接轉換爲機器代碼對應部分,因此您可以瞭解處理器如何逐個執行指令。之後,您可以進一步閱讀處理器架構(如TheZ建議的),在那裏您將瞭解這些機器代碼指令如何實際轉換爲不同的晶體管切換和位存儲。
CPU也有一些叫做「中斷」的東西,它們是(非常簡單地說)線路,例如,鍵盤輸出高電壓,並且CPU被觸發以執行某個子程序以進行處理。一個按鍵。從這個中斷到出現在屏幕上的一封信,儘管它仍然是一次旅行。
不要只是深究這個,因爲它只會讓你困惑,一步一步學習。
相關問題
- 1. 組裝指令到機器代碼
- 2. 從本機代碼調用Java代碼?
- 3. ppc64的組裝代碼
- 4. 代碼 - 包裝代碼
- 5. 包裝器的代碼塊
- 6. RedHawk從源代碼建立---找到代碼安裝uhd3.5.3
- 7. 組裝C僞代碼
- 8. MASM組裝使用代碼
- 9. 組裝可執行代碼?
- 10. 從代碼背後的代碼傳遞數組到javascript
- 11. 將組件轉換爲機器代碼
- 12. 機器代碼和處理器代碼之間的差異
- 13. 簡化VCL線程包裝器代碼
- 14. 將組裝的IJVM代碼翻譯成Java代碼
- 15. 從C生成機器代碼
- 16. 在遠程機器上運行代碼
- 17. 代碼列出遠程機器
- 18. 在託管代碼中使用包裝MFC本機代碼
- 19. 從源代碼安裝Spritebuilder
- 20. 從C#代碼安裝IIS
- 21. 從源代碼安裝Membase
- 22. 從源代碼安裝庫到MSYS2
- 23. 隨機密碼的代碼
- 24. MIPS機器代碼轉換
- 25. 86調用機器代碼
- 26. 機器人:通過代碼
- 27. 隨機代碼編寫器
- 28. 將代碼從一臺linux機器複製到另一臺linux機器的Java代碼
- 29. 用php代替機器代碼 - linebreak
- 30. 從Scala源代碼組裝起來的遠程調試JAR
從處理器體系結構開始。由於看起來你想知道的是如何通過處理器運行的高低信號導致任何事情發生。 – TheZ 2012-07-17 21:01:34
這是一個過於廣泛的問題,是電氣工程,而不是編程。你會希望從一個非常簡單的處理器開始,因爲它看起來像你的理解是非常簡單的。你也可以看看簡單的FPGA CPU,因爲你實際上可以設計和運行一個沒有太大困難的W/O(最終)。 – 2012-07-17 21:15:40
獲得Petzold的書「Code」。 http://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319/ref=sr_1_1?ie=UTF8&qid=1342586531&sr=8-1&keywords=petzold+code它不會取代電氣工程學的重度物理學和計算機科學以及其他需要真正瞭解其所有方面的其他學習和實踐經驗。但它至少將你從一個與電腦無關的東西帶入了基本的構建模塊。 – 2012-07-18 05:42:23