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

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


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

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

Выпуск № 659
от 06.11.2003, 22:10

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


От Администратора



Уважаемые эксперты и читатели!
12 ноября этого года, в среду состоится встреча посетителей ресурса RusFAQ.ru.
Встреча состоится в Москве на станции МЕТРО Фили, в центре зала, по направлению в сторону центра в 18 часов 30 минут. Опоздавших ждем 15 минут.
Желающие приехать, напишите, пожалуйста, письмо мне в произвольной форме, чтобы можно было примерно прикинуть кол-во человек. В настоящий момент на встрече будут присутствовать: DiGiT, Gibbel, Sel и я.


Калашников О.А. (admin@rusfaq.ru)


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

never_again
Статус: Доверительный
Общий рейтинг: 141.23
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 122.99
URL: Эхоконференция по вирмейкингу
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Hangatyr
Статус: Профессиональный
Общий рейтинг: 110.65
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 112.73
[Подробней >>]
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 142.69
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
dr_dolphin
Статус: Доверительный
Общий рейтинг: 119.38
[Подробней >>]
 
netus
Статус: Начальный
Общий рейтинг: 105.08
[Подробней >>]
Mortus Alighieri
Статус: Начальный
Общий рейтинг: 122
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 149.4
URL: Программирование
[Подробней >>]
 
_vt
Статус: Профессиональный
Общий рейтинг: 120.68
[Подробней >>]


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

Вопрос № 4401. А какая система доставки книг у Интела? Почтой или как? Просто я живу в Казахстане, а у них в списке... (ответов: 1)
Вопрос № 4402. Уважаемые эксперты! Я очень сильно благодарен Вам за Ваши ответы и уверен что благодаря им я смогу н... (ответов: 2)
Вопрос № 4404. Уважаемые эксперты, вопрос как правильно работать с сокетами под Win32 , нужна точная последовате... (ответов: 2)
Вопрос № 4405. Здравствуйте, эксперты! Почему при компиляции проги команда "adc [bx],ecx" получается d... (ответов: 2)
Вопрос № 4406. Hi! Привет спецы-коллеги. :) 1) Заведомо глупый вопрос: Много напрограммировали? :) (вопрос не мой &... (ответов: 3)
Вопрос № 4407. Здравствуйте уважаемые эксперты. Можно ли в Asme работать смасивами? Если да, то как? Например дан н... (ответов: 3)
Вопрос № 4408. Всем привет!!! Скажите pls как можно читать с дискетки побайтово. Я сделал прогу которая посекторно... (ответов: 5)
Вопрос № 4409. Здравствуйте. Подскажите, пожалуйста, какой язык програмирования лучше всего изучить мне, если на да... (ответов: 6)
Вопрос № 4410. Здравствуйте! Мне хотелось бы стать хорошим системным программистам, но я мало знаю да в Internet(е... (ответов: 6)

Вопросов: 9, ответов: 30


 Вопрос № 4401

А какая система доставки книг у Интела? Почтой или как? Просто я живу в Казахстане, а у них в списке выбора страны Казахстана нет: дойдут или не дойдут книги, если в поле адрес я написал "Kazakhstan, СвойГород....", а страну выбрал: Россия?



Вопрос отправлен: 31.10.2003, 02:04
Отправитель: darknez

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

Отвечает never_again

Доброе время суток, darknez!
А "На деревню, дедушке" не пробовал?

Ответ отправлен: 01.11.2003, 00:15
Отправитель: never_again


 Вопрос № 4402

Уважаемые эксперты! Я очень сильно благодарен Вам за Ваши ответы и уверен что благодаря им я смогу начать свой путь в познании ассемблера. Нет ничего невозможного, было бы желаниеи все осуществляется.



Вопрос отправлен: 31.10.2003, 07:19
Отправитель: Денис

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

Отвечает Maverick

Доброе время суток, Денис!
:) В путь, ты сказал великие слова и да пребудет с тобой Сила!

Ответ отправлен: 03.11.2003, 03:50
Отправитель: Maverick


Отвечает never_again

Приветствую Вас, Денис!
Аминь.

Ответ отправлен: 01.11.2003, 00:14
Отправитель: never_again


 Вопрос № 4404

Уважаемые эксперты, вопрос как правильно работать с сокетами под Win32 , нужна точная последовательность действий какую функцию за какой вызывать, а то что то не идет , к примеру надо послать что то на определенный IP по конкретному порту и получить от определенного IP по фиксированному порту....
P.S. спасибо вам эксперты , ваши советы мне очень помогают , и не ругайтесь по поводу того что эти вопросы якобы для С , все таки исходники мне нужны на ASMе а значит тема рассылки по адрессу...



Вопрос отправлен: 01.11.2003, 12:31
Отправитель: greg

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

Отвечает Hangatyr

Приветствую Вас, greg!
Попробуй разобраться в том куске кода, что находится в приложении.

Приложение:

Ответ отправлен: 01.11.2003, 15:35
Отправитель: Hangatyr


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

Приветствую Вас, greg!
Смотри здесь:
http://www.wasm.ru/article.php?article=socketvssocket
по-моему как раз то, что нужно.

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


 Вопрос № 4405

Здравствуйте, эксперты!
Почему при компиляции проги команда "adc [bx],ecx" получается db 67,11,0f. Я поставил дерективу USE32. Все адреса нормальные 32 разрядные. Но почему он пишет 0f . У Зубкова написано что он так делает при 16-битном режиме (при 32 битном получается 0f= [di],ecx). Так кто скажет почему он все-таки при USE32 (и при .model flat ) пишет '67,11,0f' ,а не '67, 11, 00001011b' . А как это интерпритирует проц. ( сегмент этого кода будет 32 битным)



Вопрос отправлен: 01.11.2003, 15:35
Отправитель: Alexej (asm@e-mail.ru)

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

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

Добрый день, Alexej!
0Fh - это код операнда.
67h - расширение размера - CX -- ECX.
Что тут непонятного? - используй!
* EMan: -=- Любовь существует! =-=


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


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

Добрый день, Alexej!
0F - это код операнда. В данном случае это регистр BX. И в 16- и в 32-разрядном коде он останется регистром BX, поэтому и код его не меняется.

Ответ отправлен: 03.11.2003, 08:11
Отправитель: ASMодей


 Вопрос № 4406

Hi!
Привет спецы-коллеги. :)
1) Заведомо глупый вопрос: Много напрограммировали? :) (вопрос не мой && ответ не обязателен)
2) Как понизить уровень программы до драйвера?
Есть у меня, например, ловушка клавиш. Так вот мне надо, чтобы при нажатии на кнопки, управление сперва передавалось моей программе, а потом я уже решал, передавать это сообщение дальше.
Как мне это сделать? Может быть уже ловушка здесь не нужна? Тогда как мне драйвер сделать полноценный?
Thank you for answers.



