Messages in this thread | | | From | Cao jin <> | Subject | questions about header.S | Date | Sat, 17 Mar 2018 18:01:27 +0800 |
| |
Hi,
I find two small questions which confuse me a little.
1. # Check signature at end of setup cmpl $0x5a5aaa55, setup_sig jne setup_bad
setup_sig is defined in setup.ld, which points to the constant also defined in setup.ld, so I don't figure out in which case they don't equal and jump to setup_bad?
In my test, drop these 2 lines seems fine, system can boot without any obvious error.
2. # Zero the bss movw $__bss_start, %di movw $_end+3, %cx xorl %eax, %eax subw %di, %cx shrw $2, %cx rep; stosl
It is not a big deal, but I think replace "_end" with "__bss_end" make more sense, and "_end" is already aligned to word length. And, there is no other code use symbol "__bss_end". So I don't know is there any reason to use "_end" here?
In my test, replace the 2nd line with:
movw $_end, %cx
or:
movw $__bss_end+3, %cx
are both fine.
-- Sincerely, Cao jin
| |