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