匯編代碼簡介
說到匯編語言的產生,首先要講一下機器語言。機器語言是機器指令的集合。機器指令展開來講就是一臺機器可以正確執行的命令。電子計算機的機器指令是一列二進制數字。計算機將之轉變為一列高低電平,以使計算機的電子器件受到驅動,進行運算。
上面所說的計算機指的是可以執行機器指令,進行運算的機器。這是早期計算機的概念。在我們常用的PC機中,有一個芯片來完成上面所說的計算機的功能。這個芯片就是我們常說的CPU(Central
Processing Unit,中央處理單元)。每一種微處理器,由于硬件設計和內部結構的不同,就需要用不同的電平脈沖來控制,使它工作。所以每一種微處理器都有自己的機器指令集,也就是機器語言。
早期的程序設計均使用機器語言。程序員們將用0,1數字編成的程序代碼打在紙帶或卡片上,1打孔,0不打孔,再將程序通過紙帶機或卡片機輸入計算機,進行運算。這樣的機器語言由純粹的0和1構成,十分復雜,不方便閱讀和修改,也容易產生錯誤。
程序員們很快就發現了使用機器語言帶來的麻煩(何止是麻煩,簡直令人發狂),它們難于辨別和記憶,給整個產業的發展帶來了障礙,于是匯編語言產生了。
匯編語言的主體是匯編指令。匯編指令和機器指令的差別在于指令的表示方法上。匯編指令是機器指令便于記憶的書寫格式。
我們舉個例子看下:
源代碼:
匯編代碼和機器碼:
可以看到匯編代碼,好歹還有幾個能猜出意思的單詞。
有沒有覺得現在的程序員還是挺幸福的。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
相關推薦
很多時候需要對照C和匯編進行分析和調試,所以需要查閱匯編代碼,以下分享幾種方式。
發表于 06-09 19:13
?2794次閱讀
OSCtxSw OSIntCtxSw匯編代碼相同,怎么體現出區別的?osctxsw()需要保存出口狀態。osintctxsw()不需要。但是匯編代碼都一樣,為什么?OSCtxSwPUS
發表于 08-21 22:28
大多數開發人員使用高級語言(如C和C++)編寫大部分代碼。然后將此高級源代碼編譯為在目標設備上運行的機器代碼。
然而,有時編寫低級匯編代碼也
發表于 08-02 13:01
在DSP的開發中,常用的算法都可以用C/C++代碼來高效實現。但是對一些特殊寄存器的讀寫,例如某些CPU寄存器的讀寫,因為C/C++代碼無法直接對其訪問,仍然需要使用匯編代碼進行操作。
發表于 10-18 09:47
?7次下載
12.2 從匯編代碼訪問 C target=_blank style=cursor:pointer;color:#D05C38;text-decoration:underline;》C 全局變量 在
發表于 10-19 09:25
?0次下載
本文檔的主要內容詳細介紹的是proteus交通燈電路圖及匯編代碼及應用程序免費下載。
發表于 09-05 08:00
?68次下載
本文檔的主要內容詳細介紹的是51單片機軟件復位的匯編代碼免費下載。
發表于 08-27 17:30
?2次下載
應用程序幾乎都是由C代碼和匯編代碼混合組成的。在那些對性能起決定性作用的關鍵功能中,DSP工程師將繼續使用高度優化的匯編代碼,同時轉用C語言
發表于 01-31 17:11
?2914次閱讀
在C中嵌套匯編代碼難嗎?
發表于 01-10 14:24
?2650次閱讀
EE-134:為SHARC?系列編寫與C兼容的匯編代碼中斷處理程序
發表于 05-26 09:21
?3次下載
有人使用ST免費提供的集成開發環境STM32CubeIDE,想知道如何查看匯編代碼,這里簡單介紹下相關配置操作。
發表于 09-01 09:55
?3514次閱讀
Rust enum 是一個非常強大的特性, 很多人好奇他內部是如何實現的, 這里作者從生成的匯編代碼來幫你深入理解 Rust 的 enum. 一些關鍵結論:
發表于 11-15 11:13
?546次閱讀
分析軟件缺陷,有時候需要把ELF文件反匯編為匯編代碼,然后分析匯編代碼,需要把匯編
發表于 06-12 16:45
?2811次閱讀
這里新開一篇博文,專門講講針對ARM格式的匯編代碼,使用AC6.12應該如何處理。下述內容大多來自文檔
發表于 11-13 16:03
?908次閱讀
電子發燒友網站提供《TMS320LF240x DSP的C語言和匯編代碼快速入門.pdf》資料免費下載
發表于 10-18 10:14
?0次下載
評論