您的位置 首页 元件

ARMv8指令学习(1)

1.TBNZ/TBZ/CBZ/CBNZ(1)TBNZx0,#uimm6,labelTestandbranchNotzero.如果x0[uimm6]!=0,thenjump…

1. TBNZ / TBZ / CBZ / CBNZ

(1) TBNZ x0, #uimm6, label

Test and branch Not zero.

假如x0[uimm6]!=0 , then jump to label方位处履行.

(2) TBZ x0, #uimm6, label

Test and branch Zero.

假如x0[uimm6]==0 , then jump to label方位处履行.

(3) CBZ x0, label

Compare and Branch Zero

假如x0==0 , then jump to label方位处履行

(4) CBNZ x0, label

Compare and branch Not zero.

假如x0 !=0 , then jump to label方位处履行

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

它们都归于Load-Store Single Register(unscaledoffset)

unscaled offset : 指的是”Base addr + 一个当即数”

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

x0 = [base+simm9]指向的内容

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

从 [base+simm9]指向的内容中:取出一个byte,赋给w0.

w0中的其它字节:用0扩展得到.

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

从 [base+simm9]指向的内容中:取出一个byte,赋给w0.

w0中的其它字节:用此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]指向的内存方位

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

把x0中的一个byte,保存到[base+#simm9]指向的内存方位

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

把x0中的一个half-word(2 bytes),保存到[base+#simm9]指向的内存方位

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/yuanjian/275653.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部