匯編指令簡介
匯編語言是計算機語言的一種,是一種低級語言。相比高級語言,匯編語言更接近底層硬件,使用更加直接,效率更高。但相對而言,匯編語言更加復(fù)雜,語法更加嚴(yán)格。
操作數(shù)指示符:
大多數(shù)指令有一個或多個操作數(shù),指示出執(zhí)行一個操作中要使用的源數(shù)據(jù)值。
操作數(shù)一般可以分為三類:
立即數(shù)
內(nèi)存引用
數(shù)據(jù)傳送指令:
最頻繁使用的指令,負(fù)責(zé)將數(shù)據(jù)從一個位置復(fù)制到另一個位置。
例如:
mov %rbx, %rax : 將rbx寄存器的值移動到rax寄存器
mov %rbx, (%rax) : 將rbx寄存器的值移動到rax寄存器所表示的內(nèi)存地址中
以及mov指令的一些擴展指令: movb, movw, movl, movq等等
壓入和彈出棧數(shù)據(jù)
將數(shù)據(jù)壓入程序棧中,以及從程序棧中彈出數(shù)據(jù)。
push %rbp : 將%rbp寄存器的值壓入程序棧指針指向的位置
pop %rbp : 將棧指針指向的數(shù)據(jù)彈出,放入%rbp寄存器
算數(shù)和邏輯操作
跳轉(zhuǎn)指令
導(dǎo)致執(zhí)行切換到程序中一個全新的位置
jmp %rax 用寄存器%rax中的值作為跳轉(zhuǎn)目標(biāo)
jmp是無條件跳轉(zhuǎn),還有一些條件跳轉(zhuǎn)指令,有興趣的同學(xué)可以查一下資料。
比較和測試指令
比較指令CMP,只設(shè)置條件碼,不更新目的寄存器,其余的行為和SUB指令一致
測試指令TEST,只設(shè)置條件碼,不更新目的寄存器,其余的行為和ADD指令一致
更多詳細(xì)的內(nèi)容,可以通過相關(guān)書籍進(jìn)行系統(tǒng)性的了解,鑒于篇幅,就不多介紹了。
讓我們回到剛才的例子,可以看到由于把內(nèi)存引用替換成了訪問寄存器,程序性能就有了明顯的提升。
-
計算機
+關(guān)注
關(guān)注
19文章
7626瀏覽量
90140 -
代碼
+關(guān)注
關(guān)注
30文章
4886瀏覽量
70239 -
匯編指令
+關(guān)注
關(guān)注
0文章
38瀏覽量
11621
發(fā)布評論請先 登錄
計算機語言概述
AVR單片機匯編指令系統(tǒng)相關(guān)資料分享
匯編語言是什么?有何優(yōu)缺點
計算機組成原理與匯編語言程序設(shè)計

匯編語言中常用的偽指令

計算機學(xué)習(xí)教程之指令系統(tǒng)與匯編語言程序設(shè)計課件免費下載
計算機的機器語言和匯編語言與高級語言的詳細(xì)資料介紹
AVR單片機匯編指令系統(tǒng)

[從零學(xué)習(xí)匯編語言] - 計算機中的硬件與軟件
![[從零學(xué)習(xí)<b class='flag-5'>匯編語言</b>] - <b class='flag-5'>計算機</b>中的硬件與軟件](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論