Вопрос отправлен: 01.11.2003, 22:26
Отправитель: URiS (urisff@inbox.ru)

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

Отвечает never_again

Приветствую Вас, URiS!
VxD надо делать.


Ответ отправлен: 01.11.2003, 23:23
Отправитель: never_again


Отвечает dr_dolphin

Приветствую Вас, URiS!
В Windows лучше повесить хук на событие WM_KEYDOWN,
а насчет драйвера, то просто так, уровень понизить неудастся, т.к. драйвер, уж очень специфический вид программы.... Да и не к чему это в твоем случае...
Пока !


Ответ отправлен: 03.11.2003, 08:48
Отправитель: dr_dolphin


Отвечает Maverick

Добрый день, URiS!
2. Что значит понизить программу до драйвера? Я так думаю нужно написать драйвер :))) У них свои особенности написания. Вот и ищи док-ию по написанию драйверов.


Ответ отправлен: 03.11.2003, 03:50
Отправитель: Maverick


 Вопрос № 4407

Здравствуйте уважаемые эксперты. Можно ли в Asme работать смасивами?
Если да, то как? Например дан неотсортированный массив. Надо его отсортировать и
вывести на экран. Масив заполняется как угодно, точнее как вам
удобно (Random или вводит пользователь).



Вопрос отправлен: 01.11.2003, 22:53
Отправитель: Frost

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

Отвечает netus

