Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 757
от 10.08.2004, 07:40

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 5714
Отправлено ответов: 15379
Активность: 269.1 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


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

Dragoon
Статус: Опытный
Общий рейтинг: 110.29
[Подробней >>]
Горячев Игорь
Статус: Доверительный
Общий рейтинг: 119.77
[Подробней >>]
bocha
Статус: Опытный
Общий рейтинг: 128.51
[Подробней >>]
 
PavPS
Статус: Доверительный
Общий рейтинг: 120
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 116.5
[Подробней >>]
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 133.04
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
 
_vt
Статус: Профессиональный
Общий рейтинг: 118.26
[Подробней >>]
SackTap
Статус: Доверительный
Общий рейтинг: 117.52
[Подробней >>]
flasher
Статус: Доверительный
Общий рейтинг: 105.82
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 5667. В прогаммировании я чайник. Хочу освоить АССЕМБЛЕР! Как правильно учиться у г-на Калашникова при пом... (ответов: 3)
Вопрос № 5668. Здравствуйте,уважаемые эксперты!В предыдущей рассылке упоминалось,как залезть в ring-0 через таблицу... (ответов: 1)
Вопрос № 5670. Добрый день! На днях моему проекту, часть из которого посвящена решению задач на Ассемблере, исполня... (ответов: 1)
Вопрос № 5671. Кто-нибудь сталкивался с техническим нормированием? Нужно написать программу по теме, возможно ли эт... (ответов: 1)
Вопрос № 5672. Здравствуйте, уважаемые Эксперты! Спасибо за прошлые ответы. Жду новых ;) Да... ну и много же вопрос... (ответов: 2)
Вопрос № 5673. Здравствуйте, уважаемые Эксперты! В MASM'e есть такая вещь как объединения. Вопрос: 1. Что это за ... (ответов: 3)
Вопрос № 5675. Добрый день, или ночь =)) Хотел бы задать вам неоторый вопрос, который уже ранее обсуждался. Как мож... (ответов: 1)
Вопрос № 5676. У меня не работает метод вывода в видеопамять ... ПРимер ни Зубкова, ни Калашникова, ни мои истезани... (ответов: 5)
Вопрос № 5677. Здравствуйте, уважаемые эксперты. Приведите пожалуйста простой пример записи звука в память с помощь... (ответов: 1)
Вопрос № 5681. Здравстуйте, ув. эксперты. Пользуюсь хэтчевским ассемблером masm32, в командной строке всегда вводил... (ответов: 1)
Вопрос № 5682. Сорри за оффтоп. Давно изучал Asm x86 и немного программировал для ARM. Сейчас читаю вашу рассылку п... (ответов: 2)
Вопрос № 5685. Здраствуйте. Может у кого есть книги в электронном виде Рихтер "Windows для профессионалов: соз... (ответов: 1)
Вопрос № 5687. День добрый! У меня такой вопрос, чем отличается ASSEMBLER от C++ для написания вирусов и их лечения... (ответов: 2)
Вопрос № 5688. Я давно хотел разобраться с защищенным режимом. Где можно найти путевую доку по защищенному режиму н... (ответов: 1)

Вопросов: 14, ответов: 25


 Вопрос № 5667

