arm汇编程序代码。在下面的代码中做了什么?

时间:2012-07-16 07:04:28

标签: assembly arm boot

atags:

@ ATAG_CORE
.long   2
.long   0x54410001

@ ATAG_CMDLINE
.long   (1f - .) >> 2
.long   0x54410009

我刚刚浏览了ARM的启动包装代码。定义了ATAG标记的部分,我无法理解该指令:

.long(1f - 。)>> 2

这条指令做了什么?

1 个答案:

答案 0 :(得分:4)

不是ARM专家,但在其他汇编程序中,这意味着

1f =下一个标签的地址(1个前进)
. =当前位置

然后

1f - .将是到下一个标签的距离(以字节为单位)

如果将此除以4(>> 2),则得到长度而不是字节的距离。