CMP R0, #0
ITT EQ
MOVEQ R0, #0x7FFFFFFF
BXEQ LR
其次,为什么需要IT指导?为什么不直接:
CMP R0, #0
MOVEQ R0, #0x7FFFFFFF
BXEQ LR
它是MOV而不是MOVS,因此标志不会被更新,并且BXEQ中的EQ仍然“引用”CMP设置的标志值。
你为什么不试试呢?
.cpu cortex-m3
.thumb
.syntax unified
CMP R0, #0
ITT EQ
MOVEQ R0, #0x7FFFFFFF
BXEQ LR
CMP R0, #0
MOVEQ R0, #0x7FFFFFFF
BXEQ LR
初试
arm-none-eabi-as vectors.s -o vectors.o
vectors.s: Assembler messages:
vectors.s:13: Error: thumb conditional instruction should be in IT block -- `moveq R0,#0x7FFFFFFF'
vectors.s:14: Error: thumb conditional instruction should be in IT block -- `bxeq LR'
make: *** [vectors.o] Error 1
这是显而易见的,因为在thumb模式下没有这些指令的条件版本。
.cpu cortex-m3
.thumb
.syntax unified
CMP R0, #0
ITT EQ
MOVEQ R0, #0x7FFFFFFF
BXEQ LR
0: 2800 cmp r0, #0
2: bf04 itt eq
4: f06f 4000 mvneq.w r0, #2147483648 ; 0x80000000
8: 4770 bxeq lr
.cpu cortex-m3
.thumb
.syntax unified
CMP R0, #0
ITT EQ
MOV R0, #0x7FFFFFFF
BX LR
vectors.s:8: Error: instruction not allowed in IT block -- `mov R0,#0x7FFFFFFF'
vectors.s:9: Error: incorrect condition in IT block -- `bx LR'
.cpu cortex-m3
.thumb
.syntax unified
CMP R0, #0
IT EQ
MOVEQ R0, #0x7FFFFFFF
BX LR
0: 2800 cmp r0, #0
2: bf08 it eq
4: f06f 4000 mvneq.w r0, #2147483648 ; 0x80000000
8: 4770 bx lr
注意bx lr是相同的指令0x4770,在端或不在端的eq显然是一个汇编语法的东西,以帮助您解决问题,并确保您获得正确数量的指令绑定到If Then指令。(您可以看到在一个条件指令和两个条件指令之间发生了变化)。
我确实觉得很烦
.cpu cortex-m3
.thumb
.syntax unified
CMP R0, #0
IT EQ
MOVSEQ R0, #0x7
BX LR
movs r0,#7
mov r0,#7
movs.w r0,#7
在本例中使用thumb2扩展名
00000000 <.text>:
0: 2800 cmp r0, #0
2: bf08 it eq
4: f05f 0007 movseq.w r0, #7
8: 4770 bx lr
a: 2007 movs r0, #7
c: f04f 0007 mov.w r0, #7
10: f05f 0007 movs.w r0, #7
.syntax unified
CMP R0, #0
MOVSEQ R0, #0x7
BXEQ LR
movs r0,#7
mov r0,#7
给出
00000000 <.text>:
0: e3500000 cmp r0, #0
4: 03b00007 movseq r0, #7
8: 012fff1e bxeq lr
c: e3b00007 movs r0, #7
10: e3a00007 mov r0, #7
也许这就是你问题的根源,但很有可能汇编语言可以为你插入it指令,但汇编语言希望是一对一的(尽管存在所有处理器的伪指令),所以我猜他们希望你明确地表明你想要If Then指令和/或你想要If Then指令。汇编程序也在帮助您,它说您需要使用一个IT块,而不是简单地说它是一个无效指令。
另一个实验
.cpu arm7t
.thumb
.syntax unified
CMP R0, #0
MOVSEQ R0, #0x7
BX LR
movs r0,#7
vectors.s:7: Error: selected processor does not support Thumb mode `it EQ'
vectors.s:7: Error: thumb conditional instruction should be in IT block -- `movseq R0,#0x7'
如果click在具体的DOM元素之外,我使用下面的指令来检测和隐藏块: 我已将此指令应用于元素: 部件代码为: 问题是当我调用click时,我设置了< code >这个。_searchContentOpen设置为真/假。 视情况而定,我在应用指令的地方显示块。但是当ngIF工作时,指令也总是同步工作。所以结果块永远不会显示。 如何修复它?
例如,Angular 2内置的属性指令ngClass和ngStyle,可以在任何组件或元素上工作。
1.多臂赌博机 多臂赌博机是指一类问题,这类问题重复的从k个行为(action)中选择一个,并获得一个奖励(reward),一次选择的时间周期称为一个时间步(time-step)。当选择并执行完一个行为后,得到一个奖励,我们称奖励的期望为这次行为的真实值(value)。在t时刻选择的行为用At表示,对应的奖励用Rt表示,对于行为a,其真实值为q∗(a),表示行为a的期望奖励,即: $$q_*(a)
View Example 指令与我们看到的其他指令有不同的语法。 如果你熟悉for...of语句,你会注意到,他们几乎相同。 ngFor允许您指定要迭代的iterable对象,以及在范围内引用每个项的名称。 在我们的示例中,您可以看到该 可用于插值以及属性绑定。 该指令做一些额外的解析,所以当它扩展到模板形式,它看起来有点不同: View Example 请注意,模板元素上有一个奇怪的let-ep