Какой же размер?

Тема в разделе "WASM.ASSEMBLER", создана пользователем KIV, 3 окт 2010.

  1. KIV

    KIV Member

    Публикаций:
    0
    Команда fxsave сохраняет состояние FPU в указанную область памяти. Я пишу на fasm. Какового бы типа (db, dw, dd, dq, dt) я не объявлял fpu_state на команду fxsave [fpu_state] fasm пишет, что размер не верный. Приходиться lea rax, [fpu_state]; fxsave [rax]. То же самое с fxrstor. Объявлять fpu_state: db 512 dup (?), чтобы компилятор не знал размер, не вариант. Как можно улучшить (делать одной командой, а не двумя)?
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    KIV
    Инструкции сохраняющие состояние сопроцессора не имеют стандартных макро компилятора(масм, фасм etc.). Смотреть маны.
     
  3. leo

    leo Active Member

    Публикаций:
    0
    fxsave byte [fpu_state] ?
     
  4. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Код (Text):
    1. label fpu_state_no_type at fpu_state
    2. fxsave [fpu_state_no_type]
    Ну или просто двоеточие после метки не даст фасму ассоциировать с ней размер: fpu_state: rb 512.
     
  5. baldr

    baldr New Member

    Публикаций:
    0
    Других нет — в доке явно сказано:
    А в чём идея жёсткой типизации fpu_state? Это же составной объект. Можно объявить структуру, автоматом будет нетипизированная метка.