atags:
@ ATAG_CORE
.long 2
.long 0x54410001
@ ATAG_CMDLINE
.long (1f - .) >> 2
.long 0x54410009
我刚刚浏览了ARM的启动包装代码。定义了ATAG标记的部分,我无法理解该指令:
.long(1f - 。)>> 2
这条指令做了什么?
答案 0 :(得分:4)
不是ARM专家,但在其他汇编程序中,这意味着
1f
=下一个标签的地址(1个前进)
.
=当前位置
1f - .
将是到下一个标签的距离(以字节为单位)
如果将此除以4(>> 2
),则得到长度而不是字节的距离。