В прогаммировании я чайник. Хочу освоить АССЕМБЛЕР! Как правильно учиться у г-на Калашникова при помощи его книги и примеров? Я не могу ассемблировать его прогой! Help! Есть ли альтернатива? Выражайтесь проще, кроме графики в Бейсике я ничего не знаю! ;-(.



Вопрос отправлен: 31.07.2004, 19:53
Отправитель: Артёмов Алексей (aartmov@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Dragoon

Добрый день, Артёмов Алексей!
Послушай совета - изучи Pascal(Delphi) или C(C++).
C асма лучше не начинать....
А в книге Калашникова все очень подробно описано, и как компилировать, и как линковать. Посмотри первые страницы

Ответ отправлен: 02.08.2004, 19:45
Отправитель: Dragoon


Отвечает Горячев Игорь

Здравствуйте, Артёмов Алексей!
Альтернатива: MASM32, FASM - у обоих интуитивный интерфейс.
посети http://wasm.ru

Ответ отправлен: 02.08.2004, 23:42
Отправитель: Горячев Игорь


Отвечает bocha

Добрый день, Артёмов Алексей!
Что неможешь, чем не можешь, а главное КАК не можешь (что пишешь, какие ошибки выдает ассемблер, линкер)?

Ответ отправлен: 01.08.2004, 00:12
Отправитель: bocha


 Вопрос № 5668

Здравствуйте,уважаемые эксперты!В предыдущей рассылке упоминалось,как залезть в ring-0 через таблицу
прерываний.Приводился пример(навсякий случай ещё раз его процитирую в приложении).Там мне некоторые части непонятны:
>add edx,(Interrupt*8)+4 ; Получаем вектоp пpеpываний
Я со структурой IDT не знаком,но вычитал,что элемент таблицы равен 8 байт.Поэтому и масштабирование
такое(Interrupt*8)?И ведь вместо Interrupt подставится 01h?почему?
>mov ebx,[edx]
>mov bx,word ptr [edx-4]
Тут сохраняем старый дескриптор,как я понял.Непонятно,зачем ещё потом в bx что-то пихать?
>mov [edx-4],di
>ror edi,16 ; Пеpемещаем MSW в LSW
>mov [edx+2],di
Тут ставим свой обработчик.
>mov [edx-4],bx ; Восстанавливаем стаpый обpаботчик
>ror ebx,16 ; ROR, SHR, SAR... кого это заботит?
>mov [edx+2],bx
Тут тоже не очень с восстановлением понятно.Объясните,пожалуйста,зачем тут сдвиговая адресация?
Надеюсь,я более-менее внятн о изложил вопрос.Заранее спасибо за ответы!


Приложение:


Вопрос отправлен: 01.08.2004, 02:47
Отправитель: gnev_makaki

[Следующий вопрос >>] [Список вопросов]

Отвечает PavPS

Здравствуйте, gnev_makaki!
Сам пробывал этот способ. На XP на память в которую Ты будешь писать адрес на обработчик этого вектора, "наклеяна" защита и Ты получишь STSTUS_ACCESS_VOLATION & BSOD(#GP)
Не парься - пиши драйвер! А по-поводу смешений бит поищи то, как астроена IDT и сразу всё поймешь (а лучше глянь GDT - и Ты поймешь, что в IDT еще порядок... :-) )

Ответ отправлен: 03.08.2004, 01:56
Отправитель: PavPS


 Вопрос № 5670

Добрый день!
На днях моему проекту, часть из которого посвящена решению задач на Ассемблере, исполняется 1 год. Вследствие чего, хотелось бы как-нибудь разнообразить задачи и увеличить количество участников.
Если Вас это заинтересовало, то подписаться на задачи можно здесь: http://subscribe.ru/catalog/comp.soft.prog.asmtasks,
главная страница Задач здесь: http://www.codeclimber.com/cgi-bin/asmtasks.cgi.
Для того, чтобы отправлять решения нужна регистрация, она расположена здесь: http://www.codeclimber.com/cgi-bin/register.cgi. Как только Вам придет пароль, Вы сможете посылать решения со своего аккаунта на сайте.
Движок Задач сделан таким образом, что при поступлении нового решения его размер и имя его автора сразу попадают в таблицу участников текущей задачи. Таким образом, любой участник может прислать более оптимизированное решение, если узнает, что кто-то решил задачу более оптимизированно. 
Вам предлагается поучаствова ть в COMPO #40:
==========
Ваша программа должна установить графическое разрешение экрана 320х200 (режим 13h), нарисовать картинку, дождаться нажатия любой клавиши и завершить свое выполнение, вернув экрану текстовое разрешение (режим 03h).
Рисунок должен занять весь экран - 64000 точек.
Алгоритм рисования. Программа обрабатывает все точки экрана c координатами X (от 0 до 320) и Y (от 0 до 200) и меняет их цвет. Цвет точки с координатами (X;Y) вычисляется по формуле (X^2 - Y^2) div 2. На Basic этот алгоритм мог быть реализован так: 
For X = 0 To 320
For Y = 0 To 200
PSet (X, Y), ((X * X - Y * Y) 2)
Next
Next
! Так как режим 13h поддерживает только 256 цветов, то реальный цвет точки будет равен младшему байту регистра или переменной, которую Вы использовали для вычислений.
! Нельзя модифицировать предложенный алгоритм (нельзя например, размножать часть картинки по экрану и пр.)
! Программа не работает с командной строкой, поэт ому можно считать AX=BX=0.
! Увидеть картинку, которую Вы должны получить, уточнить условие задачи, можно здесь: http://www.codeclimber.com/cgi-bin/forum.cgi?t=20.
! Размер моего решения - 48 байт.
==========
PS. Посылать сюда решения не нужно.
PPS. Экспертам: пошлите в рассылку, может быть кто-нибудь из подписчиков заинтересуется.



Вопрос отправлен: 01.08.2004, 11:28
Отправитель: Igoryk

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Здравствуйте, Igoryk!
Посылаю...

Ответ отправлен: 02.08.2004, 14:03
Отправитель: Ayl


 Вопрос № 5671

Кто-нибудь сталкивался с техническим нормированием?
Нужно написать программу по теме, возможно ли это?



Вопрос отправлен: 02.08.2004, 10:53
Отправитель: 1

[Следующий вопрос >>] [Список вопросов]

Отвечает Dragoon

Приветствую Вас, 1!
С чем???!!

Ответ отправлен: 02.08.2004, 19:46
Отправитель: Dragoon


 Вопрос № 5672

Здравствуйте, уважаемые Эксперты!
Спасибо за прошлые ответы. Жду новых ;)
Да... ну и много же вопросов у меня накопилось... :)
1) Как сделать так, чтобы окно "прилипало" к краям других окон, экрана... Или это слишком трудно.
2) Можно ли как-нить прооптимизировать этот код (см. приложение) В общем, я хочу в MainWinClass.hInstance и в ButtonWinClass.hInstance внести значение hInst. Все переменные лежат в .data и .data?
3) Как в MASM сделать секцию .code записываемой? (ну, чтобы туда можно было что-нибудь писать, а то у меня ошибка вылетает :( )
4) Как сделать так, чтобы окошки получали фокус при нажатии кнопочки TAB? При создании окна видел стили WS_TABSTOP и WS_GROUP они вообще работают?
5) Можно маленький пример использования SetWindowRgn. Чтобы, например, окошко было кругленькое :) А то я уже второй раз систему подвешиваю... :(
Всего хорошего. UKY.


Приложение:


Вопрос отправлен: 02.08.2004, 18:22
Отправитель: UKY

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

3. Исполняемый сегмент данных не может быть записываемым. Только исполнение и, если разрешено, чтение.
4. SetFocus
Удачи.
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 03.08.2004, 17:18
Отправитель: Евгений Иванов


Отвечает _vt

Здравствуйте, UKY!
3) Вообще это сделать можно (надо подправить заголовок, либо в некоторых ассемблерах есть спец. директива), но не рекомендуется. На 64-разрядных процессорах запись в сегмент кода запрещена на аппаратном уровне, в целях безопасности.
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 04.08.2004, 01:37
Отправитель: _vt


 Вопрос № 5673

