From: H. Peter Anvin Date: Thu, 12 Jul 2007 00:51:27 +0000 (-0700) Subject: MBR: shave off another byte X-Git-Tag: syslinux-3.52-pre4~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b19e0b33ad57d71635c55d9724cdff45daa24d73;p=platform%2Fupstream%2Fsyslinux.git MBR: shave off another byte Yet another byte bites the dust... --- diff --git a/mbr/mbr.S b/mbr/mbr.S index 0822b53..2a318be 100644 --- a/mbr/mbr.S +++ b/mbr/mbr.S @@ -93,12 +93,13 @@ next: int $0x13 andw $0x3f, %cx /* Sector count */ pushw %cx /* Save sectors on the stack */ - xorw %ax, %ax - pushw %ax /* High word of sectors/cylinder */ - movb %dh, %al /* dh = number of heads */ - incw %ax /* From 0-based to count */ + movzbw %dh, %ax /* dh = max head */ + incw %ax /* From 0-based max to count */ mulw %cx /* Heads*sectors -> sectors per cylinder */ - pushw %ax /* Save sectors/cylinder on the stack */ + + /* Save sectors/cylinder on the stack */ + pushw %dx /* High word */ + pushw %ax /* Low word */ xorl %eax, %eax /* Base */ cdq /* Root (%edx <- 0) */