Добрый день, Frost!
Массив в ASM можно рассматривать как последовательность байтов (слов, двойных слов и т.д.).
ArrayByte DB 100h DUP(?) ; массив из 256 байтов
; со случ. значением
ArrayWord DW 32 DUP(?) ; массив из 32 слов
ArrayDWord DD 2,1000h,0 ; массив из 3 двойных слов
; со значениями 2, 1000h, 0
Обращение к элементам ведется через индекс, например так
; Запоминаем начальный адрес массива (его смещение в
; сегменте данных)
mov SI,offset ArrayByte
; Здесь регистр SI выступает как будто в роли индекса
; массива, но на самом деле это адрес ячейки в памяти.
; Записть вида [SI] означает значение (содержимое) по
; адресу памяти содержащемуся в регистре SI.
; Заполнение массива, например нулями
mov CX,100h ; Счетчик итераций цикла
mov AL,0
@@M0:
mov [SI],AL ; Заполнить элемент массива
add SI,1 ; Увеличить индекс
loop @@m0

Ну а сортировка проводится как обычно.
Удачи!

Ответ отправлен: 02.11.2003, 10:23
Отправитель: netus


Отвечает Maverick

Добрый день, Frost!
Да можно хоть с чем работать. Хоть с соковыжималкой, если она с контроллером. Хмм, вообще я в алгоритмах не силен, но все делается запросто, введи в поисковик "алгоритмы сортировки" до вечера не разгребешь. Вот и выбери какая интересует, пузырьковая или какая, а потом и реализуем ее на асме :)

Ответ отправлен: 03.11.2003, 03:51
Отправитель: Maverick


Отвечает never_again

Доброе время суток, Frost!
конечно можно!!! что это за вопрос такой вообще?
а для сортировки бери любой алгоритм и вперёд... Хоть тот же пузырёк возьми (если масив маленький).
если ты тот Frost, который жаловался на то, что в эксперты не взяли, так и поделом тебе за такие вопросы!

Ответ отправлен: 01.11.2003, 23:21
Отправитель: never_again


 Вопрос № 4408

Всем привет!!!
Скажите pls как можно читать с дискетки побайтово.
Я сделал прогу которая посекторно читает (инт ох25), но хочется побайтово - чтобы была возможность восстановить больше данных со сломаной дискеты. Говорят как то через порты...

с уважением.



Вопрос отправлен: 02.11.2003, 18:10
Отправитель: Эдик (edsam@spidernet.com.cy)

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

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

Доброе время суток, Эдик!
Вот и считывай всю дорожку сразу. При этом будут считываться все данные на дорожке - вот тебе раздолье для восстановления!
А побайтно не получится - аппаратно дисковод гибких дисков поддерживает только посекторную и подорожечную адресацию...
Бывай!

* EMan: -=- Любовь существует! =-=


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


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

Доброе время суток, Эдик!
Именно через порты и не побайтно, а посекторно или подорожечно :)
Если нужно могу выслать документацию по программированию контроллера дисковода (пиши сюда: newgene@mail.ru).

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


Отвечает dr_dolphin

Добрый день, Эдик!
А кто вам мешает прочитать сектор в буфер с помощью
например прерывания №10 (int 0x10), а потом побайтово
проанализировать этот буфер ???
И еще запомните: Минимально адресуемая единица на диске это сектор. Механизм адресации называется поэтому CHS от Cylinder Head [Sector]/
Удачи !


Ответ отправлен: 03.11.2003, 08:48
Отправитель: dr_dolphin


Отвечает Mortus Alighieri

Приветствую Вас, Эдик!
IMHO я не вижу разницы как читать. Если надо срочно восстановить данные - юзай Easy Recovery.

Ответ отправлен: 05.11.2003, 08:09
Отправитель: Mortus Alighieri


Отвечает Bob Johnson

Здравствуйте, Эдик!
Читать с дискеты можно только посекторно. Это факт. Так работает контроллер дисковода. Единственное, что если повреждения в секторе находятся посредине, то байты до повреждения прочитать теоретически возможно.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 05.11.2003, 21:14
Отправитель: Bob Johnson


 Вопрос № 4409