Здравствуйте, уважаемые Эксперты!
В MASM'e есть такая вещь как объединения.
Вопрос:
1. Что это за дрянь такая?
2. Есть ли нечто аналогичное в иных компиляторах (FASM,NASM)?
3. Как сэмулировать объединения стандартным набором команд (если такое возможно)?



Вопрос отправлен: 03.08.2004, 00:34
Отправитель: Igor

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

UNION.
удобная вещица.
данные разных типов будут располагаться по одному и тому же адресу.
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 03.08.2004, 17:19
Отправитель: Евгений Иванов


Отвечает PavPS

Добрый день, Igor!
То, что и в "C". Для того чтобы понять - читай в любой книге по С. Там будет написано точно, и очень доходчиво. Свои комментарии по этой теме при вышеописанном обилии инфы считаю излишними, кроме обного: "это гениальная вешь, которая официально позволяет ввести безвластие типов"

Ответ отправлен: 03.08.2004, 02:05
Отправитель: PavPS


Отвечает Горячев Игорь

Добрый день, Igor!
1. Дрянь это очень полезная, т.к. позволяет держать в области памяти значение, соответствующее разным типам данных.
2. Знаю что в FASM такого нет. А жаль...
3. Можно конечно, но это долго, нудно... Оно тебе надо? Бери MASM и не напрягайся.

