Update: A much easier way is to use gdbserver.
Start qemu with the following parameters:
$ qemu-system-x86_64 -s -S -m 512 -hda winxp.img
And connect with gdb like this:
$ gdb (gdb) target remote localhost:1234 (gdb) set architecture i8086 (gdb) break *0x7c00 (gdb) cont
This will breakpoint at 0x7c00, which is when the boot sector has been loaded into memory by the BIOS and control is passed to the boot sector.
You can use ordinary gdb commands to disassemble and debug the guest.