Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Dec 2001 22:24:24 +0800
From:      Leslie Jackson <cewandys@yahoo.com>
To:        corecode <corecode@corecode.ath.cx>
Cc:        freebsd-hackers@freebsd.org <freebsd-hackers@freebsd.org>
Subject:   Re: Thanx and another question
Message-ID:  <20011220141808.4B66637B405@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
corecode has written:

>On Thu, 20 Dec 2001 14:2:16 +0800 Leslie Jackson <cewandys@yahoo.com>
>wrote:
>
>> Now i think i've got a basic knowledge about the BIOS data area.
>> But reading the code of boot0.s, i got another question as in the
>> following code:
>> 
>> main.5: 	incw dx			# Next item 
>> 		addb $0x10,bl			# Next entry
>> 		jnc main.3			# Till done
>> 
>> The partition table in MBR only has 4 items, why check for 16 times??
>
>it doesn't check for 16. it adds 0x10 to bl and if bl overflows (prolly
>the end of the partition table. as sizeof(ever entry) == 0x10 and the 4th
>ends at 0x1fc another (a 5th) increment will overflow bl and result in a
>set carry flag.
>

Thanks for your insight! And i've got the point.

Before the loop around on the partition table, the register %dx has been assigned
the value $0x7c2(That is: 0x600 + 0x1be + 4) as in the code:

			movw 		$(partbl+0x4), %bx

So 4 items of the partition table has been checked, %bl has the value $0xf2.
And the following increment(addb $0x10, %bl) will result in a carry flag.

Am i right??

Thanks a lot.

BTW: the more i read it(boot0.s), the more i find it's worth reading.

 



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011220141808.4B66637B405>