Ответ отправлен: 04.08.2004, 00:48
Отправитель: Горячев Игорь


 Вопрос № 5675

Добрый день, или ночь =))
Хотел бы задать вам неоторый вопрос, который уже ранее обсуждался. Как можно поменять состояние индикации клавиатуры? Ну там Нум Лок, Капс Лок и т.д. В PC есть два байта флагов клавиатуры по адресам 40:17h и 40:18h. Структуру байтов этих знаю... Пробовал пример Зубкова, чтобы скидывать всю индикацию, не пашет....... Че это может быть? Пример Зубкова в приложении...
Пробовал и записывать напрямик...
mov ax,040h
mov ds,ax
mov ax,01110000b
mov ds:[0017h],ax ;кстати, зачем скобки тут?
И еще.. как записывать-считывать в/с определенную область памяти, вроде там по адресу 054:044 ?


Приложение:


Вопрос отправлен: 03.08.2004, 16:07
Отправитель: Andruew (andruew@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает SackTap

Приветствую Вас, Andruew!
если под хр то не запашет. т.к. in и out привелегированные команды.

Ответ отправлен: 03.08.2004, 17:26
Отправитель: SackTap


 Вопрос № 5676

У меня не работает метод вывода в видеопамять ... ПРимер ни Зубкова, ни Калашникова, ни мои истезания не работают. Подскажите, в чем может быть дело?



Вопрос отправлен: 03.08.2004, 17:03
Отправитель: Andruew

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Здравствуйте, Andruew!
Ну и как на это отвечать? У меня тоже много чего не работает, не подскажешь, в чем дело?
Уточни вопрос. Интересуют следующие вещи:
1. ОС, на которой это должно работать (DOS, Win)
2. ОС, установленная на компе (чистый DOS, Win определенной версии)
3. Режим, в котором пытаешься выводить (тестовый/графический, для графического указать разрешение и номер режима)
4. Желательно код программы, которая не работает.


Ответ отправлен: 03.08.2004, 18:38
Отправитель: Ayl


Отвечает SackTap

Приветствую Вас, Andruew!
Вы бы пример приложили.. а то так не понятно в чем дело. ;)
я бы посоветовал пиобрести книжку Кулакова - программиование на аппаратном уровне. 850 стр. офигенная книга, там и про видеопамять вплоть до 1024х768х32bpp в реальном режиме и про usb, pci, ps/2 mouse и прочее. вобщем полезная книга.
а вобщем в инете где-то видел исходники с этой книги..

Ответ отправлен: 03.08.2004, 17:31
Отправитель: SackTap


Отвечает Горячев Игорь

Приветствую Вас, Andruew!
А что имеенно у Вас не работает? Покажите исходник...

Ответ отправлен: 04.08.2004, 00:44
Отправитель: Горячев Игорь


Отвечает Dragoon

Приветствую Вас, Andruew!
У обоих нормальные примеры.
Пришли исходник свей проги.

Ответ отправлен: 04.08.2004, 01:09
Отправитель: Dragoon


Отвечает _vt

Добрый день, Andruew!
В начале кода поставь
mov ax,3
int 10h
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 04.08.2004, 01:37
Отправитель: _vt


 Вопрос № 5677

Здравствуйте, уважаемые эксперты.
Приведите пожалуйста простой пример записи звука в память
с помощью функций API для MASM32



Вопрос отправлен: 03.08.2004, 18:59
Отправитель: kuran

[Следующий вопрос >>] [Список вопросов]

Отвечает Dragoon

Приветствую Вас, kuran!
Звука в память???


Ответ отправлен: 04.08.2004, 01:10
Отправитель: Dragoon


 Вопрос № 5681

Здравстуйте, ув. эксперты.
Пользуюсь хэтчевским ассемблером masm32, в командной строке всегда вводил:
ml /c /coff /Cp filename.asm
link /subsystem: windows filename.obj
И всегда все было нормально (если не было ошибок в исходнике), но недавно при компиляции программ стало появляться такое сообщение (независимо есть ли в моем приложении окно или нет):
LINK: warning LNK4089: all references to "GDI32.dll" discarded by /OPT:REF
причем файлы obj и exe создаются и exe нормально работает.
В исходнике ни одной функции из "GDI32.dll" и он вообще не подключается.
Объясните пожалуйста причину появления этого сообщения.



