int main() {
  float a = 1.1f;
  float b = 0.3f;
  double c = 0.6f;
  __asm  {
    fld a   ;// ST0=1.1
    fld b   ;// ST1=1.1, ST0=0.3
    fld c   ;// ST2= 1.1, ST1=0.3, ST0=0.6
    fld a   ;// ST3= 1.1, ST2=0.3, ST1=0.6, ST1=0.1
    fld b   ;// ST4= 1.1, ST3=0.3, ST2=0.6, ST1=0.1, ST0=0.1
    fld c   ;// ST5= 1.1, ST4=0.3, ST3=0.6, ST2=0.1, ST1=0.1,  ST0=0.6
    fld a   ;// ST6= 1.1, ST5=0.3, ST4=0.6, ST3=0.1, ST2=0.1,  ST1=0.6, ST0=1.1
    fld b   ;// ST7= 1.1, ST6=0.3, ST5=0.6, ST4=0.1, ST3=0.1,  ST2=0.6, ST1=1.1, ST0=0.3
    fld c   ;// the stack (revolver cylinder) is full 
    fld a   ;// values are still shifted but overwritten ones are invalid
  }

  return 0;
}