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

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

  1. artie

    artie New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    7
    задачка: после двойного щелчка левой кнопки в рабочей области окна, окно начинает перемещаться в вертикальном направлении. нажатие любой клавиши заканчивает движение.

    вот основной код моей оконной функции:

    .if uMsg == WM_DESTROY

    invoke PostQuitMessage, NULL
    return 0

    .elseif uMsg == WM_LBUTTONDOWN

    cmp wFlag, 1
    je mexit
    mov wFlag, 1
    inc wY
    invoke MoveWindow, hWin, wX, wY, wWidth, wHeight, 1
    return 0

    .elseif uMsg == WM_CHAR

    mov wFlag, 0
    return 0

    .elseif uMsg == WM_MOVE

    cmp wFlag, 0
    je mexit
    inc wY
    delay
    invoke MoveWindow, hWin, wX, wY, wWidth, wHeight, 1
    return 0

    .endif

    в чем основные проблемы:
    1. заставить работать двойной щелчок так и не смог. никак не реагирует, поэтому заменил на одиночное нажатие.
    2. по идее, после нажатия окно должно постоянно "лететь" вниз, но, проехав некоторое время, оно останавливается, хотя флажок нигде больше не сбрасывается
    3. нажатие любой клавиши во время полета не останавливает его (TranslateMessage в WinMain присутствует)

    как бороться?
     
  2. artie

    artie New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    7
    с двойным щелчком разобрался. все остальное так же не работает
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Red_lightsaber
    Читай Зубкова. Есть электронный вариант. Если тебе лень читать, то в нём же есть примеры, как сделать то, что тебе надо.
    artie
    Я вообще не вгрузился в твой код :\
    Код (Text):
    1.     .elseif uMsg == WM_LBUTTONDOWN
    2.  
    3.         cmp wFlag, 1
    4.         je mexit
    5.         mov wFlag, 1
    6.         inc wY
    7.         invoke MoveWindow, hWin, wX, wY, wWidth, wHeight, 1
    8.         return 0
    зачем ты здесь двигаешь окно?
    Конечно не работает. Ты делаешь MoveWindow, он отсылает окну WM_MOVE, ты опять его обрабатываешь. Лучше кстати тебе обрабатывать WM_KEYDOWN.
    А двигать окно в отдельном потоке.
     
  4. artie

    artie New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    7
    n0name
    при обработке двойного щелчка устанавливаю флажок и первый раз двигаю окно, чтобы войти в цикл MoveWindow->WM_MOVE

    окно должно двигаться до тех пор, пока не придет сообщение WM_CHAR, при обработке которого сбрасывается флажок

    сомневаюсь, что в этой лабе нужны потоки...

    полный текст проги в этом топике:
    http://www.wasm.ru/forum/viewtopic.php?id=19811
     
  5. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    ну или отдельный поток или SetTimer. то что сказал noname cпарведливо так как получается
    Код (Text):
    1. WM_MOVE <=
    2. |               |
    3. |               |
    4. v               |
    5. MoveWindow
     
  6. artie

    artie New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2007
    Сообщения:
    7
    спасибо, сделал через таймер
     
  7. CrazyFun

    CrazyFun New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2005
    Сообщения:
    129
    это конечно не ассемблер, но на других форумах по программированию не обитал, так что не обессудьте...

    есть exel-таблица. макрос на visual basic извлекает из неё данные. проблема - отправить эти данные методом post на сервер где php-скрипт занесет из в базу данных. Пытаюсь использовать компанент webbrowser. однако отправить post yе получается ну никак...

    вроде правильный код такой:

    Код (Text):
    1. u = "http://www.zxz1.jino-net.ru/s3.php"
    2. pst = "z=3&y=79"
    3. hdr = "Content-Type: application/x-www-form-urlencoded" & vbCrLf
    4. hdr = "Content-length: 8" & vbCrLf & vbCrLf
    5. UserForm1.WebBrowser1.Navigate u, 0, 0, pst, hdr
    6. UserForm1.Show
    чуток экспериментировал:

    Код (Text):
    1. u = "http://www.zxz1.jino-net.ru/s3.php"
    2. pst = "z=3&y=79"
    3. hdr = "POST /s3.php HTTP/1.0" + vbCrLf
    4. hdr = hdr & "Host: zxz1.jino-net.ru" + vbCrLf
    5. hdr = hdr & "Content-Type: application/x-www-form-urlencoded" & vbCrLf
    6. UserForm1.WebBrowser1.Navigate u, 0, 0, pst, hdr
    7. UserForm1.Show
    вот. мб кто работал с этим компанентом?
     
  8. merk

    merk New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2007
    Сообщения:
    18
    Кто-нибудь знает, как писать программу для микроконтроллера МС68НС11А8 (Моторолла) ? Или линки на систему команд/примеры программ? Не получается найти :dntknw:
     
  9. Arsenal1990

    Arsenal1990 New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2007
    Сообщения:
    8
    Необходимо написать программу по удалению каталога с файлами. Помогите, пожалуйста!
     
  10. enaqx

    enaqx New Member

    Публикаций:
    0
    Регистрация:
    14 апр 2007
    Сообщения:
    1
    Необходимо написать резидентную программу для предотвращения удаления файлов.

    Данные:
    1. Необходимо указывать имя файла, который нужно защитить (по-видимому полный путь)
    2. Объем не превышает 2 КБ (то бишь чистый АСМ да еще и .СОМ программа)
    3. Программа должна запускаться с запуском ОС
    4. Программа может работать с реальным режимом.
    5. Файл программа должен не удаляться после загрузки в память
    6. Система должна защищать файл любого объема и не усложнять работу с ним.
    7. Пользователь должен иметь возможность загружать и выгружать её из ОЗУ


    Суть: По всей видимости необходимо просто запретить работу команды DEL. То есть отследить 21Н прерывание с функцией 41Н и покончить с ним. В DS:lol: X адрес строки с защищаемым файлом. Или вообщем отслеживать функцию DEL ин не давать ей работать (но как сделать это не понимаю). За любые исходники, ссылки, статьи, рекомендации и т.д. буду премного благодарен.
     
  11. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    резидент + замена int 21 на свой обработчик. У Зубкова это есть.
     
  12. SaNX

    SaNX New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2005
    Сообщения:
    5
    Адрес:
    Russia
    enaqx
    Смысл, надеюсь, понятен? Поправь под свои нужды и фсе :)
    Код (Text):
    1.        Pusha
    2.        Push    Es  Ds
    3.        Mov     Ax, 1234h
    4.        Int     21h
    5.        Cmp     Ax, 4321h
    6.        Jz      MyExit
    7.        Mov     Ax, Ds
    8.        Dec     Ax
    9.        Mov     Es, Ax
    10.        Sub     Word Ptr Es:[3], MyLeng*2/16+1
    11.        Sub     Word Ptr Ds:[2], MyLeng*2/16+1
    12.        Mov     Ax, Ds:[2]
    13.        Sub     Ax, 10h
    14.        Mov     Es, Ax
    15.        Mov     Si, 100h
    16.        Mov     Di, Si
    17.        Mov     Cx, LengF
    18.        Cld
    19.        Rep     MovSw
    20.        Mov     Ax, 0000
    21.        Mov     Ds, Ax
    22.        Mov     Ax, Word Ptr Ds:[21h*4]
    23.        Mov     Word Ptr Es:[Old21h], Ax
    24.        Mov     Word Ptr Ds:[0E0h*4], Ax
    25.        Mov     Ax, Word Ptr Ds:[21h*4+2]
    26.        Mov     Word Ptr Es:[Old21h+2], Ax
    27.        Mov     Word Ptr Ds:[0E0h*4+2], Ax
    28.        Mov     Word Ptr Ds:[21h*4], Offset MyInt21h
    29.        Mov     Word Ptr Ds:[21h*4+2], Es
    30. MyExit:
    31.        Pop     Ds  Es
    32.        Popa
    33.        Mov     Ax, 4C00h
    34.        Int     21h
    35.  
    36. Old21h Dd      0
    37. MyInt21h:
    38.        Cmp     Ax, 1234h
    39.        Jnz     NotMe
    40.        Mov     Ax, 4321h
    41.        Retf    02
    42. NotMe:
    43.        Cmp     Ah, 13h
    44.        Jz      Bad
    45.        Cmp     Ah, 41h
    46.        Jz      Bad
    47.        Cmp     Ah, 3Ah
    48.        Jnz     Okey
    49. Bad:
    50.        Retf    02
    51. Okey:
    52.        Jmp     Dword Ptr Cs:Old21h
    53.  
    54. LengF   dw MyLeng
    55. MyLeng   equ $-Start
     
  13. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    Привет всем ) Тема - арифметические алгоритмы в криптографии. Язык - delphi. C реализацией проблем нет, вопрос в том - ЧТО реализовывать ) На ум пришло только RSA и его гребаная факторизаця, ну еще может DH .... Может у вас есть какие идеи насчет того, что можно запихать в курсач?
     
  14. PaCHER

    PaCHER New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2006
    Сообщения:
    852
    Анекдотов напихай, преподу хоть интересней читать будет.
     
  15. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    PaCHER
    Гениально. Ты наверное все курсачи так пишешь?
     
  16. chipik

    chipik New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2007
    Сообщения:
    1
    Доброго времени суток.
    Товарищи эксперты, вот такой вапрос.Есть форма, в которую,предположим, вводится имя юзера и пароль, и две кнопки Ok и Canсel. При нажатии ОК подтверждается ввод данных, при нажатии Canсel, соответсвенно совершается выход.А если нажать клавишу Enter на клавиатуре, то она дублирует нажатие кнопки OK. Собственно сам вопрос:в какую сторону копать, чтоб при нажатии клавиши enter совершался выход из программы. Т.е. enter дублировал бы клавишу Cancel.

    Сам exeШНИК
    http://ifolder.ru/1796066
     
  17. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    chipik
    В сторону стиля BS_DEFPUSHBUTTON.
     
  18. Beowulf

    Beowulf New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2007
    Сообщения:
    20
    Как переделать эту программу, чтобы выводила две строки зеленым и красным цветом?
    Код (Text):
    1. ; com-file
    2. ; paint color symbol in video regim
    3.  
    4. .model tiny
    5. .code
    6.    org 100h  
    7. start:
    8.  
    9.   mov ah,4Fh  ; set video regim 1024*768, 32К colors, SVGA
    10.   mov al,02
    11.   mov bx,114h
    12.   int 10h
    13.  
    14.   mov ah,02h        ; Set cursor position
    15.   mov bh,00h        ; Page number
    16.   mov dh,00h        ; Row number
    17.   mov dl,00h        ; Col number
    18.   int 10h
    19.  
    20.   mov ah,09h        ; Output symbol on cursor position
    21.   mov bh,00h        ; Page number
    22.   mov al,0Ch        ; Symbol code
    23.   mov bl,3Ah        ; Attribute or color
    24.   mov cx,02h        ; repeats
    25.   int 10h
    26.  
    27.   mov al,12h    ; probel
    28.   int 29h      
    29.   mov al,0Ah    ; venera
    30.   int 29h
    31.  
    32.   mov ah, 01h
    33.   int 21h
    34.   mov ah,4Ch
    35.   int 21h
    36.  
    37.   num1  db  'Voloshin & Dumova - IST61',0Dh,0Ah,'$'
    38.   num2  db  '1.7.88 & 4.10.89'
    39.  
    40. ret
    41. end start
     
  19. Alexander77

    Alexander77 Alexander

    Публикаций:
    0
    Регистрация:
    1 авг 2006
    Сообщения:
    28
    Адрес:
    Ukraine, Kiev
    Есть у тебя такая строчка:
    Код (Text):
    1. mov bl,3Ah      ; Attribute or color
    Вот ПОЦказка: 4 старших бита (то есть, 3 в твоём случае) представляют цвет фона (background), а младшие 4 (то есть, 0Ah) — это цвет самих символов (foreground). Причём биты в байте имеют такой смысл: IRGBirgb, где I,i — интенсивность (или мерцание), R,r, G,g, B,b — компоненты цвета; заглавными буквами background, строчными — foreground. Имеем в твоём случае: 3Ah=00111010b — на тёмно-сине-зелёном фоне ярко-голубые символы. Думаю, теперь ты сам ответишь на свои вопросы
     
  20. Beowulf

    Beowulf New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2007
    Сообщения:
    20
    это мне было понятно (: как строку вывести?
    можно использовать:

    mov ax,4Fh
    mov al,07h
    mov bl,00
    mov dx, offset num1
    int 10h

    ?