Нужна помощь HELP!!!!!!!!!!!!!
От: Pro_BD  
Дата: 13.04.04 12:03
Оценка:
У меня маленькая проблемма написал программу, а она работает не коректно ( не так как надо )

вот код программы:

.model tiny
.code
org 100h

Begin:
        jmp Init                                ;метка
        Int_33_proc proc        ;наш обрабочик
        pushf                                   ;сохраним все =)
        push ds
        push dx                                 ;сохраним регистры
        push es
        push dx
        mov ah,0Fh                              ; получим текущие состояние дисплея
        int 10h
        mov ax,0                                ;инициализация мышки
        int 33h
        mov ax,1                                ;  покажем курсор
        int 33h
        mov ax,000Ch                    ;установим обрабочик событий
        mov cx,0002h                    ;нажатие левой кнопки mouse'a
        mov dx,offset Mouse_Ok  ; адрес нашего обрабочика
        int 33h
        mov ax,000Ch
        mov cx,0000h                    ;удалить обрабочик
        int 33h
        iret                                    ; выход

Mouse_Ok:
        mov ax,3                                ;определим состояние мышки
        int 33h
        mov ah,9h                               ;выводим строку на экран
        mov dx,offset Message_1
        int 21h
        pop dx
        pop es
        retf                    ; выход из обработчика - команда RETF

        call dword ptr cs:[Int_33_Real]
        pop dx
        pop ds
        iret                                    ; Выходим из прерывания

        Int_33_Real dd ?                ;Переменная для хранения адреса "int 33h"
        Message_1 db 'Вы нажали левую кнопку мышки$'
        Int_33_proc  endp

Init:

        mov ah,35h                      ;Показывает адрес прерывания
        mov al,33h                              ;Указывает номер прерывания
        int 21h
        mov word ptr [Int_33_Real],dx           ;показываем куда мы это все сохроняли
        mov word ptr [Int_33_Real]+2,ds
        mov ah,25h                              ;Установим вектор  прерывания
        mov al,33h
        mov dx,offset Int_33_proc
        int 21h
        popf
        int 20h
        end Begin




Помогите мне разобратся в чем я мог ошибится
Что должна была делать программа:
1.Мы её запускаем.
2.При нажатие на левую кнопку мыши она должна была выводить сообщение что 'Нажата левая кнопка мыши $'
3.Все


а работает она так ( по крайне мере у меня оТна так работает ).
При её запуске в Дос навигаторе мышь исчезает(верней курсор невидать) , просто отключается (все нету её больше) где могла быть ошибка подскажите, я дня 3 сидел думал думал так не че не надумал решил обратится к вам.


P.S. Позор мне товарищи позор, написал прогу а не могу понять что к чему в ней =(((((

И если ко нить будет что небуть высказывать по поводу моей программы (я иммею в виду ошибки ) если можно то поконкретней изъесняйтесь. тоесть не так Например: Ты облажался в строке (6) , а так, ты облажался потому что ......

Заранее спасибо







18.04.04 13:44: Перенесено модератором из 'Сети, сокеты, протоколы' в Низкоуровневое программирование. — ХД
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.