Вопрос отправлен: 04.08.2004, 16:37
Отправитель: V

[Следующий вопрос >>] [Список вопросов]

Отвечает PavPS

Доброе время суток, V!
Это когда у Тя в экспортах написано
EXTERN GetWindowDC@4 : NEAR
Includelib ...GDI.LIB
А код твой это просто:
Start:
nop
ret
Т.е. никаких вызывов к экспортируемой ф-ии, вот асм и орёт на тебя, что зафиг я буду создавать в таблице експорта вхождения для GDI, if ты её даже не используешь в коде!

Ответ отправлен: 04.08.2004, 19:58
Отправитель: PavPS


 Вопрос № 5682

Сорри за оффтоп.
Давно изучал Asm x86 и немного программировал для ARM. Сейчас читаю вашу рассылку постоянно, прикалываюсь =), даже понимаю кое-что =). Ткните в путь, как бы восстановить знания по асму? Линки на книги, или где есть практикум?


Приложение:


Вопрос отправлен: 05.08.2004, 02:00
Отправитель: Randall (randy@newmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает flasher

Приветствую Вас, Randall!
wasm.ru- рулит ;)

Ответ отправлен: 05.08.2004, 14:09
Отправитель: flasher


Отвечает SackTap

Добрый день, Randall!
да хотя бы
http://kalashnikoff.ru

Ответ отправлен: 05.08.2004, 10:37
Отправитель: SackTap


 Вопрос № 5685

Здраствуйте.
Может у кого есть книги в электронном виде Рихтер
"Windows для профессионалов: создание эффективных Win32 приложений" и Windows 2000 изнутри(на русском).Скиньте мне на мейл(или линк дайте)



Вопрос отправлен: 05.08.2004, 15:19
Отправитель: korsar (korsar01@yandex.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Здравствуйте, korsar!
Рихтер есть здесь.
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 06.08.2004, 21:49
Отправитель: _vt


 Вопрос № 5687

День добрый! У меня такой вопрос, чем отличается ASSEMBLER от C++ для написания вирусов и их лечения.



Вопрос отправлен: 06.08.2004, 05:28
Отправитель: Светлана

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Здравствуйте, Светлана!
Типами данных. В Ассемблере типы данных под твоим управлением.
В С++ за тебя думает компилятор.
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 06.08.2004, 13:40
Отправитель: Евгений Иванов


Отвечает Горячев Игорь

Добрый день, Светлана!
Ничем в идеологическом плане, всем в реализации. Assembler и C++ разные языки, в них разные языковые конструкции, след. и программы пишутся по-разному. Но алгоритмы-то везде одинаковые. Правда Asm дает более эффективный инструментарий при вирусописательских извратах, но это совершенно не принципиально при написании антивирусов.

Ответ отправлен: 07.08.2004, 23:25
Отправитель: Горячев Игорь


 Вопрос № 5688

Я давно хотел разобраться с защищенным режимом. Где можно найти путевую доку по защищенному режиму на TASM.



Вопрос отправлен: 06.08.2004, 07:35
Отправитель: Dark (Crazy_Dark@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Горячев Игорь

Здравствуйте, Dark!
http://wasm.ru

Ответ отправлен: 07.08.2004, 23:26
Отправитель: Горячев Игорь



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (23)
C / C++ (13)
Perl (7)
Builder / Delphi (15)
Pascal (22)
Basic / VBA (6)
Java / JavaScript (8)
PHP (17)
Криптография (8)
WinAPI (11)
Радиоэлектроника (11)
Пользователю
Windows 95/98/Me (46)
Windows NT/2000/XP (61)
"Железо" (45)
Поиск информации (15)
Администратору
Windows NT/2000/XP (37)
Linux / Unix (21)
Юристу
Гражданское право (9)
Семейное право (6)
Трудовое право (8)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
Rambler's TopShop Rambler's Top100
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
http://subscribe.ru/feedback/
Адрес подписки
Отписаться

В избранное