Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пн июн 25, 2018 9:31 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 361 сообщение ]  На страницу Пред. 1 2 3 4 525 След.
Автор Сообщение
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Вс ноя 15, 2015 10:33 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1202
Наверно, лучше всего в чате.
Тебя интересовало "полное и чёткое описание команд х86 и описанием влияния каждой команды на флаги процессора", вот оно в конце той книги. В остальном согласен, в учебниках для вузов хрен что поймёшь, тут лучше самоучители вроде "ассемблер это просто".
В принципе, в ассемблере нет массивов, скорее море памяти в котором ты раставляешь буйки.


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Вс ноя 15, 2015 11:50 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
Мне нужен конкретный простой пример, как именно это делается на фасм
ну я знаю что в асме доступаться можно вот вроде так
mov [eax], eax ну или mov [Label1], eax при этом в eax должен быть адрес метки или метка Label1 должна указывать на массив?! А как масив размечать то ?
DB $00, $00, $00..... так что ли ?! Ну компилятор жалуется.... в точности не помню в каком моменте... но я подумал, что из-за того что DB считается как константы и на их место записывать данные нельзя.
В общем, мне хотелось бы увидеть простой и конкретный пример для Фасм, где разметка масива и способ обращения (чтения и записи в масив)


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Пн ноя 16, 2015 12:40 am 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
ИЗ ЧАТА (чтобы не затерялось):

ALEXS1983 « Пн ноя 16, 2015 12:37 am » pavelyakov: А доступ к рамДиску достаточно быстрый ? если мне нужно будет сотни тысяч байт для прорисовки экрана несколько (50) раз в секунду ?
ALEXS1983 « Пн ноя 16, 2015 12:36 am » pavelyakov: а что если мне нужны масивы в килобайты и мегабайты, такое в КОС можно ? Через РамДиск что ли ?
ALEXS1983 « Пн ноя 16, 2015 12:35 am » pavelyakov: arr: buffer db 255 , ага работает, вот только не пойму а чего ограничение только 255 ?
pavelyakov « Пн ноя 16, 2015 12:31 am » ALEXS1983: можно попробовать arr: buffer db 64, т.е. зарезервировать 64 db
pavelyakov « Пн ноя 16, 2015 12:22 am » $00 это константа для компилятора
pavelyakov « Пн ноя 16, 2015 12:20 am » ALEXS1983: знак вопроса вместо db $00


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Пн ноя 16, 2015 6:21 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
Кто нибудь может мне описать вот это:
============== Функция 0 - определить и нарисовать окно. =============
......
* edx = 0xXYRRGGBB, где:
* Y = стиль окна:
* Y=0 - тип I - окно фиксированных размеров
* Y=1 - только определить область окна, ничего не рисовать
* Y=2 - тип II - окно изменяемых размеров
* Y=3 - окно со скином
* Y=4 - окно со скином фиксированных размеров
......
человеческим языком, например как
* ebx = [координата по оси x]*65536 + [размер по оси x]
или
mov ebx , (KX*65536+RX); где KX - координата по X, RX - размер по X


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Пн ноя 16, 2015 6:58 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1202
mov edx, Y*16777216 + цвет
или
mov edx, Y*1000000h + цвет
или
mov edx, Y shl 24 + цвет
или
mov dl, Y ;/dx/edx
shl edx, 24
add edx, цвет


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Пн ноя 16, 2015 7:26 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт янв 27, 2006 3:06 pm
Сообщения: 1069
Так а в чем проблема написать mov edx, 0xXYRRGGBB? Возможные значения Y расписаны же (надо только помнить, что актуальные на данный момент типы окон - 3, 4 и в редких случаях 1). С Х немного сложнее, но тоже не запредельно: пишешь на бумажке 4 нуля, читаешь описание, что значит каждый бит, меняешь в тех местах 0 на 1, переводишь полученное двоичное число в шестнадцатеричное на калькуляторе или еще как - получаешь X.


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Вт ноя 17, 2015 8:30 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
Pathoswithin, Heavyiron СПАСИБО!
========================
Из файла sysfuncr.txt:
Коды событий:
* 1 = сообщение о перерисовке (сбрасывается при вызове функции 0)

