Графика в assemblere

Тема в разделе "WASM.BEGINNERS", создана пользователем Love1, 13 янв 2007.

  1. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    Y_Mur,
    да, комменты ваши видел. у меня вот ваша эта модифицированная реализация нормально работает. сейчас вот специально перепроверил, задавая разное кол-во кадров на пропуск, все норм.
     
  2. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    varnie
    Это хорошо, вообще-то в древних манускриптах упоминается, что инфа в этом бите порта зависит от особенностей видеоадаптера и не всегда корректна (как раз мой случай), но ничего другого, кроме БИОС варианта я под ДОС не нашёл, а в DirectX на той видеокарточке всё ОК.
    ЗЫ: ко мне тоже на ты можно ;)
     
  3. Love1

    Love1 New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    39
    У меня Assembler вызывает сложность.Помогите а я там буду разбираться.
     
  4. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Love1
    Код (Text):
    1.    fld [X]
    2.    fld st0
    3.    fsubr [d2]       ; 2 - X (обратное вычитание, если fsub то было бы X - 2)
    4.    fdivp st1, st0   ; X/(2 - X) с освобождением FPU стека от (2 - X)
    5.    fld1         ; st0 = 1
    6.    fpatan       ; fpatan вычисляет арктангенс отношения st1/st0 и выкидывает st0
    7.    fmul  [d2]       ; *2
    8.    fchs         ; сменить знак результата
    9.    fstp  [Result]   ; сохранить результат с освобождением FPU стека
    10.    ...
    11.    Result   dd 0.0
    12.    d2       dd 2.0
    13.    X        dd 3.2e18
    количество загрузок в FPU стек (fld) должно совпадать с количеством выкидываний из стека командами fstp, fdivp, fpatan и т.д.
    Поверим на слово ;) Ждёмс красивых релизов ;)
     
  5. Love1

    Love1 New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    39
    Спасибо!А мне здесь макросы какие-нибудь нужно дописывать?
     
  6. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    ничего не надо, тебе осталось только сделать вывод результата, т.е. переменной Result на экран, и завершить работу программы.
     
  7. Love1

    Love1 New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    39
    Да!!!! Я думала это будет просто.Но не получается.Делалю вывод прерменной, а он выдает ошибкуили вообще не запускается. Уже аж нервы бьют.
     
  8. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    Love1,
    покажи как ты вывод переменной делаешь.
     
  9. KpeHDeJIb

    KpeHDeJIb New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2007
    Сообщения:
    24
    Ну ё-масе (: Раздули блин, делаете табличку sin/cos и вращения можно вычислять без FPU, зачем все эти сложности? Задача-то для начинающего интромейкера, ребята дружно собрались и помогли девушке (;
     
  10. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    KpeHDeJIb,
    вот ты бы раньше появился и через табличку синусов/косинусов сделал:)
    а вообще, главно результат.
    плюс, вроде бы ей и нужно было через работу с FPU все реализовать. или я не прав?
     
  11. Love1

    Love1 New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    39
    Вот такой код получился. Интересует, а почему после компиляции получается файл с расширением *.Bin, хочется получить *.exe. А каким образом? Может что-нибудь еще в коде прописать надо, или убрать?

    Result dd 0.0
    d2 dd 2.0
    X dd 3.2e18

    finit
    fld [X]
    fld st0
    fsubr [d2]
    fdivp st1, st0
    fld1
    fpatan
    fmul [d2]
    fchs
    fstp [Result]

    lea dx,[Result]
    mov ax,09
    int 21h

    mov ax,4c00h
    int 21h
     
  12. KpeHDeJIb

    KpeHDeJIb New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2007
    Сообщения:
    24
    Вот, нарисовал вам свой вариант задачки, но правда на Сси (смотрите аттач) (: В асм перегнать дело получаса, а можно вообще просто листинг асмовский от компилятора взять.
    Вообще что там еще надо было кроме поворотов? (изините - тему всю читать не оч хочется)
     
  13. Love1

    Love1 New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    39
    Роза давно уже работает. Код, с которым проблемы возникли, находится в предыдущем сообщении. Помогите с ним.
     
  14. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    Love1,
    в самом начале кода добавь:
    Код (Text):
    1.  org 100h
    2.  use16
    и будет COM файл компилироваться.

    или же:
    Код (Text):
    1. format PE GUI 4.0
    для компиляции в EXE.
     
  15. KpeHDeJIb

    KpeHDeJIb New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2007
    Сообщения:
    24
    А вот тут баловался с это прогой, получил, простите за выражение, *ОПУ (:
     
  16. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    KpeHDeJIb,
    эта задача уже неактуальна, тебе же Love1 это пятью сантиметрами выше внятно разъяснила, так что эти ваши сомнительные эксперименты не особо тут уместны:))
    хотя да, весело =))

    лучше бы помог с сорцом выше Love1 подсказать, где там при выводе не так.
     
  17. Love1

    Love1 New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    39
    varnie
    Спасибо, теперь компилится и собирается. Такой вопрос, а код сам, который приведен выше, с твоей точки зрения верен? Просто у меня при запуске программы выдается пустая строка и все. Может я в коде напортачила?
     
  18. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    Love1,
    все верно кроме вывода значения переменной Result. щас, ковыряюсь...
     
  19. KpeHDeJIb

    KpeHDeJIb New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2007
    Сообщения:
    24
    А то что переменную из флоат значения надо перегнать в удоботворимый вид перед выводом "как бы" в ASCII, это вас не смущает?

    правка: я бы конечно написал бы тут все это чудо, но оно в учебнике занимает три страницы, так что держите исходник из этой книги.
     
  20. KpeHDeJIb

    KpeHDeJIb New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2007
    Сообщения:
    24
    Love1
    Код (Text):
    1. lea          dx,[Result]
    2. mov          ax,09
    3. int          21h
    Поясните мне вот этот кусок, вдруг я чего-то не понял, во-первых "mov ax,09" вообще-то должно выглядеть как "mov ah, 09h", во-вторых при "lea dx, [Result]" в Result по идеи должна быть строка оканчивающаяся символом '$' (Result DB "abcdef$"). Ну а в-третьих мой предыдущий пост.
    А может я все наптуал? Разбираемся (: