IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Маска для мыша
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской
Реальное имя: Веселовский Пётр Николаевич

Репутация: -  0  +


Вообщем такая вещь - хочу сделать курсор мышке с помощью маски, но не знаю как её нарисовать. Мне нужно, чтобы от курсора остался только 1 черный пиксель (тот который кончик указателя). Чёто написал, но вместо точки выводится какаято 'мочалка' mad.gif
.model tiny
.data
cmask db 0fh,0fh,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,
00,00,00,00,00,00,
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
,00,00,00,00,00
.code
org 100h
start:
mov ax,13h;13h 320x200 256
int 10h
push 0a000h
pop es
call refresh

xor si,si
mov cx,5
ccycle:
push cx
mov ax,320
dec cx
mul cx
mov si,ax
mov cx,0ffh
cycle:
mov es:[si],cl
inc si
loop cycle
pop cx
loop ccycle
;Мышь:
xor ax,ax
int 33h
push ds ;ES:DX -
pop es ;адрес маски
mov dx,offset cmask;(или я не прав?)
mov ax,09h
int 33h
mov ax,01h
int 33h
;мышь загружена
xor ax,ax
int 16h
pop dx
mov ax,03h
int 10h
mov ax,4ch
int 21h
ret

refresh proc;Обновление экрана
mov ax,0f0fh
xor di,di
mov cx,64000
rep stosw
ret
refresh endp

pointprc proc;Процедура рисованя точки
push si
mov ax,320
mul si
mov si,ax
add si,bx
mov byte ptr es:[si],31h
pop si
ret
pointprc endp
end start


Сообщение отредактировано: volvo -


--------------------
Money, hoes, cars and clothes
That's how all my niggaz know
Blowin dro, 24's
That's how all my niggaz roll...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


Ошибка здесь
Код

0fh,0fh,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,

00,00,00,00,00,00,
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00



первые 32 бита - маска (ее лучше либо обнулить либо ff)
вторые - рисунок
рисунок - 64*64
каждый !бит! - это точка
т.е. 0f - это 15 точек
а комбинация 0f 0f - 15 точек черного 15 белого потом 15 точек черного 15 белого
лучше уж так

Код

cmask db
0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,

0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,

1h,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

//понятно что это все в одной строке ;)

Сообщение отредактировано: Dark -


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.09.2025 2:22
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name