А из за чего возникает сообщение о перерисовке ?


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Вт ноя 17, 2015 8:38 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 183
[quote="ALEXS1983"]Pathoswithin, Heavyiron СПАСИБО!
========================
Из файла sysfuncr.txt:
Коды событий:
* 1 = сообщение о перерисовке (сбрасывается при вызове функции 0)

А из за чего возникает сообщение о перерисовке ?[/quote]

Когда: изменение размера, восстановление, движение, перекрывания окна.


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Вт ноя 17, 2015 9:07 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
При создании прямоугольников и точек на форме (Функция 13 - нарисовать прямоугольник в окне) ( Функция 15, подфункция 2 - поставить точку на фоновом изображении. ) ТОЖЕ ВОЗНИКАЕТ ?
При запуске программы, еще до вызова формы (mcall 0, Функция 0 - определить и нарисовать окно ) ТОЖЕ ВОЗНИКАЕТ ?


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Вт ноя 17, 2015 9:17 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 183
При создании прямоугольников и точек на форме (Функция 13 - нарисовать прямоугольник в окне) ( Функция 15, подфункция 2 - поставить точку на фоновом изображении. ) ТОЖЕ ВОЗНИКАЕТ ? -> нет
При запуске программы, еще до вызова формы (mcall 0, Функция 0 - определить и нарисовать окно ) ТОЖЕ ВОЗНИКАЕТ ? -> да


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Вт ноя 17, 2015 11:35 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
........................
mcall 17 ; 17 - получить идентификатор нажатой кнопки
cmp ah, 1 ; если НЕ нажата кнопка с номером 1,
jne CycleProcesEvents ; вернуться
.exit:
mcall -1 ; иначе конец программы
........................

Как я понял если вместо mcall -1 вписать Jmp CycleProcesEvents ( вернуться ), то окно, по нажатию на "крестик" не закроется, а программа продолжит работу перейдя по данной метке.
Вот возникает вопрос почему при нажатии ALT+F4 окно всё равно закроется, независимо от того что .exit: Jmp CycleProcesEvents ? Является ли закрытие окна по ALT+F4 моментальным прекращением работы программы и переход в систему ?
Возможно ли отменить закрытие окна и/или прекращения работы программы по ALT+F4 ?


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 18, 2015 12:09 am 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1091
Думаю по Alt+F4 просто завершается,процесс программы


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Ср ноя 18, 2015 5:13 am 
Не в сети

Зарегистрирован: Вс авг 09, 2015 3:41 pm
Сообщения: 85
Можно попробовать накинуть хук.


Вернуться к началу
 Заголовок сообщения: Re: Вопрос
СообщениеДобавлено: Чт ноя 19, 2015 4:28 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб окт 05, 2013 9:32 pm
Сообщения: 386
[quote="ALEXS1983"]........................
mcall 17 ; 17 - получить идентификатор нажатой кнопки
cmp ah, 1 ; если НЕ нажата кнопка с номером 1,
jne CycleProcesEvents ; вернуться
.exit:
mcall -1 ; иначе конец программы
........................

Как я понял если вместо mcall -1 вписать Jmp CycleProcesEvents ( вернуться ), то окно, по нажатию на "крестик" не закроется, а программа продолжит работу перейдя по данной метке.
Вот возникает вопрос почему при нажатии ALT+F4 окно всё равно закроется, независимо от того что .exit: Jmp CycleProcesEvents ? Является ли закрытие окна по ALT+F4 моментальным прекращением работы программы и переход в систему ?
Возможно ли отменить закрытие окна и/или прекращения работы программы по ALT+F4 ?[/quote]
Этим занимется @taskbar. При нажатии Alt+F4 он посылает активному приложению код события 3 и параметр 1 (по сути нажимает на крестик) (sysfunc 72.1(3, 1) )


Вернуться к началу
 Заголовок сообщения: Free Pascal для ОС Колибри
СообщениеДобавлено: Пт ноя 20, 2015 9:21 am 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
Я извиняюсь, может я чего недопонял, а где можно ознакомится с Free Pascal для КОС ?


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 361 сообщение ]  На страницу Пред. 1 2 3 4 525 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB