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

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


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

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

Выпуск № 423
от 22.11.2002, 18:40

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


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

St
Статус: Опытный
Общий рейтинг: 117.16
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 137.68
URL: Задачи по ассемблеру
Телефон: 89039415024 (BiLine GSM)
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 119.86
[Подробней >>]
 
Eugene
Статус: Опытный
Общий рейтинг: 112.03
URL: мощный файловый архив
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 153.33
[Подробней >>]
Sergey
Статус: Начальный
Общий рейтинг: 101.97
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 117.33
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 152.01
[Подробней >>]
keleb-glin
Статус: Начальный
Общий рейтинг: 114
[Подробней >>]
 
Sensey
Статус: Профессиональный
Общий рейтинг: 122.83
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.52
URL: Страничка обо мне и моих друзьях
[Подробней >>]
LIFO
Статус: Профессиональный
Общий рейтинг: 127.12
URL: наш сайт
Телефон: 8 01710 24758
[Подробней >>]
 
Broken Sword
Статус: Профессиональный
Общий рейтинг: 129.98
URL: моя рассылка по Protected Mode
[Подробней >>]


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

Вопрос № 1840. Здравствуйте!!! У меня тут вопросик: неделю парился, но не получается... Надо мне под ДОС программку... (ответов: 3)
Вопрос № 1841. Всем привет. Кто-нибудь может прислать мне assembler работающий нормально под WINME, чтобы шел под D... (ответов: 2)
Вопрос № 1842. Здрасти!!!! Подсажите пожалуйста. Я могу достать к своему Am386(то есть троечка от AMD) 287 сопроце... (ответов: 1)
Вопрос № 1843. a... (ответов: 2)
Вопрос № 1844. Привет!!! Тут на форуме решили сделать фотогаллерею экспертов, так что шлите фотки на anysoft@nm.ru ... (ответов: 2)
Вопрос № 1847. привет эксперты. 1.Не подскажите, где в dos-eхе хедере наход. точка входа. 2.в w32 почему, если поло... (ответов: 3)
Вопрос № 1848. Здравствуйте, Bob Johnson. В рассылке был вопрос о написании драйверов для Win. Вы ответили: Могу т... (ответов: 1)
Вопрос № 1849. Здроствуйте, где можно скачать *.lib , зарание спасибо.... (ответов: 4)
Вопрос № 1850. После выполнения моя программа закрывает окно DOS'а (работаю в WinMe). А мне надо увидеть результат ... (ответов: 8)
Вопрос № 1851. Ув. эксперты! В сайсе вместо BMSG можно поставить BPX адрес взять по команде HWND и еще надо подстав... (ответов: 2)

Вопросов: 10, ответов: 28


 Вопрос № 1840

Здравствуйте!!!
У меня тут вопросик: неделю парился, но не получается...
Надо мне под ДОС программку с мышкой. Я пишу на сях но использую встроенный ассемблер. Так вот, там есть на 33-м прерывании ф-ция 0С кажется (назначить процедуру обработки прерывания по маске, типа того) Ну я делаю всё вроде правильно, а у меня из этой процедуры не выходит или выходит не туда. Может стэк рушится или может процедуру как прерывание надо оформлять? Винда (если с виртуальной машины ) сразу закрывает программу... Как то вроде даже печатало какие-то каракули... Не понимаю...
см. в приложении.
Спасибо.


Приложение:


Вопрос отправлен: 17.11.2002, 18:35
Отправитель: E$h@ (bbroth@pochtamt.ru)

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

Отвечает St

Привет, E$h@!
В справочнике по прерываниям говорится, что указатель на процедуру обслуживания мыши определяется парой регистров ES:DI, а у вас вместо DI используется DX. Надеюсь ошибка в этом, тк си не люблю и найти ошибку в ней вряд ли смогу.
St

Ответ отправлен: 17.11.2002, 20:13
Отправитель: St


Отвечает Maverick

Приветствую Вас, E$h@!
Поглядел тут ответ на твой вопрос, мне кажется, что дело тут не в этом. ES:DX я так понял указывают на far-программу.
А в сях я ноль, погляди прогу в целом, а не только ассемблер.


Ответ отправлен: 17.11.2002, 22:30
Отправитель: Maverick


Отвечает ASMодей

Добрый день, E$h@!
С чего это ты взял, что процедура HANDLER останется в памяти
после завершения работы программы?


Ответ отправлен: 18.11.2002, 06:13
Отправитель: ASMодей


 Вопрос № 1841

