<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 混合使用C、C++和匯編語(yǔ)之:內聯(lián)匯編和嵌入型匯編的使用

混合使用C、C++和匯編語(yǔ)之:內聯(lián)匯編和嵌入型匯編的使用

作者: 時(shí)間:2013-09-30 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/257034.htm

7.指令中的操作數

指令中的操作數分為以下4種。

·虛擬寄存器

·表達式操作數

·寄存器列表

·中間操作數

(1)虛擬寄存器

指令中指定的寄存器表示虛擬寄存器而不是實(shí)際的物理寄存器。由編譯器編譯的匯編代碼中使用的物理寄存器可能與在指令中指定的不同。每個(gè)虛擬寄存器的初值是不可預測的,必須在讀取之前將初值寫(xiě)入虛擬寄存器。如果在寫(xiě)入之前試圖讀虛擬寄存器,編譯程序會(huì )給予警告。

(2)表達式操作數

在內聯(lián)匯編指令中,可將函數自變量、++變量和其他表達式指定為寄存器操作數。用作操作數的表達式必須為整數類(lèi)型,如char、short、int或long,(長(cháng)整型longlong除外)或指針類(lèi)型。當表達式作為內聯(lián)匯編指令的操作數時(shí),編譯器在編譯時(shí)自動(dòng)增加一段代碼計算表示式的值并將其加載到指定的寄存器中。

注意

數據類(lèi)型中除char和short(默認為無(wú)符號類(lèi)型)外,其他均為有符號類(lèi)型。

下面的例子顯示了編譯器如何處理內聯(lián)匯編中的表達式操作數。

程序源代碼如下所示。

/*ExampleOperands*/

voidmy_operand(void)

{

inti,j,total;

__asm

{

movi,#0

movj,#1

addtotal,j,i+j

}

}

intmain(void)

{

my_operand();

}

由編譯器編譯出的匯編代碼如下所示(其中只列出了內聯(lián)匯編的一段代碼)。

my_operand:

0000807CE3A01000MOVr1,#0

>>>OPERANDS#12movj,#1

00008080E3A00001MOVr0,#1

00008084E0812000ADDr2,r1,r0

>>>OPERANDS#13addtotal,j,i+j

00008088E0803002ADDr3,r0,r2

>>>OPERANDS#15}

0000808CE12FFF1EBXr14

>>>OPERANDS#19{

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


c++相關(guān)文章:c++教程




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>