STM32F101汇编问题,懂CORTEX-M3汇编的请进
对于CORTEX-M3的汇编指令,有一条指令始终没明白其作用,就是IT指令,arm官网的解释是:Syntax
IT{x{y{z}}} cond
where:
x
specifies the condition switch for the second instruction in the IT block.
y
specifies the condition switch for the third instruction in the IT block.
z
specifies the condition switch for the fourth instruction in the IT block.
cond
specifies the condition for the first instruction in the IT block.
例子:
ITE GT ; Next 2 instructions are conditional <----- 这个注释不是废话么?
ADDGTR1, R0, #55
ADDLER1, R0, #48
我觉得这条指令完全是多余的,因为IT指令的后续指令里面已经明确说明了是条件执行的,把这条指令放在前面构成一个IT block到底有什么目的和原因呢? 本帖最后由 wszyjsw2 于 2012-10-5 21:28 编辑
帮你顶一下 本帖最后由 jisaowang 于 2012-10-6 00:47 编辑
因为thumb指令除了跳转都不支持条件执行。thumb2为了改善这类性能损失,又折中代码长度,所以创造了it指令。这样你就有了最多四条一组的条件执行包,而每条指令长度不变。你可以不写it,汇编系统会帮你自动加上的,但是要符合it指令的要求。另外,it还可以减少代码长度,比如你用add,如果是adds就是半字,add是一个字,但是在it块里,不更新flag的add还是半字。arm的技术博客专门有三篇连载的文章写的很详细,如果英文可以,请去arm网站一观,看完什么都明白了。 顶楼上,正解 jisaowang 发表于 2012-10-6 00:46 static/image/common/back.gif
因为thumb指令除了跳转都不支持条件执行。thumb2为了改善这类性能损失,又折中代码长度,所以创造了it指令 ...
谢谢,说的挺好的,能告诉我你说的那个arm博客链接吗?我想系统地了解一下这些东西。 garyv 发表于 2012-10-6 10:21
谢谢,说的挺好的,能告诉我你说的那个arm博客链接吗?我想系统地了解一下这些东西。 ...
请上arm官网,自然就找到了 顶一下2楼。
页:
[1]