Messages in this thread | | | From | Cao jin <> | Subject | Re: questions about header.S | Date | Wed, 21 Mar 2018 17:23:28 +0800 |
| |
Dear Maintainers,
Could you help to give a hint? Thanks in advance.
-- Sincerely, Cao jin
On 03/17/2018 06:01 PM, Cao jin wrote: > 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. >
| |