Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2010, 00:20   #1
Aleks2215
Пользователь
 
Регистрация: 19.09.2010
Сообщений: 30
Печаль Проблема с программой

Набросал код программы, которая по нажатию левой кнопки мыши должна выводить количество нажатий на экран, но она не работает(
Вот код
Код:
.model small
.stack 100h
.data
.code
start:
mov ax, @data
mov ds, ax
xor ax,ax


mov ax, 0000h
int 33h

mov ax, 000ch
mov cx,000fh
mov dx, offset metka
int 33h

mov ah,08h
int 21h

mov ax, 4c00h
int 21h

metka:
mov ah,6
mov al,0
int 10h
mov ax, 0005h
mov bx,0000h
int 33h

mov ax, cx
mov ah,02h
mov dx, ax
add dx, 30h
int 21h

mov ax,000Ch
mov cx,0000h     
int 33h

end start
Подскажите, что не так?
Aleks2215 вне форума Ответить с цитированием
Старый 23.10.2010, 10:40   #2
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

во первых
для функции 0ch
Цитата:
ES:DX = far pointer to user interrupt
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 23.10.2010, 12:26   #3
Aleks2215
Пользователь
 
Регистрация: 19.09.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от airyashov Посмотреть сообщение
во первых
для функции 0ch
Да да, я уже понял что обработчик должен быть оформлен как дальняя процедура и завершаться retf, но это ни капельки не меняет ситуацию
Aleks2215 вне форума Ответить с цитированием
Старый 23.10.2010, 13:12   #4
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Попробуйте в обработчике использовать вместо 21h прерывания функции из 10h прерывания.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 24.10.2010, 00:41   #5
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

покажите код
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 26.10.2010, 00:06   #6
Aleks2215
Пользователь
 
Регистрация: 19.09.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от airyashov Посмотреть сообщение
покажите код
Вот код
Код:
.model tiny
.code
org 100h
.186
start:
mov ax, 0000h
int 33h

mov ax, 000ch
mov cx,0002h
mov dx, offset metka
int 33h

mov ah,0
int 16h

mov ax,000Ch
mov cx,0000h     
int 33h


ret

metka:

mov ax, 6
mov ah,02h
mov dx, ax
add dx, 30h
int 21h

mov ah,08h
int 21h


retf 

end start
Я попытался просто вывести число из переменной в обработчике на экран по нажатию левой кнопки мыши, но даже это не сработало( Может я не понимаю каких то принципов его работы? объясните если не трудно...
Aleks2215 вне форума Ответить с цитированием
Старый 26.10.2010, 05:06   #7
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Так что ли ?
Код:
.model tiny
.data
count dw 0
.code
org 100h
.186
start:
mov ax, 0000h
int 33h

mov ax, 000ch
mov cx,0002h
mov dx, offset metka
int 33h

mov ah,0
int 16h

mov ax,000Ch
mov cx,0000h     
int 33h

mov ah,08h
int 21h

ret

metka:

mov ah,02h
inc cs:[count]
mov dx, cs:[count]
add dx, 30h
int 21h


retf 

end start
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 26.10.2010, 15:55   #8
Aleks2215
Пользователь
 
Регистрация: 19.09.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
Так что ли ?
Код:
.model tiny
.data
count dw 0
.code
org 100h
.186
start:
mov ax, 0000h
int 33h

mov ax, 000ch
mov cx,0002h
mov dx, offset metka
int 33h

mov ah,0
int 16h

mov ax,000Ch
mov cx,0000h     
int 33h

mov ah,08h
int 21h

ret

metka:

mov ah,02h
inc cs:[count]
mov dx, cs:[count]
add dx, 30h
int 21h


retf 

end start
Нет, тут вообще компилятор выдает ошибку и ругается на отсутствие стека) Не могли бы вы просто объяснить почему обработчик вместо того чтобы передать управление на metka при нажатии левой кнопки мыши просто идет дальше на функцию завершения работы программы при нажатии на кнопку клавиатуры.
Вот последний код:
Код:
.model small
.stack 100h
.data
.code
start:
mov ax, @data ; настраиваемся на сегмент данных
mov ds, ax
xor ax,ax

mov ax, 0000h ; проверяем наличие мыши
int 33h

mov ax, 000ch ; сам обработчик
mov cx,0002h
mov dx, offset metka
int 33h

mov ah,0 ; выход из программы
int 16h

mov ax, 4c00h
int 21h

metka:

mov ax, 6  ; вывод значения 6 на экран через обработчик
mov ah,02h
mov dx, ax
add dx, 30h
int 21h

mov ax,000Ch ; удаление обработчика
mov cx,0000h     
int 33h

end start
Aleks2215 вне форума Ответить с цитированием
Старый 26.10.2010, 16:32   #9
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Код:
Нет, тут вообще компилятор выдает ошибку и ругается на отсутствие стека)
Это com программа, как и ваш код в посте #6.
Цитата:
Вот последний код:
Вы бы хоть предыдущие ошибки учитывали -_-
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 26.10.2010, 17:26   #10
Aleks2215
Пользователь
 
Регистрация: 19.09.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
Код:
Нет, тут вообще компилятор выдает ошибку и ругается на отсутствие стека)
Это com программа, как и ваш код в посте #6.

Вы бы хоть предыдущие ошибки учитывали -_-
Все все, намек понял) тупанул
Aleks2215 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с программой. elDiablo Паскаль, Turbo Pascal, PascalABC.NET 2 17.08.2010 21:59
Проблема с программой DjSeNseI Win Api 2 12.07.2010 00:03
Проблема с программой bboba Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 18.06.2009 19:50
Проблема с программой eks-s Общие вопросы Delphi 9 06.02.2008 09:47
Проблема с программой Dues Помощь студентам 1 19.11.2007 01:46