From b19e0b33ad57d71635c55d9724cdff45daa24d73 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Wed, 11 Jul 2007 17:51:27 -0700 Subject: [PATCH] MBR: shave off another byte Yet another byte bites the dust... --- mbr/mbr.S | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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) */ -- 2.7.4