uClinux 中的second loader , crt0ram.S文件问题

ganggl   2009-1-21 03:00 楼主
请高手指点:
嵌入式uClinux 中的second loader , crt0ram.S文件中(以Arcturus的uc5272为例)
#ifdef CONFIG_ROMFS_FS
        /*
         *        Move ROM filesystem above bss :-)
         */
        lea.l        _sbss, %a0                        /* Get start of bss */
        lea.l        _ebss, %a1                        /* Set up destination  */
        move.l        %a0, %a2                        /* Copy of bss start */

        move.l        8(%a0), %d0                        /* Get size of ROMFS */
        addq.l        #8, %d0                                /* Allow for rounding */
        and.l        #0xfffffffc, %d0                /* Whole words */

        add.l        %d0, %a0                        /* Copy from end */
        add.l        %d0, %a1                        /* Copy from end */
        move.l        %a1, _ramstart                        /* Set start of ram */

这一段是搬移romfs,请问其中addq.l        #8, %d0, 这里的+8是为了4字节对齐,但为何立即数是8呢,有些人说4也可以,有些人说4不行。
请高手个给予指点,并说明原因。
谢了!





回复评论 (3)

mark
点赞  2009-1-21 08:55
mark
点赞  2009-1-21 08:55
mark too!
点赞  2009-1-21 21:02
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复