Всем привет. Кто-нибудь может прислать мне assembler работающий нормально под WINME, чтобы шел под DOS. Желательно прислать любые исходники.Заранее спасибо.
evgen_@list.ru



Вопрос отправлен: 17.11.2002, 20:46
Отправитель: evgen (evgen_@list.ru)

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

Отвечает Eugene

Здравствуйте, evgen!
А если хочешь ещё и с исходниками, то на том же filesearch.ru набери fasm, будет тебе и с исходниками.

Ответ отправлен: 19.11.2002, 09:15
Отправитель: Eugene


Отвечает Maverick

Доброе время суток, evgen!
На www.filesearch.ru набери Tasm
Вот тебе и ассемблер.


Ответ отправлен: 17.11.2002, 22:30
Отправитель: Maverick


 Вопрос № 1842

Здрасти!!!!
Подсажите пожалуйста. Я могу достать к своему Am386(то есть троечка от AMD) 287 сопроцесор. Будут ли они нормально работать?
Torax



Вопрос отправлен: 17.11.2002, 20:46
Отправитель: Torax (torax@dotes.west.energy.gov.ua)

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

Отвечает Bob Johnson

Доброе время суток, Torax!
Мне кажется, что ты его даже вставить не сможешь. 287 был (если я его ни с чем не путаю) - DIP 40..., а вот тройки пошли уже в планарных корпусах... Так что лучше вначале посмотри на разъем на плате, куда должен вставляться FPU и посмотри на сам чип (который ты хочешь вставить) - может сразу будет видно, что не получится.
P.S. А зачем тебе весь этот антиквариат?


Ответ отправлен: 18.11.2002, 16:39
Отправитель: Bob Johnson


 Вопрос № 1843

a


Приложение:


Вопрос отправлен: 17.11.2002, 20:51
Отправитель: aa

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

Отвечает Sergey

Приветствую Вас, aa!


Ответ отправлен: 17.11.2002, 23:12
Отправитель: Sergey


Отвечает Bob Johnson

Приветствую Вас, aa!
b


Приложение:

Ответ отправлен: 18.11.2002, 16:41
Отправитель: Bob Johnson


 Вопрос № 1844

Привет!!!
Тут на форуме решили сделать фотогаллерею экспертов, так что шлите фотки на anysoft@nm.ru
Для подробной информации смотри сюда
http://rusfaq.ru/cgi-bin/Forum.cgi?Action=ShowOpin&Number=93&Forums=All&Qty=25&From=1&Sort=



Вопрос отправлен: 17.11.2002, 22:47
Отправитель: Саша Кова (sasha@rusfaq.ru)

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

Отвечает Maverick

Приветствую Вас, Саша Кова!
А где эти фотки потом будут?
Maverick@nightmail.ru


Ответ отправлен: 17.11.2002, 22:56
Отправитель: Maverick


Отвечает Bob Johnson

Добрый день, Саша Кова!
Посмотрим... (всмысле ссылку)


Ответ отправлен: 18.11.2002, 16:42
Отправитель: Bob Johnson


 Вопрос № 1847

привет эксперты. 1.Не подскажите, где в dos-eхе хедере наход. точка входа.
2.в w32 почему, если положить в стек getmodulehandle->freelibrary->jmp $, перейти туда, то заблокир. ctrl-alt-del.



Вопрос отправлен: 18.11.2002, 10:44
Отправитель: oleg

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

Отвечает Ayl

Доброе время суток, oleg!
Согласно описанию заголовка EXE (см.приложение), точка входа (CS:IP) находится в двойном слове по смещению 14h


Приложение:

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


Отвечает masquer

Здравствуйте, oleg!
По второму вопросу поподробнее, куда перейти, как стек выглядит?

Ответ отправлен: 18.11.2002, 14:23
Отправитель: masquer


Отвечает ASMодей

Здравствуйте, oleg!
1. По смещению +14h находится значение IP, по смещению +16h -
значение CS.


Ответ отправлен: 19.11.2002, 16:14
Отправитель: ASMодей


 Вопрос № 1848

Здравствуйте, Bob Johnson.
В рассылке был вопрос о написании драйверов для Win.
Вы ответили: Могу тебе выслать свой труд - что-то типа курсового, где объясняется (достаточно просто) как писать драйвера для Win9x.
Огромная просьба выслать и мне.
С уважением,
заранее спасибо,
Николай.



