Студентам с вопросами о лабораторных работах сюда

Тема в разделе "WASM.BEGINNERS", создана пользователем IceStudent, 11 ноя 2006.

  1. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    maloi
    Вы наверно или в личку пишите, или в коммерс. Возни у вас хватает.
     
  2. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
  3. JOHN

    JOHN New Member

    Публикаций:
    0
    Регистрация:
    13 май 2008
    Сообщения:
    8
    Sharaevskiy_Vitaliy
    l_inc
    В общем, спасибо...

    На икспишке действительно по этому адресу(0000:0475), 0, а в вин98 заветная единичка. Сказав преподу что в икспи может не читаться он сказал "Вполне может быть") И поставил зачет)
    Однако, у одногруппника адрес 0000:0484, т.е. отличается совсем немного, и, всё читается отлично - 16, у другого 0000:0485 и 24.
    Единственный вариант-ИКСПИ не дает читать ТОЛЬКО по моему адресу, но может ли такое быть, и зачем это вообще нужно?
     
  4. JOHN

    JOHN New Member

    Публикаций:
    0
    Регистрация:
    13 май 2008
    Сообщения:
    8
    Кстати, для вывода на экран адресов одногруппников препод вместо
    ADD AL, 030H
    MOV DL, AL
    MOV AH, 02H
    INT 021H

    предпочел
    mov ah,0
    outint ax
    + библиотеку Ioproc в батнике
     
  5. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    JOHN
    Как я сказал, "NT Вам не даст прочитать реальные данные", причем ни с одного из этих адресов. Все com'ы и MZ-ы (exe под DOS) запускаются в рамках процесса ntvdm (Virtual Dos Machine), который и подсовывает, что захочет: где правдоподобные вещи, а где и не очень.
    А зачем нужно... действительно, зачем? Падумаешь, какая-нибудь старая com-программка под DOS 1.0 перезаписью пары байт кишки защищенной XP наизнанку вывернет... всегда же можно новую XP поставить.
    Чего только нельзя предпочесть, когда есть библиотечка подходящая. Я вот предпочитаю, чтобы все программы состояли из одной строчки
    call DoTheThingIWannaDo
    + библиотека clairvoyant.
     
  6. nevesomostb

    nevesomostb New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2008
    Сообщения:
    2
    ПОМОГИ!!!очень нужнна прога которая показывает скорость ввода данных с клавиатуры!буду очень благодарна всем кто откликнется
     
  7. nevesomostb

    nevesomostb New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2008
    Сообщения:
    2
    ПОМОГИТЕ ПОЖАЛ.!!! МОЖЕТ КТО НИТЬ НАЛКИВАЛСЯ ИЛИ ЕСТЬ ПРОГА "СКОРОСТЬ ВВОДА ДАННЫХ С КЛАВИАТУРЫ"ОЧ НАДО ПРОСТО УЖАС КАК БУДУ ОЧ БЛАГОДАРНА!!
     
  8. Slava

    Slava New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    5
    Народ, Вращающийся тор нужен в Ассемблере, может кто нибудь помочь? Курсач горит, а я нуб в ассемблере =) SOS, Help me plz! =)
     
  9. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Подсказка - запускаешь свою программу, просишь набрать конкретный текст, который выведен на экран. В момент первого нажатия на клавишу засекаешь время начала ввода с клавиатуры, отсчитываешь, ну например, 100 нажатий на клавишу, снова засекаешь время или ждешь полного набора заданного текста, делишь время на количество нажатых клавиш - выводишь результаты на экран:)
    [offtop]ОЧ интересно, как будешь благодарить?;)
     
  10. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Slava
    А как бы ты вращающийся тор вывел на экран, написав программу на Паскале, Бейсике или на Си. Напиши исходную программу на ЯВУ, а дальше поможем
     
  11. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    Slava
    Для начала хоть через что рисовать и для какой ОС? VESA, GDI, OpenGL, DX, SDL...
     
  12. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Slava
    вращающийся тор на экран, можно выводить разными способами:
    1) при обработке события WM_TIMER строить через попиксельный вывод на экран поверхности тора (пример есть в маткаде)
    2) вывести вращающийся тор в том, же маткаде, построить на основе маткада авишку и организовать уже средствами ассемблера простейший просмотрщик avi-файлов и выводить его на экран
    3) можно сделать раскадрованный bmp-файл и покадрово через определенные промежутки времени выводить все это на экран, что собственно я и сделал, хотя на курсовую это ни как не тянет (с другой стороны дареному коню в зубы не глядят)
    4) Во вложенном файле сорц и ехе и не забудь сказать спасибо
     
  13. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    во блин... настолько лень пошарить по сайту? Вот, пожалте. Сорцы "из копилки" wasm.ru (и без всяких битмапов и ерроров типа "граница выравнивания проги меньше 0х1000, перелинкуйте её правильно"):
     
  14. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    DEEP
    Это как раз то, о чем я писал в пункте 1. А под Win XP мой экзешник работает нормально, в конце концов, сорц прилагался - можно слинковать и с align=512
     
  15. Slava

    Slava New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    5
    Вооо народ спасибо большое! я уж думал не найду никогда =))
    DEEP Торик конечно красивый, но слишком сложный, мне еще отчитать надо такое))) А так прикольный)
    Mikl__ А ТЕБЕ ОТДЕЛЬНОЕ СПАСИБО!!! Вот как раз то что надо!!! А можешь описать как там что работает? А то мне отчитать бы еще это)) А блоксхема не знаешь для такого как будет выглядеть?
    А прога прям офигенная, коротенькая, то что надо думаю))
     
  16. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Slava а ты не находишь, что это уже наглость. У тебя на руках экзешник и открытый исходный код. У тебя есть преподаватель, который должен был учить тебя ассемблеру и руководитель курсовой работы, который дал тебе такое задание и должен объяснить, как это всё делается. Бери куски программы и неси своему преподу или руководителю и проси объяснить, как это работает, смотри в учебники и в google. Сделай хоть что-нибудь сам...
     
  17. Slava

    Slava New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    5
    хны... Да я с тобой согласен, я сам дурак) Ну просто плз в общих чертах - за счет чего он из картинки делает такую видюшку вращающегося тора, чтобы я просто понял...
    А дальше я уже посижу сам с кодом поразбираюсь че когда происходит, саму суть скажи плзззззззз.....
     
  18. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Slava
    Если в двух словах, как мультики делают догадываешься? Так и здесь из длинного bmp-файла (ширина 3832 пиксела, высота 65 пикелов) выбирается картинка 64Х61 и показывается на 0,1 секунды - затем сдвигаемся на 64 пиксела и выводим следующий кадр, когда доходим до 60 кадра счетчик кадров обнуляется и все начинается с начала. Так можно не только вращающийся тор - а Шварцнегера в трусах показывать. В аттаче более удачный bmp-файл замени его и поставь вот здесь
    Код (Text):
    1.     inc style
    2.     cmp style,60<- 60 кадров, а не 48
    3.     jb a1
    4.     mov style,0
     
  19. Slava

    Slava New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    5
    Спасиб за инфу большое!!! Да теперь ясен смысл, только в коде вот чего не пойму:

    extern _imp__CreateWindowExA@48:dword
    extern _imp__DefWindowProcA@16:dword
    extern _imp__DispatchMessageA@4:dword
    extern _imp__GetMessageA@16:dword
    extern _imp__PostQuitMessage@4:dword
    extern _imp__RegisterClassA@4:dword
    extern _imp__ImageList_Create@20:dword
    extern _imp__LoadImageA@24:dword
    extern _imp__ImageList_Add@12:dword
    extern _imp__DeleteObject@4:dword
    extern _imp__GetDC@4:dword
    extern _imp__SetTimer@16:dword
    extern _imp__ImageList_Draw@24:dword
    extern _imp__GetStockObject@4:dword

    Что этим делается? В наших тупых прогах которые мы писали никогда такого не встречал(
     
  20. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Slava
    Правила форума WASM
    Ключевые слова при поиске в интернете: Google, MSDN и напрасно ты игнорируешь своего преподавателя, спрашивай его чаще, они это любят. А также не скупись, скачай или купи книги, авторы: Фроловы, Финогенов, Юров, Зубков, Пирогов, Петцольд, Шильдт и т.д. все что касается программирования на ассемблере под Windows, не пожалеешь:)
    То, что касается твоего вопроса: extern _imp__CreateWindowExA@48:dword
    объявляется внешняя по отношению к нашему файлу API функция CreateWindowEx
    Может быть CreateWindowExA поддержка ANSI символов (1-байтные символы) и CreateWindowExW поддержка двухбайтных Unicode-символов. @48 означает, что функции будет передано через стек 48 байт. Объявления extern _imp__CreateWindowExA@48:dword могло не быть, если бы я кроме
    "includelib user32.lib" указал еще "include user32.inc" но это уже особенности моего программирования