1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13         .code16
  14         .section ".inittext","ax"
  15         .globl  intcall
  16         .type   intcall, @function
  17 intcall:
  18         
  19         cmpb    %al, 3f
  20         je      1f
  21         movb    %al, 3f
  22         jmp     1f              
  23 1:
  24         
  25         pushfl
  26         pushw   %fs
  27         pushw   %gs
  28         pushal
  29 
  30         
  31         subw    $44, %sp
  32         movw    %dx, %si
  33         movw    %sp, %di
  34         movw    $11, %cx
  35         rep; movsd
  36 
  37         
  38         popal
  39         popw    %gs
  40         popw    %fs
  41         popw    %es
  42         popw    %ds
  43         popfl
  44 
  45         
  46         .byte   0xcd            
  47 3:      .byte   0
  48 
  49         
  50         pushfl
  51         pushw   %ds
  52         pushw   %es
  53         pushw   %fs
  54         pushw   %gs
  55         pushal
  56 
  57         
  58         cld
  59         movzwl  %sp, %esp
  60         movw    %cs, %ax
  61         movw    %ax, %ds
  62         movw    %ax, %es
  63 
  64         
  65         movw    68(%esp), %di   
  66         andw    %di, %di
  67         jz      4f
  68         movw    %sp, %si
  69         movw    $11, %cx
  70         rep; movsd
  71 4:      addw    $44, %sp
  72 
  73         
  74         popal
  75         popw    %gs
  76         popw    %fs
  77         popfl
  78         retl
  79         .size   intcall, .-intcall