Вопрос отправлен: 18.11.2002, 13:05
Отправитель: Николай

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

Отвечает Bob Johnson

Приветствую Вас, Николай!
Ну да. А вот адрес свой оставить слабо?


Ответ отправлен: 19.11.2002, 17:13
Отправитель: Bob Johnson


 Вопрос № 1849

Здроствуйте, где можно скачать *.lib , зарание спасибо.



Вопрос отправлен: 18.11.2002, 13:06
Отправитель: Cas (casvs@pochtamt.ru)

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

Отвечает Bob Johnson

Приветствую Вас, Cas!
Можешь сделать их сам из любой DLL. Утилита implib из пакета TASM.


Ответ отправлен: 19.11.2002, 17:13
Отправитель: Bob Johnson


Отвечает --- Нет данных ---

Приветствую Вас, Cas!
А какие либы-то? Если для Винды то они входият стандартныу поставку ассемблера, в к-рым вы кодируете. Ну другие можно скачать с сайта Некрософта

Ответ отправлен: 18.11.2002, 13:39
Отправитель: --- Нет данных ---


Отвечает St

Привет, Cas!
Если вы имеете в виду библиотеки импорта для Win32, то под масм их много уже готовых в пакете masm32, а вообще-то они создаются при помощи специальных утилит прямо из нужной DLL (Implib.exe - есть свои и в тасм и в масм).
St

Ответ отправлен: 18.11.2002, 17:52
Отправитель: St


Отвечает Maverick

Добрый день, Cas!
www.filesearch.ru
Введи там *.lib

Ответ отправлен: 18.11.2002, 16:14
Отправитель: Maverick


 Вопрос № 1850

После выполнения моя программа закрывает окно DOS'а (работаю в WinMe). А мне надо увидеть результат работы в виде символов переменной, выводимых на экран. Программа компилируется в com (или это не важно?)
Заканчивается программа так:
;-------------
mov ah,9
mov dx,PrdKey; кстати, здесь же можно вместо mov указать lea? В чем разница?
int 21h
ret
; описание переменных
;-------------
Как мне сделать так, чтоб хоть одним глазком... ?



Вопрос отправлен: 18.11.2002, 17:29
Отправитель: Faraon

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

Отвечает Ayl

Добрый день, Faraon!
ну так понятно... Ты же пишешь ret, что предполагает завершение программы. Надо или ставить задержку (например, так:
xor ax, ax
int 16h
)
или запускать из командной строки или из-под какой-либо оболочки типа FAR, DN, NC...
Разница между mov OFFSET и lea в том, что первая определяет значение операнда в момент компиляции, а вторая в ходе выполнения программы. Но в данном случае все равно, что писать, так как компилятор "умный" и сам преобразует выражение lea dx, PrdKey в mov dx, OFFSET PrdKey.
Я лично предпочитаю lea - в исходнике короче и мне понятнее.


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


Отвечает keleb-glin

Добрый день, Faraon!
Используй функцию 10h прерывания 16h:
mov ah, 10h
int 16h
Это запрос на нажатие клавиши. Кроме того, в al потом будет лежать код клавиши.

Ответ отправлен: 18.11.2002, 21:36
Отправитель: keleb-glin


Отвечает St

Привет, Faraon!
1) Запускайте программу из Windows Commander с нажатым Shift
2) Из под любого файл-менеджера работающего в Дос окне - Volkov и Norton Commander, DOS Navigator, Far - после окончания работы программы можно скрыть файловые панели и посмотреть что программа вывела на экран
LEA (load effective address) загружает не значение переменной, а ее адрес в памяти. Работает как MOV Reg,OFFSET Var, но в отличие от него не только на этапе компиляции, но и на этапе работы программы - то есть с помощью LEA можно например загружать адрес локальной переменной, находящейся в стеке, а с помощью MOV Reg,OFFSET Var только глобальных, определенных на этапе написания программы.
St

Ответ отправлен: 18.11.2002, 18:05
Отправитель: St


Отвечает Bob Johnson