Здравствуйте. Подскажите, пожалуйста, какой язык програмирования лучше всего изучить мне, если на данный момент я знаю паскаль (по моим оценкам на уравне среднего) и хочу серьёзно заниматься програмированием. А может лучше дальше совершенствоваться в паскале? Заранее спасибо.



Вопрос отправлен: 02.11.2003, 21:16
Отправитель: punkygnom (punkygnom@mail.ru)

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

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

Здравствуйте, punkygnom!
Если ты неплохо знаешь паскаль, то можешь смело переходить на Delphi. Он сейчас используется почти везде, поэтому знания твои точно будут востребованы. Можешь попробовать С++, и вообще я считаю, что следует попробовать несколько языков, прежде чем выбирать. Тем более, что для разных задач могут потребоваться разные языки (Delphi - для прикладных программ, C++ - для системных).

Ответ отправлен: 03.11.2003, 08:43
Отправитель: ASMодей


Отвечает never_again

Здравствуйте, punkygnom!
совершенствуйся, совершенсивуйся. Лучше знать что-то одно на 100%, чем 100 чего-то на 1%.


Ответ отправлен: 02.11.2003, 21:58
Отправитель: never_again


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

Здравствуйте, punkygnom!
Конечно же Ассемблер!

* EMan: -=- Любовь существует! =-=


Ответ отправлен: 02.11.2003, 23:02
Отправитель: Евгений Иванов


Отвечает dr_dolphin

Приветствую Вас, punkygnom!
Странный вопрос...
Обычно выбор языка программирования опирается на
сугубо личные предпочтения, ну а в вашем случае
я порекомендовал бы C++, поскольку философия языка
та же. Конечно лучше, если бы Вы уже общались c
Object Pascal/
До встречи


Ответ отправлен: 03.11.2003, 08:48
Отправитель: dr_dolphin


Отвечает Mortus Alighieri

Доброе время суток, punkygnom!
учи сначала С, а потом и С++!

Ответ отправлен: 05.11.2003, 08:03
Отправитель: Mortus Alighieri


Отвечает Bob Johnson

Здравствуйте, punkygnom!
Изучай дельфи. Это почти тот же самый паскаль, только под винды и с правом на жизнь (на счет чего часто идут долгие споры).
Язык написания профессиональных программ - С++, но он достаточно сложен.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 05.11.2003, 21:15
Отправитель: Bob Johnson


 Вопрос № 4410


Здравствуйте!
Мне хотелось бы стать хорошим системным программистам, но я мало знаю да в Internet(е)
я первый раз для меня такой тупик как Win работать с диском я много слышал про
драйвера, но я их не умею делать делал однажды на ASM(е) под MS-DOS, но не как
вызвать не мог но! Под DOS мне не надо он уже устарел
и редко кто с DOS(ом) пользуется.
Но я кое, что нашел, что-то там про Ring0, но не понимаю, как его использовать
Пробовал в Win9x программу, которая работает с этим, а Win9x пишет что ( Память не
может быть READ/WRITE) как я понял, что нельзя в Win записывать в память
И я не знаю, что делать пробовал драйвер делать (VXD) но оно не компилируется что там с
(Имя драйвера.Def) файлом надо сделать я что за файл (Имя драйвера.Def) и что туда надо
писать тоже не знаю у других по разному написано а я не знаю что мне надо писать по
ассемблеру я начинающий и знаю и знаю не много так исходные программы разбираю и
перевожу Borland Pascal, а сам я знаю Толька три языка эти два и плюс DELPHI мне надо
писать это всё на Delphi он продвинуты и у него есть будущие иначе как я в будущим
создавать программу большие.
Кто знает как это всё сделать или кто встречался с этим прошу помощи помогите если
можно с примерами и по меньше кода иначе я не пойму или опять не будет работать как
другие и ещё что такое файл (Имя файла.DEF) и можно ли создавать драйвера с
TASM32/TLINK32 под Win и что такое RING0
И если вы тоже системный программист поделитесь начальными!
Успехов вам в жизни и здоровье!
[---------------------------------------- Резюме ----------------------------------------]
DATA = 2003г седьмой месяц.
E-MAL = IdealPro@yandex.ru
NAME = Аскар





Вопрос отправлен: 02.11.2003, 22:08
Отправитель: IdealPro

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

Отвечает Mortus Alighieri

