微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARMv8指令学习(1)

ARMv8指令学习(1)

时间:11-10 来源:互联网 点击:
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]指向的内存位置

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top