Здравствуйте, Faraon!
Просто запускай свою программу не прямо из Windows, а из far (например). Тогда, нажав Ctrl-O ты увидишь, что она написала.
Еще, в 98-м кажется, существует файл Conagent.exe (в C:WindowsSystem) - так вот, сделай к нему pif (т.е. открой его свойства в explorer'ре) и установи там "не закрывать автоматически окно" - должно помочь. В ME я думаю тоже есть этот файл.


Ответ отправлен: 19.11.2002, 17:13
Отправитель: Bob Johnson


Отвечает Sensey

Доброе время суток, Faraon!
Дополню экспертов
Надо создать pif-файл, в кот указывать не закрывать окно по завершению рабоыт:
В Эксплорере правой мышкой, свойства, закладка Программа.
Убрать чекбокс "Закрывать окно по завершении работы"


Ответ отправлен: 18.11.2002, 19:27
Отправитель: Sensey


Отвечает Gibbel

Приветствую Вас, Faraon!
Можно настроить Windows, чтоб по завершении сеанса не закрывалось окно. Или добавь в конце проги перед выходом
mov ah,1
int 16h
После этого программа будет ожидать нажатия любой кнопки.
lea загружает адрес переменной, а mov - ее значение. Кстати, тебе тут надо писать или
mov dx,offset PrdKey
или
lea dx,PrdKey

Ответ отправлен: 18.11.2002, 18:29
Отправитель: Gibbel


Отвечает Maverick

Добрый день, Faraon!
Перед ret вставь:
mov ah,10h
int 16h
Эта функция ждет нажатия клавиши.


Ответ отправлен: 19.11.2002, 07:49
Отправитель: Maverick


Отвечает LIFO

Здравствуйте, Faraon!
1.Разница есть.
если пишешь
0103 mov dx,PrdKey
;а потом присваиваешь
PrdKey db 'a'
;то в dx у тебя будет 61-код символа 'a'
;а если
lea dx,PrdKey
;то в dx у тебя будет не код символа 'a', а СМЕЩЕНИЕ , по которому этот символ находится.
Вообще тебе стоит все смотреть в отладчике - быстрее дойдет.
И еще ... У тебя надо писать
mov dx, offset PrdKey
;или
lea dx,PrdKey
Тогда все выводится (по крайней мере у меня , кстати запускай из Volcov'a, но не из Windows Commander.


Ответ отправлен: 21.11.2002, 15:56
Отправитель: LIFO


 Вопрос № 1851

Ув. эксперты!
В сайсе вместо BMSG можно поставить BPX адрес взять по команде HWND и еще надо подставить условие IF.
Например BPX ..... IF ebp+0C==WM_DESTROY. Но у меня сдесь ошибка сайс будет сравнить двойку с суммой регистра ebp и 0С, а надо заставить сайс чтобы он сравнивал дв слово адрессуемое ebp регистром, не подскажите(синтаксис) как так можно аддресовать байты, слова и дв слова.
ЗЫ (эксперту Broken Sword) Сайс действительно глючный, пошагово выполняя программу я глянул хэндл окна возвращаемые ф. CreateWindowEx и этот хэндл сайсу не подуше. Надо менять сайс, около двух месяцев назад я сливал сайс под НТ с hi-tech.nsys.by.ru (ништячный сайт, я с него и MASM32V7 брал, все работает) в том сайсе сразу после загрузки Loader-ом программы виден код первой выполняемой инструкции, а то у меня видны одни INVALIDы, а после нажатия F10 все нормально, но первая команда уже выполнена и я ее не видел. Короче тот сайс был нормальный, а какой мне подсунули на базаре !@#$%^. Вот зашел я седня с утречка на hi-tech.nsys.by.ru .... А там ниче нет :(((((((
Но написано что вскоре че та там будет хорошее.



Вопрос отправлен: 18.11.2002, 18:05
Отправитель: Kiselev (kiselev@nightmail.ru)

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

Отвечает Broken Sword

Приветствую Вас, Kiselev!
Вот так:
BPX адрес IF (EBP->0С)==WM_DESTROY
P.S. вот представь, что по с'айсу появилась книга, ты б ее купил?


Ответ отправлен: 18.11.2002, 20:05
Отправитель: Broken Sword


Отвечает masquer

Здравствуйте, Kiselev!
bpx xxxx if (*ebp)==xxxxxxxx

Ответ отправлен: 18.11.2002, 18:53
Отправитель: masquer



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

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (42)
C / C++ (29)
Perl (8)
Delphi (14)
Pascal (22)
Basic / VBA (12)
Java / JavaScript (14)
PHP (11)
MySQL / MSSQL (9)
Пользователю
Windows 95/98/Me (32)
Windows NT/2000/XP (22)
"Железо" (27)
Поиск информации (17)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (16)
Юристу
Гражданское право (7)
Семейное право (2)
Трудовое право (3)
КоАП (2)

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




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное