Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 737
от 05.06.2004, 23:30
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 5410 Отправлено ответов: 14879 Активность: 275.0 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Pawel Статус: Профессиональный Общий рейтинг: 152.71 [Подробней >>] |
Евгений Иванов Статус: Профессиональный Общий рейтинг: 134.5 URL: Super Assembler Software Телефон: НСС +7 831 3107039 [Подробней >>] |
Dragoon Статус: Доверительный Общий рейтинг: 108.76 [Подробней >>] |
Стас Статус: Доверительный Общий рейтинг: 129.16 [Подробней >>] |
flasher Статус: Начальный Общий рейтинг: 104.48 [Подробней >>] |
Artemy Статус: Опытный Общий рейтинг: 110.89 Телефон: 8 905 549 38 66 [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 105.35 URL: Savage Metal Club - жизнь в стиле рок-н-ролл Телефон: +7 901 710 3146 [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 111.6 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 116.62 [Подробней >>] |
Snowm@n Статус: Опытный Общий рейтинг: 111.86 [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 118.79 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 5372. Помогите плиз а то меня уже запарило по инету шариться, нигде не могу найти програмирование IDE-конт... (ответов: 1)
Вопрос № 5373. Здравствуйте, многоуважаемые эксперты! А можно ли в MASM использовать массивы? Как сделать так, чтоб... (ответов: 2)
Вопрос № 5374. День добрый! Простите меня, грешного, за дебильный вопрос. У меня есть модальное диалоговое окно, а ... (ответов: 1)
Вопрос № 5375. Очень срочно нужно написать прогу на асемблере: чтение информации с CD-R,CD-RW. Не знаю даже с чего ... (ответов: 3)
Вопрос № 5377. Здарова. Есть код: .data? a db 4 dup(?) Как динамически выделять память для A?... (ответов: 3)
Вопрос № 5379. Ниже приведён пример загрузки 4-х байтового числа в регистр еах, при условии, что байты числа распол... (ответов: 4)
Вопрос № 5380. Здраствуйте! Кто может подсказать в чем дело? У меня стоит Ahead Nero version 6.3.1.10 + все необход... (ответов: 2)
Вопрос № 5381. Здарова. Опять я. Где найти алгоритм шифрования(UUEncode ) на ассемблере?... (ответов: 3)
Вопрос № 5382. Привет всем, как создать массив строк в ассемблере?... (ответов: 3)
Вопрос № 5383. Помогите плз со следующ: 1 во всех руководствах, описаниях процессоров 80x86 сказано что программа... (ответов: 3)
Вопросов: 10, ответов: 25
Вопрос № 5372 |
Помогите плиз а то меня уже запарило по инету шариться, нигде не могу найти
програмирование IDE-контролера на уровне портов а не через всеми любимый инт13
... может кто что-нибуть знаю какие-нибуть ссылки,книги,и вобще что есть на эту тематику
Dark_Monarh@mail.ru
Вопрос отправлен: 31.05.2004, 14:50
Отправитель: Dark_Monarh (Dark_Monarh@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Pawel
Доброе время суток, Dark_Monarh!
Я писал библиотеку для работы с винтом(AT) для интервала портов от 1F0h до 168h.
Можешь почитать Кулакова (в примерах к книге есть работа с винтом).
Ответ отправлен: 31.05.2004, 16:07
Отправитель: Pawel
Вопрос № 5373 |
Здравствуйте, многоуважаемые эксперты!
А можно ли в MASM использовать массивы?
Как сделать так, чтобы окно "прилипало" к краям других окон?
Как зарегистрировать горячую клавишу, чтобы она работала везде, а не только когда окно активно? (Я использовал RegisterHotKey, но у меня не получилось :( )
Спасибо за то, что вы есть, за ваши предыдущие ответы и за следующие тоже :)
Вопрос отправлен: 31.05.2004, 16:56
Отправитель: UKY
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Добрый день, UKY!
Конечно.
Используй DUP.
array1 db 100 dup(200)
Потом индексную адресацию.
lea esi, array1
sub ebx,ebx
m1:
mov al,[esi+ebx]
...
inc ebx
dec ecx
jnz m1
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 01.06.2004, 10:48
Отправитель: Евгений Иванов
Отвечает Dragoon
Приветствую Вас, UKY!
Объявляете, например, x db 512 dup(0)
дальше в проге пишите, если известен номер нужного елемента
mov x[5],1 (mov на что угодно меняй)
Если же номер неизвестен при компиляции, то вычисляй его.
Начсет гор. клавиш - наиболее эффективный и быстрый способ -
создание объекта DirectIntup на клаву. Как это сделать есть на wasm.ru
Ответ отправлен: 01.06.2004, 21:11
Отправитель: Dragoon
Вопрос № 5374 |
День добрый! Простите меня, грешного, за дебильный вопрос.
У меня есть модальное диалоговое окно, а на нем edit-control.
Как мне узнать, что был нажат enter, при фокусе на этом edit`e?
Пробовол отловить по WM_CHAR, но не получается так как нужно TranslateMessage, а ее нету, так как окошко создается из ресурса и обрабатывает сообщения по-особому(через свою процедуру).
Вопрос: как быть?
Спасибо всем!
Вопрос отправлен: 31.05.2004, 20:45
Отправитель: a111 (a111_666@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Приветствую Вас, a111!
Создай рядом кнопку по умолчанию.
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 01.06.2004, 10:50
Отправитель: Евгений Иванов
Вопрос № 5375 |
Очень срочно нужно написать прогу на асемблере:
чтение информации с CD-R,CD-RW. Не знаю даже с чего начать! :-(
Вопрос отправлен: 01.06.2004, 10:55
Отправитель: Troiza
[Следующий вопрос >>] [Список вопросов]
Отвечает Стас
Доброе время суток, Troiza!
Начинай так:
.386
.model flat
.data
....
.code
_start:
Какую инфу хоть читать будешь? Служебную или просто директории и файлы?
Ответ отправлен: 01.06.2004, 13:21
Отправитель: Стас
Отвечает flasher
Доброе время суток, Troiza!
А чем отличается чтение от винта и чтение от сидирома?
главное определи диск сидирома, и читай на здоровье :)
Ответ отправлен: 01.06.2004, 13:07
Отправитель: flasher
Отвечает Евгений Иванов
Доброе время суток, Troiza!
изучай ASPI
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 02.06.2004, 01:31
Отправитель: Евгений Иванов
Вопрос № 5377 |
Здарова.
Есть код:
.data?
a db 4 dup(?)
Как динамически выделять память для A?
Вопрос отправлен: 01.06.2004, 15:16
Отправитель: voxel
[Следующий вопрос >>] [Список вопросов]
Отвечает Artemy
Здравствуйте, voxel!
Если для виндов, то используй API функции
GlobalAlloc или LocalAlloc
Ответ отправлен: 01.06.2004, 17:24
Отправитель: Artemy
Отвечает Стас
Приветствую Вас, voxel!
Для такого маленького?
Вот если соберешь все динамические переменные, буффера, рабочие области. Выделишь память как сказал Artemy, в ней и разметишь.
Ответ отправлен: 01.06.2004, 21:25
Отправитель: Стас
Отвечает Евгений Иванов
Доброе время суток, voxel!
Call GlobalAlloc, GPTR, 4
or eax,eax
jz err
xchg esi,eax
;... working with memory
Call GlobalReAlloc, esi, 200, GMEM_MOVEABLE
or eax,eax
jz err
xchg esi,eax
;... working with memory
Удачи.
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 02.06.2004, 12:30
Отправитель: Евгений Иванов
Вопрос № 5379 |
Ниже приведён пример загрузки 4-х байтового числа в регистр еах, при условии, что байты числа расположены в обратном порядке.
Существует ли более оптимальный сопособ делать это?
Приложение:
Вопрос отправлен: 01.06.2004, 20:09
Отправитель: digitron (digitron@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Gibbel
Доброе время суток, digitron!
Есть такая инструкция BSWAP. Присутствует во всех процессорах, начиная с Intel486. Принцип ее действия такой:
TEMP <= DEST
DEST[7..0] <= TEMP(31..24]
DEST[15..8] <= TEMP(23..16]
DEST[23..16] <= TEMP(15..8]
DEST[31..24] <= TEMP(7..0]
Функция не воздействует ни на какие флаги.
Ответ отправлен: 02.06.2004, 10:28
Отправитель: Gibbel
Отвечает ASMодей
Доброе время суток, digitron!
Существует, начиная с 386 процессоров:
mov eax,[edx]
bswap eax
Ответ отправлен: 02.06.2004, 09:26
Отправитель: ASMодей
Отвечает Евгений Иванов
Приветствую Вас, digitron!
bswap
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 02.06.2004, 12:32
Отправитель: Евгений Иванов
Отвечает Ayl
Здравствуйте, digitron!
Ну как вариант:
mov eax, dword ptr [edx]
xchg ah, al
rol eax, 16
xchg ah, al
Ответ отправлен: 02.06.2004, 13:35
Отправитель: Ayl
Вопрос № 5380 |
Здраствуйте! Кто может подсказать в чем дело? У меня стоит Ahead Nero version 6.3.1.10 + все необходимые дополнения, плагины и программы. Но когда я хочу записать диск более чем 700 MB мой сидюшник выбрасывает диск и появляется сообщение недостаточно места на диске вставте другой. Привод у меня LG CD-RW и болванки 870 MB поддерживает!!!!!!! подскажите что делать пожалуйста!!!!!!!!
Вопрос отправлен: 01.06.2004, 20:56
Отправитель: Сергей
[Следующий вопрос >>] [Список вопросов]
Отвечает Snowm@n
Приветствую Вас, Сергей!
Ну раз вы написали именно сюда, то могу посоветовать переписать ручками драйвер CD-RW или хотя бы NERO :)))
А если серьезно, то надо что-то мутить с финализацией в опциях - точно не знаю.
Ответ отправлен: 01.06.2004, 21:14
Отправитель: Snowm@n
Отвечает Евгений Иванов
Добрый день, Сергей!
Написать резидентный драйвер, который будет записывать твои диски.
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 02.06.2004, 12:32
Отправитель: Евгений Иванов
Вопрос № 5381 |
Здарова.
Опять я.
Где найти алгоритм шифрования(UUEncode ) на ассемблере?
Вопрос отправлен: 01.06.2004, 21:04
Отправитель: voxel
[Следующий вопрос >>] [Список вопросов]
Отвечает Snowm@n
Приветствую Вас, voxel!
Rambler/Google/Yandex/...
Ответ отправлен: 01.06.2004, 21:15
Отправитель: Snowm@n
Отвечает Евгений Иванов
Доброе время суток, voxel!
www.gg.ru/
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 02.06.2004, 12:31
Отправитель: Евгений Иванов
Отвечает Стас
Здравствуйте, voxel!
Хотел тебе послать TinyUUE.rar (11996), там программки на ассемблере для кодирования и декодирования UUE.
А послал нечаянно Эдуарду, за что прошу прощения, и обещаю по максимуму протестить его программу.
Voxel отпишись на trashcan2@yandex.ru пришлю тебе этот архив, если желаешь.
Ответ отправлен: 02.06.2004, 15:30
Отправитель: Стас
Вопрос № 5382 |
Привет всем, как создать массив строк в ассемблере?
Вопрос отправлен: 01.06.2004, 21:17
Отправитель: Петя
[Следующий вопрос >>] [Список вопросов]
Отвечает Snowm@n
Добрый день, Петя!
Как обыкновеный массив, выделяя (макс.дл.строки*кол.строк) байт.
Ответ отправлен: 01.06.2004, 23:10
Отправитель: Snowm@n
Отвечает Евгений Иванов
Создаёшь строки и заносишь их адреса в массив, который тоже можно создавать динамически.
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 03.06.2004, 00:05
Отправитель: Евгений Иванов
Отвечает Artemy
Добрый день, Петя!
massiv db 10 dup( 5 dup(20h),00h)
Вот массив из десяти строк, заполненных пробелами, ASCIIZ длиной 5 символов.
Ответ отправлен: 04.06.2004, 13:20
Отправитель: Artemy
Вопрос № 5383 |
Помогите плз со следующ:
1 во всех руководствах, описаниях процессоров 80x86
сказано что программа должна обращаться к памяти с
помощью логического адреса вида:
селектор:смещение
селектор указывает на дескриптор указывающий на сегмент
и селектор находится в сегментном регистре,
смещение в др регистре ну и т п
Так ведь же когда делаешь программу на асме совершенно
спокойно пишешь адрес в виде xxxxxxxxh и всё без проблем
Например
...
mov esi, 400000h
mov eax, [esi]
...
до меня просто не доходит: какая связь между
xxxxxxxxh и селектор:смещение?
(когда набирал этот текст вдруг посетило "озарение"
может быть xxxxxxxxh -это смещение? тогда где селектор?)
2 как сделать чтобы в секцию кода в EXE можно было писать
(+читать) Я знаю что это можно сделать и есть
утилиты которые это делают с EXEшником Я имею в виду там же
во флагах секции такие бывают флаги:
00000004h - используется для кода с 16 битными смещениями
00000020h - секция кода
00000040h - секция инициализированных данных
00000080h - секция неинициализированных данных
00000200h - комментарии или любой другой тип информации
00000400h - оверлейная секция
00000800h - не будет являться частью образа программы
00001000h - общие данные
00500000h - выравнивание по умолчанию, если не указано иное
02000000h - может быть выгружен из памяти
04000000h - не кэшируется
08000000h - не подвергается страничному преобразованию
10000000h - разделяемый
20000000h - выполнимый
40000000h - можно читать
80000000h - можно писать
Если я сделяю секцию секцией иниц данных, то
в ней можно выполнять код?
И ещё насчёт этого вопроса:
в описании проц 80x86 сделано описание дескриптора сегмента
так там есть поля тип дескриптора, тип сегмента и т п
И там же сказано что если сегмент - сегмент кода с
выполняющиейся программой то в него
НЕЛЬЗЯ записывать так как тогда сделать секцию?
3
Если в какой нибудь сегментный регистр занести неправильный
селектор (напр селектор кот указывает на нулевой дескриптор
из GDT) то исключение произойдёт сразу же или когда я через
этот селектор обращусь к памяти?
4 У каждой задачи своё значение регистра CR3 (PDBR)?
Благодаря этому и образуется изолированное адр простр для каждой задачи?
5 регистр CR3 указывает на каталог страниц
А в этом каталоге страниц (точнее в таблице страниц
указатель на которую есть в каталоге страниц) есть записи только для
некоторых страниц? кот имеют соответствие(связаны) с участками
физической памяти?
То есть я имею в виду если я в программе обращусь по адресу (логич адресу)
которому не соответствует физич память то по идее должно произойти исключение
так вот процессор узнаёт о том что данный вирт адрес не имеет отображения в физической памяти
не найдя запись для соотв страницы в таблице страниц?
P.S.: Я так понимаю редактировать таблицу страниц из Ring-3 нельзя?
P.P.S.: А из Ring-3 можно как нибудь взять сод регистра CR3 из TSS др задачи
(хотя TSS другой задачи на наше адр пространство не отображён
и заменить CR3 у себя вряд ли получится...)
и таким образом полчить доступ к её данным к её коду к её адр пространству?
Вопрос отправлен: 01.06.2004, 23:28
Отправитель: croll
[Следующий вопрос >>] [Список вопросов]
Отвечает ASMодей
Приветствую Вас, croll!
1. Это и есть смещение, а селектор явно не указывается, он находится в
сегментном регистре. Если регистр не указан, то используется тот,
который определен директивой ASSUME, а если нужно указать явно, то пиши
так: mov eax,es:[esi] или mov eax,fs:[esi].
3. В сегментные регистры можно заносить любые числа. Исключение возникнет
при их использовании в качестве селектора, то есть при обращении к памяти
через этот регистр.
4. Точно так. Это значение хранится в TSS, который у каждой задачи свой.
5. У каждой записи в таблице страниц несколько младших бит отведено для
хранения служебной информации, и насколько я помню бит номер 0 указывает
на присутствие или отсутствие страницы в физической памяти.
P.P.S Есть более легкий способ получить доступ к адресному пространству другой
задачи, чем через TSS: поищи описание функций ReadProcessMemory и
WriteProcessMemory.
Ответ отправлен: 02.06.2004, 09:27
Отправитель: ASMодей
Отвечает _vt
Здравствуйте, croll!
1) Селектор используется дефолтный.
2) В явном виде можно задавать свойства секций в ассемблере FASM - там они описываются примерно так:
section .code readable writeable executable
(могу ошибаться в формате описания - смотри в документации к FASM)
* Origin : Life begins at 1000Mhz!
Ответ отправлен: 04.06.2004, 19:53
Отправитель: _vt
Отвечает Евгений Иванов
- 1.
Переключатель (selector) сегмента находится в сегментных регистрах ;)
Из описательной таблицы по соотв. переключателю сегмента берётся начальный адрес сегмента и к нему прибавляется смещение.
Это вычисление линейного адреса из логического.
Потом, если не используется страничность, этот адрес выбрасывается на шину процессора, то есть это физический адрес.
Если же используется страничность, то проводится дополнительные действия, как-то преобразование логического адреса по формуле из таблицы каталога, потом из таблицы страниц и после уже используется смещение. - 3.
Да, когда обратишься к этому сегменту. - 4.
Изол. алр. пространство образуется за счёт страничности и сегментной модели памяти.
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 03.06.2004, 00:06
Отправитель: Евгений Иванов
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (21) C / C++ (14) Builder / Delphi (15) Pascal (19) Basic / VBA (2) Java / JavaScript (4) PHP (12) Криптография (7) WinAPI (9) Радиоэлектроника (9) |
Пользователю Windows 95/98/Me (34) Windows NT/2000/XP (50) "Железо" (30) Поиск информации (16) |
Администратору Windows NT/2000/XP (23) Linux / Unix (9) |
Юристу Гражданское право (12) Семейное право (9) Трудовое право (12) КоАП (8) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||