Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 704
от 09.03.2004, 01:00
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 5064 Отправлено ответов: 13982 Активность: 276.1 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Foamplast Статус: Опытный Общий рейтинг: 158.7 URL: мой личный сайт [Подробней >>] |
Snowm@n Статус: Доверительный Общий рейтинг: 125 [Подробней >>] |
vitya Статус: Профессиональный Общий рейтинг: 108.74 [Подробней >>] |
HertZ Статус: Опытный Общий рейтинг: 134.17 [Подробней >>] |
Andrew Vext Статус: Профессиональный Общий рейтинг: 103.16 [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 117.79 [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 105.83 URL: Savage Metal Club - жизнь в стиле рок-н-ролл Телефон: +7 901 710 3146 [Подробней >>] |
VOVAN Статус: Доверительный Общий рейтинг: 104.17 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 5032. здрасьти... у меня вот тут пара вопросов возникла: 1) я тут пытался загрузить в IDA програмулину, он... (ответов: 3)
Вопрос № 5033. Привет эксперты. Помогите решить проблему. Мне нужно замерять за сколько тактов выполнится некотора... (ответов: 4)
Вопрос № 5037. Подскажите, где можно взять библиотеку для проигрывания MP3 под DOS с описанием функций и желательно... (ответов: 1)
Вопрос № 5038. При работе с сокетами WIN32 можно изменять IP отправителя ?... (ответов: 2)
Вопрос № 5039. Опять приветик. Ещё раз повопросу 5027. Мне казалось, что относительно понятно спросил, но ... Повто... (ответов: 4)
Вопрос № 5040. Уважаемые Эксперты, вопрос новичка. Ранее занимался только аналоговой техникой, сейчас понадобились ... (ответов: 1)
Вопрос № 5041. Здравствуйте эксперты!!! Я хочу задать вам вопросик, правда не совсем по теме. Возникла такая пробле... (ответов: 2)
Вопрос № 5042. Вопрос № 5040 Спасибо Уважаемый Gibbel, я перечитал предисловие у Калашникова, но у меня не вызываю... (ответов: 1)
Вопрос № 5043. Здравствуйте уважаемые эксперты!!! Немогли бы вы подсказать как пограмно перемножить две матрицы 3x3... (ответов: 4)
Вопрос № 5044. Каким образом можно узнать состояние модема, есть входящий звонок или нет, если можно пример или ссы... (ответов: 2)
Вопрос № 5045. подскажите, как работает защита программ от отладки, и как ее можно обойти... (ответов: 2)
Вопросов: 11, ответов: 26
Вопрос № 5032 |
здрасьти...
у меня вот тут пара вопросов возникла:
1) я тут пытался загрузить в IDA програмулину, он ее вроде как дизасемлил, но там нет кода, а тока определения ланных (кода там ну страницы 2-3 в конце), почему так???
это какая-то програмная защита?
если да, то как с ней бороться?
2) где живет функция hmemcopy (или hmemcpy)
3) я тут встретился с таким понятием как "дельта-смещение", расскажите мне что это такое...
спасибо.
Вопрос отправлен: 03.03.2004, 19:04
Отправитель: очень хочу научиться
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Доброе время суток, очень хочу научиться!
1. Скорее всего, это саморасшифровывающаяся программа. Сейчас все, кому не лень, пакуют программы.
То есть эти 2-3 страницы читают из раздела данных и расшифровывают эти данные, передавая затем туда управление.
Дальше происходят вызовы LoadLibrary и GetProcAddress, чтобы построить таблицу импорта.
2. WINNTSystem32krnl386.exe
3. Дельта-смещение
http://fly.cc.fer.hr/~lethe/asmjournal/html/apj_7/Extending%20DOS%20Executables.shtml
(перевод с англ.)
Вставляя код, приходится сталкиваться со следующей проблемой: так как код может располагаться по любому смещению в памяти, он не может зависеть от абсолютных адресов данных, получаемых при компиляции из меток данных. Для решения этой проблемы используется техника, называемая вирусописателями "дельта-смещением". Дельта-смещение - это разница между реальным и полученным при компиляции адресами данных. Когда наш код обращается к данным, он добавляет дельта-смещение к адресам времени компиляции, чтобы получить верный адрес времени выполнения. Следующий участок кода вычисляет дельта-смещение.
call GET_START
GET_START:
pop bp
sub bp, offset GET_START
Call запихивает в стек значение регистра ip, являющееся реальным адресом времени выполнения метки "GET_START". Вычитая адрес времени компиляции из реального мы получаем дельта-смещение.
Ответ отправлен: 04.03.2004, 03:23
Отправитель: Foamplast
Отвечает Snowm@n
Приветствую Вас, очень хочу научиться!
Возможно прога запакована EXE-пакером, если так то ее надо распаковать.
Ответ отправлен: 04.03.2004, 08:11
Отправитель: Snowm@n
Отвечает vitya
Здравствуйте, очень хочу научиться!
1. может кода всего столько? Может она дллки какие грузит и все дело в них делаетя. Думайте.
2. думаю это обычная обертка вокруг memcpy.
Ответ отправлен: 04.03.2004, 08:43
Отправитель: vitya
Вопрос № 5033 |
Привет эксперты.
Помогите решить проблему. Мне нужно замерять за сколько
тактов выполнится некоторая порцедура. Я пишу эту прогу под Windows на delphi и использую ассемблерные вставки. Так
в чем собствунно проблема. При измерении скорости выполнения одной и тойже процедуры моим способом результаты получаются разными.
Приложение:
Вопрос отправлен: 03.03.2004, 23:10
Отправитель: gozz
[Следующий вопрос >>] [Список вопросов]
Отвечает HertZ
пџяЂпёпІпµя‚яЃя‚пІяѓяЋ п’п°яЃ, gozz
Windows - пјпЅпѕпЁпѕп·п°пґп°я‡пЅп°яЏ пћпЎ, пїпѕяЌя‚пѕпјяѓ пѕпЅп° пїпµяЂпµпєп»яЋя‡п°пµя‚яЃяЏ пјпµп¶пґяѓ пїпѕя‚пѕпєп°пјпё, пё я‡пµпј пёя… п±пѕп»яЊя€пµ, я‚пµпј пјпµпЅяЊя€пµ пІяЂпµпјпµпЅпё яѓпґпµп»яЏпµя‚яЃяЏ пєп°п¶пґпѕпјяѓ пїпѕя‚пѕпєяѓ, пІ п·п°пІпёяЃпёпјпѕяЃя‚пё пѕя‚ пїяЂпµпѕяЂпёя‚пµя‚п°, пїпѕяЌя‚пѕпјяѓ пё п·п°я‚яЂяѓпґпЅпёя‚пµп»яЊпЅпѕ пїяЂпё пїпѕпјпѕя‰пё яЃя‡пµя‚я‡пёпєп° я‚п°пєя‚пѕпІ пѕпїяЂпµпґпµп»пёя‚яЊ пІяЂпµпјяЏ пІя‹пїпѕп»пЅпµпЅпёяЏ пїяЂпѕя†пµпґяѓяЂя‹.
Ответ отправлен: 03.03.2004, 23:32
Отправитель: HertZ
Отвечает Foamplast
Добрый день, gozz!
Скорее всего, они и есть разные.
Если время выполнения функции больше кванта времени, отводимого в текущих условиях потоку, то они всегда будут разными.
Ответ отправлен: 04.03.2004, 03:30
Отправитель: Foamplast
Отвечает Andrew Vext
Добрый день, gozz!
Естественно каждый раз будут получаться разные результаты. Вы не учли, что во время выполнения процедуры может поступить сигнал прерывания (от таймера, от мыши, от клавиатуры) после чего обрабатывается прерывание. Кроме того по прерыванию от таймера может произойти переключение на другой процесс. И счетчик будет увеличиваться, пока управление снова не вернется вашей программе.
Ответ отправлен: 04.03.2004, 12:09
Отправитель: Andrew Vext
Отвечает Snowm@n
Добрый день, gozz!
Возможно это следствие многозадачности - не только же ваш код выполняется процессором!
Ответ отправлен: 05.03.2004, 20:06
Отправитель: Snowm@n
Вопрос № 5037 |
Подскажите, где можно взять библиотеку для проигрывания MP3 под DOS с описанием функций и желательно примером
Вопрос отправлен: 04.03.2004, 10:57
Отправитель: HertZ
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Здравствуйте, HertZ!
Скачай нужный исходник с
http://www.mp3-tech.org/programmer/decoding.html
и портируй куда надо.
Ответ отправлен: 05.03.2004, 01:15
Отправитель: Foamplast
Вопрос № 5038 |
При работе с сокетами WIN32 можно изменять IP отправителя ?
Вопрос отправлен: 04.03.2004, 11:07
Отправитель: HertZ
[Следующий вопрос >>] [Список вопросов]
Отвечает Foamplast
Здравствуйте, HertZ!
А зачем?
Хосты, через которых будет передаваться сообщение, всё равно свои адреса пропишут.
Ответ отправлен: 05.03.2004, 01:16
Отправитель: Foamplast
Отвечает vitya
Здравствуйте, HertZ!
нет
Ответ отправлен: 04.03.2004, 11:16
Отправитель: vitya
Вопрос № 5039 |
Опять приветик.
Ещё раз повопросу 5027. Мне казалось, что относительно понятно спросил, но ... Повторяю вопросик
Вопрос по ассемблеру для MC51 (восмиразрядный!). Так вот у меня есть число из двух байт. Нужно из этого числа каждую десятичную цифру положить в отдельный байт. Например, имеем десятичное число 1026(оно два байта занимает) нужно получить
1-й байт=6, 2-й=2, 3-й=0, 4-й=1. С одним байтом все понятно
В аккамулятор и регистры могу только один байт запихнуть.
И вообще могу только с одним байтом работать.
1026 в десятичной это 402H соответственно чтобы получить первую цифру (6) посылаю младший байт в A
MOV A, #02H
MOV B, #10 (или MOV B, #0AH)
DIV AB
и в В имеем это число( 6), которое можно запихнуть куда надо.
А как старший байт учесть. Т.е. не могу сразу целиком с 402H работать. Грубо говоря как разделить число из 4 байт на 10 в процессоре I386 получить при этом частое и остаток.
Вопрос отправлен: 04.03.2004, 12:20
Отправитель: Tolyan (fotoalbum@list.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Snowm@n
Приветствую Вас, Tolyan!
ПОКА (!результат==0)
{
очередной байт=результат%10;
результат/=10;
}
Ответ отправлен: 05.03.2004, 20:22
Отправитель: Snowm@n
Отвечает HertZ
Здравствуйте, Tolyan!
Предположим, что у нас имеется 2 байтное число, значит максимум десятичных чисел может быть - 5 штук (65535) , тогда из исходного числа надо вычитать сначала 10000, потом 1000 и.т.д. ,следить за получением отрицательного числа и подсчитывать к-во вычетаний до получения отрицательного числа, при переходе к определению каждого следующего десятичного разряда в регистрах исходного числа восстанавливается последняя положительная разность
Думаю вычетать из 2х байтного числа не составит труда
Ответ отправлен: 04.03.2004, 19:36
Отправитель: HertZ
Отвечает _vt
Здравствуйте, Tolyan!
А разве нету в МС51 команд сдвига? В 8080 (тоже восьмиразрядный!) есть! Их и используй!
--- E-Man 1.5+ : Sorry for terrible english. My native language is C++
Ответ отправлен: 05.03.2004, 00:21
Отправитель: _vt
Отвечает Foamplast
Приветствую Вас, Tolyan!
1. Посмотри внимательней описание коданды деления.
Во многих процессорах комадна деления использует в качестве делимого регистровую пару, т.е. в n-разрядном процессоре с регистрами r1, r2, r3 и т.д. команда деления будет делить 2n-разрядное число из пары r1:r2 на n-разрядное число из r3. i386 не исключение, отсюда ответ на следуюущий вопрос:
2. Записать старшуюу часть числа в Edx, младшую - в Eax, делитель (10) - в Ebx и выполнить команду 'DIV EBX'. Тогда в Eax будет частное, а в Edx - остаток.
3. Если в твоём процессоре команда деления НЕ ИСПОЛЬЗУЕТ регистровуюу пару, то придётся делить столбиком. То есть берёшь старшую часть делимого, делишь на делитель. Частное записываешь, остаток прибавляешь к следуюущей части делимого, опять делишь на делитель, частное приписываешь к старому частному и т.д. Это описание неточное, чтобы лучше понять алгоритм, дели числа столбиком, как в школе, и поймешь.
Приложение:
Ответ отправлен: 06.03.2004, 14:27
Отправитель: Foamplast
Вопрос № 5040 |
Уважаемые Эксперты, вопрос новичка. Ранее занимался только аналоговой техникой, сейчас понадобились микроконтроллеры и естественно ассемблер. Начал с уроков О.А.Калашникова и как, собака, всё понимаю, а попробовать не могу. У меня Win XP pro (оригинал) без всякой руссификации (портит шрифты). Скачал программы у автора, а что дальше, он не написал. Т.е. в каком порядке их и, главное для чего и КАК применять. MASM6.11 имеет вообще 4 папки: BIN, HELP, INCLUDE, SAMPLES и 4 текстовых файла. Никаких запускающих файлов нет. Из Softice v.4.0 запускается только небольшое окно „WLDR“. Вопрос: чего делать дальше, как пробовать программы? Когда-то я баловался программами более высокого уровня, там была прим. такая система: 1)пишется текстовый файл в любом редакторе, 2)затем он проверяется на синтакситечские ошибки, 3) кажется, компиллировался с отловом ошибок программных, 4) и в конце прог. можно было прокатывать даже по шагам, наблюдая состояние каждого регистра. Помогите пожалуйста, спасибо. brosaus
Вопрос отправлен: 04.03.2004, 16:47
Отправитель: Brosaus
[Следующий вопрос >>] [Список вопросов]
Отвечает Gibbel
Здравствуйте, Brosaus!
Все точно также - набираете в текстовом редакторе текст программы, ассемблируете, запускаете/отлаживаете.
А вообще, внимательнее читайте уроки Калашникова - там в самом начале все подробно расписывалось.
Ответ отправлен: 04.03.2004, 17:18
Отправитель: Gibbel
Вопрос № 5041 |
Здравствуйте эксперты!!!
Я хочу задать вам вопросик, правда не совсем по теме.
Возникла такая проблема:
Есть комп Pentium 3GHz, мать 4PCA3,Intel 875,GF FX 5700
HDD 120,DDR 512, блок питания 350W
Он не хочет работать.
Когда вклячаю питание то кулеры сделают 1,2 оборота и вырубаются, далее все глухо. В блоке питания есть два разема питания которые подключаются на мать, один обычный ATX1, второй ATX2 12V 4 pin. Если оставляю питание ATX1 все кулеры начинают работать. На мамке есть индекатор который выводит код ошибки. Всегда выдает код FF (в мануале пишется что что-то неправильно подключено или ошибка в BIOS) но комп только что из магазина.
Я не знаю что делать, оборудование то дорогое (даже очень).
Помогите please, а то, что я только не делал ничего не выходит.
P.S.:
Извините что вопрос не в тему.
Вопрос отправлен: 04.03.2004, 17:57
Отправитель: GreS (prm_serg@list.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Snowm@n
Доброе время суток, GreS!
А гарантия вам на что?
Ответ отправлен: 05.03.2004, 20:24
Отправитель: Snowm@n
Отвечает Foamplast
Добрый день, GreS!
Обратись в магазин.
Ответ отправлен: 06.03.2004, 14:28
Отправитель: Foamplast
Вопрос № 5042 |
Вопрос № 5040
Спасибо Уважаемый Gibbel, я перечитал предисловие у Калашникова, но у меня не вызываются MASM.EXE и ML.EXE, они только пролетают мгновенно по экрану. Функционирует ли MASM 6… под XP? Я хотел попробовать переустановить, при этом задаётся вопрос о системе: „DOS/Win NT ; MS-DOS/MS Windows; MS Win NT“. Исходя из Вашего опыта, нажимать неглядя „ВВОД“ и устанавливать по умолчанию или искать старый РС с Win-95? Спасибо
Вопрос отправлен: 04.03.2004, 18:52
Отправитель: Brosaus
[Следующий вопрос >>] [Список вопросов]
Отвечает Gibbel
Доброе время суток, Brosaus!
1. Запускайте файлы из какой-либо оболочки, например FAR.
2. MASM 6 прекрасно функционирует по WinXP (только что им собирал программу)
3. Выбирайте установку DOS/Windows, В остальном нажимайте везде Enter - он встанет в C:\masm611. Сам компилятор окажется в каталоге C:\masm611\bin
4. А почему сразу Win95, если вы учитесь по Калашникову, то вам нужен MS-DOS ;-). А вообще, подойдет любая система, поддерживающая исполнение DOS-программ...
Ответ отправлен: 04.03.2004, 19:28
Отправитель: Gibbel
Вопрос № 5043 |
Здравствуйте уважаемые эксперты!!!
Немогли бы вы подсказать как пограмно перемножить две матрицы 3x3 или nxn, если можно с примером!!!
Зарание спасибо!!!
Вопрос отправлен: 04.03.2004, 20:05
Отправитель: Гошт (twixt@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает HertZ
Добрый день, Гошт!
Проще и быстрее использовать MMX, все выполняется прозрачно и максимальо быстро
Ответ отправлен: 04.03.2004, 23:11
Отправитель: HertZ
Отвечает VOVAN
Здравствуйте, Гошт!
реализация на паскале. на асме делать лень, делай сам.
Приложение:
Ответ отправлен: 05.03.2004, 15:35
Отправитель: VOVAN
Отвечает vitya
Здравствуйте, Гошт!
любая книжка по линейной алгербре расскажет тебе об этом.
Если у тебя возникнет вопрос во время реализации - задай конкретно его.
Ответ отправлен: 05.03.2004, 08:43
Отправитель: vitya
Отвечает Foamplast
Добрый день, Гошт!
Берёшь и перемножаешь.
А в чём вопрос?
Ответ отправлен: 06.03.2004, 14:36
Отправитель: Foamplast
Вопрос № 5044 |
Каким образом можно узнать состояние модема, есть входящий звонок или нет, если можно пример или ссылку.
Вопрос отправлен: 05.03.2004, 00:14
Отправитель: HertZ
[Следующий вопрос >>] [Список вопросов]
Отвечает Snowm@n
Добрый день, HertZ!
Юзай RasAPI.
Ответ отправлен: 05.03.2004, 20:35
Отправитель: Snowm@n
Отвечает Foamplast
Приветствую Вас, HertZ!
RasGetConnectStatus
Ответ отправлен: 06.03.2004, 14:41
Отправитель: Foamplast
Вопрос № 5045 |
подскажите, как работает защита программ от отладки, и как ее можно обойти
Вопрос отправлен: 05.03.2004, 00:50
Отправитель: HertZ
[Следующий вопрос >>] [Список вопросов]
Отвечает Gibbel
Здравствуйте, HertZ!
Защита программ от отладки основана на известных багах существующих отладчиков. Однозначного ответа, как ее обойти, дать невозможно - надо знать, какие из антиотладочных трюков проходят на вашем отладчике и, в ходе отладки, обходить их.
Ответ отправлен: 05.03.2004, 10:34
Отправитель: Gibbel
Отвечает Snowm@n
Доброе время суток, HertZ!
http://www.cracklab.narod.ru
Ответ отправлен: 05.03.2004, 20:36
Отправитель: Snowm@n
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (29) C / C++ (20) Perl (3) Builder / Delphi (17) Pascal (21) Basic / VBA (9) Java / JavaScript (5) PHP (12) Криптография (7) WinAPI (16) Радиоэлектроника (10) |
Пользователю Windows 95/98/Me (38) Windows NT/2000/XP (58) "Железо" (33) Поиск информации (18) |
Администратору Windows NT/2000/XP (28) Linux / Unix (11) |
Юристу Гражданское право (15) Семейное право (12) Трудовое право (12) КоАП (10) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||