新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARMv8指令學習(1)

ARMv8指令學習(1)

作者: 時間:2016-11-10 來源:網(wǎng)絡 收藏
1. TBNZ / TBZ / CBZ / CBNZ

(1) TBNZ x0, #uimm6, label

本文引用地址:http://m.butianyuan.cn/article/201611/317218.htm

Test and branch Not zero.

如果x0[uimm6]!=0 , then jump to label位置處執(zhí)行.

(2) TBZ x0, #uimm6, label

Test and branch Zero.

如果x0[uimm6]==0 , then jump to label位置處執(zhí)行.

(3) CBZ x0, label

Compare and Branch Zero

如果x0==0 , then jump to label位置處執(zhí)行

(4) CBNZ x0, label

Compare and branch Not zero.

如果x0 !=0 , then jump to label位置處執(zhí)行

2. LDUR / LDURB / LDURSB / LDURH / LDURSH / LDURSW / STUR / STURB / STURH

它們都屬于Load-Store Single Register(unscaledoffset)

unscaled offset : 指的是"Base addr + 一個立即數(shù)"

(1) ldur x0,[base,#simm9]

x0 = [base+simm9]指向的內(nèi)容

(2) ldurb w0,[base,#simm9]

從 [base+simm9]指向的內(nèi)容中:取出一個byte,賦給w0.

w0中的其它字節(jié):用0擴展得到.

(3) ldursb w0,[base,#simm9]

從 [base+simm9]指向的內(nèi)容中:取出一個byte,賦給w0.

w0中的其它字節(jié):用此byte的符號位擴展得到.

(4) ldurh

類似ldurb,不過:這次取halfword(2 bytes)

(5) ldursh

類似ldursb,不過:這次取halfword(2 bytes)

(6) ldursw

類似ldursb,不過:這次取word(4 bytes)

(7) stur x0,[base,#simm9]

把x0保存到[base+#simm9]指向的內(nèi)存位置

(8) sturb x0,[base,#simm9]

把x0中的一個byte,保存到[base+#simm9]指向的內(nèi)存位置

(9) sturh x0,[base,#simm9]

把x0中的一個half-word(2 bytes),保存到[base+#simm9]指向的內(nèi)存位置



關鍵詞: ARMv8指令學

評論


技術專區(qū)

關閉