Приветствую Вас, IdealPro!
i. Ring0 - Ring1 - Ring3 : wasm.ru -> iczelion's tutorials
ii. Tasm32 + Tlink32 для драйверов не годятся. используй M$ VC++ или M$ VS.NET/C++
iii. Borland PASCAL и Delphi не разные языки, imho это всё PASCAL.
iiii. писать БОЛЬШИЕ проги можно и на asm'е, и на VB, и на BCB....
v. учи С/С++ и ASM (можно AT&T syntax)

Ответ отправлен: 04.11.2003, 17:44
Отправитель: Mortus Alighieri


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

Здравствуйте, IdealPro!
Def-файл - в нём указываются данные для связного:
NAME MyProgram
DESCRIPTION 'Моё название'
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
EXETYPE WINDOWS
STUB 'STUB.EXE'
HEAPSIZE 65536
STACKSIZE 65536
Всё понятно по названию..
Удачи!
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 02.11.2003, 23:06
Отправитель: Евгений Иванов


Отвечает dr_dolphin

Добрый день, IdealPro!
Ну вот вам по порядку:
Изучите ассемблер
Изучите С/С++
Возмите Microsoft DDK с документацией
И пишите себе драйверы под Windows
Ну на это все, правда, у вас может уйти вся жизнь....
Удачи!


Ответ отправлен: 03.11.2003, 08:48
Отправитель: dr_dolphin


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

Здравствуйте, IdealPro!
Я тебе одну умную вещь скажу, только ты не обижайся :)
По-моему человек с такой кашей в голове как у тебя (судя по содержанию вопроса) просто по определению не может быть хорошим системным программистом. И то, что ты не смог ничего сделать ни для DOS, ни для Win95, лишнее тому подтверждение. Посоветовать могу лишь одно - доводи дело до конца. Если начал писать драйвер для DOS, то закончи его, сделай так чтобы он вызывался и правильно работал. То же и с VXD-драйверами. А вот если что-то не будет получаться, то тогда уже пиши сюда и задавай конкретный вопрос.

Ответ отправлен: 03.11.2003, 08:57
Отправитель: ASMодей


Отвечает never_again

Доброе время суток, IdealPro!
сначала выучи русский, потом берись за ассемблер.


Ответ отправлен: 03.11.2003, 14:47
Отправитель: never_again


Отвечает _vt

Приветствую Вас, IdealPro!
> по ассемблеру я начинающий
Этот вопрос не для начинающего...
> делал однажды на ASM(е) под MS-DOS, но не как вызвать не мог
Тоже интересно: а в чем были проблемы?
> Под DOS мне не надо он уже устарел
...
> пробовал драйвер делать (VXD)

Модель драйверов VXD используется только в Win9x, которые также устарели, как и DOS...
Итак, Windows работает в защищенном режиме процессора, который подразумевает разделение возможностей программ - ядро системы работает в нулевом кольце защиты (Ring0), т.е. может выполнять любые команды процессора и имеет доступ ко всему железу напрямую. Драйвера также имеют такую возможность. Для написания драйвера нужен DDK (Device Driver Kit) - заголовочные файлы, справка, доп. средства - для соответствующей ОС. В настоящее время актуальны Win2000 и ХР, ну и Win98, который наряду с основной моделью драйверов (WDM), может работать и со старым вариантом(VXD), который можешь и написать для тренировки.... Подробно описание VXD-драйвера с примером вроде лежало у Боба Джонсона (http://bobjohnson.nm.ru), можешь почитать...

*** E-Man - can help you***


Ответ отправлен: 03.11.2003, 03:48
Отправитель: _vt



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (32)
C / C++ (26)
Perl (3)
Builder / Delphi (22)
Pascal (20)
Basic / VBA (6)
Java / JavaScript (8)
PHP (13)
Криптография (9)
WinAPI (14)
Пользователю
Windows 95/98/Me (46)
Windows NT/2000/XP (63)
"Железо" (40)
Поиск информации (28)
Администратору
Windows NT/2000/XP (39)
Linux / Unix (16)
Юристу
Гражданское право (10)
Семейное право (7)
Трудовое право (7)
КоАП (7)

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




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


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


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

В избранное