Avoid clobbering %ebx.

diff --git a/msdos/dpmi.c b/msdos/dpmi.c
index d7a5d67..0b5927c 100644
--- a/msdos/dpmi.c
+++ b/msdos/dpmi.c
@@ -216,6 +216,7 @@
             int _clobber;
             __asm__ __volatile__(
                  "pushl %%ebp\n"
+                 "pushl %%ebx\n"
                  "pushl %%es\n"
                  "pushl %%ds\n"
                  "pushfl\n"
@@ -225,12 +226,12 @@
                  "popl %%ds\n"
                  "mov %%es,%0\n"
                  "popl %%es\n"
+                 "popl %%ebx\n"
                  "popl %%ebp\n"
              : "=d" (es), "=D" (edi), "=S" (_clobber), "=a" (_clobber), "=c" (_clobber)
              : "0" (ss), "2" (ESP_reg(context)),
                "4" (rmcb->regs_sel), "1" (rmcb->regs_ofs),
-               "3" (&rmcb->proc_ofs)
-             : "ebx" );
+               "3" (&rmcb->proc_ofs) );
         } else {
             /* 16-bit DPMI client */
             CONTEXT86 ctx = *context;