Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 534
от 02.05.2003, 13:40
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3108 Отправлено ответов: 9103 Активность: 292.8 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Maverick Статус: Профессиональный Общий рейтинг: 134.69 URL: Задачи по ассемблеру Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
keleb-glin Статус: Опытный Общий рейтинг: 109.89 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 150.34 URL: Программирование [Подробней >>] |
Tigran K. Kalaidjian Статус: Доверительный Общий рейтинг: 115.27 [Подробней >>] |
Portnov Статус: Профессиональный Общий рейтинг: 111.4 URL: Мой сайтик... [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 140.23 [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 108.36 URL: Страничка обо мне и моих друзьях Телефон: +7 902 168 02 65 [Подробней >>] |
Igoryk Статус: Профессиональный Общий рейтинг: 118.5 URL: IgorykSoft [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 123.16 URL: моя рассылка по Protected Mode [Подробней >>] |
Andrew Vext Статус: Опытный Общий рейтинг: 106.07 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 118.92 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3067. Здравствуйте, уважаемые эксперты. Я пишу дипломную работу на асме в 11 классе. Создаю файловую оболо... (ответов: 4)
Вопрос № 3068. Здравствуйте Эксперты! Дайте ссылки на доки(описания) процессоров Intel и AMD. Интересует только опи... (ответов: 3)
Вопрос № 3069. Доброго времени суток! Взял на днях Microsoft msdn library2003 на 3-х компактах! А на коробочке напи... (ответов: 4)
Вопрос № 3070. Здравствуйте уважаемые эксперты. Прошу Вас помочь в вот каком деле: Работаю в русской версии WinXP P... (ответов: 2)
Вопрос № 3071. Здравствуйте, эксперты. Извините, что вопрос задаю не по ассемблеру... Но я в полной растеренности. ... (ответов: 2)
Вопрос № 3072. Windows маст дью, DOS форевер... (ответов: 4)
Вопрос № 3073. Привет, Bob Johnson! Не хватает там, например, в приложении 2, 4-ый раздел, где остальные команды? С... (ответов: 1)
Вопрос № 3075. Уважаемые эксперты! Помогите начинающему программисту. Столкнулся с такой штукой. В Hiew при просмот... (ответов: 6)
Вопросов: 8, ответов: 26
Вопрос № 3067 |
Здравствуйте, уважаемые эксперты. Я пишу дипломную работу на асме в 11 классе. Создаю файловую оболочку для доса. Вот возник у меня вопрос с выводом размера файла на экран. Размер находится в одной из переменных. Подскажите, пожалуйста, каким способом этот размер лучше вывести на экран, разумеется в десятеричной системе счисления. Спасибо.
Вопрос отправлен: 27.04.2003, 12:25
Отправитель: a1 (a111_666@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Приветствую Вас, a1!
Че то я не понял, пишешь файловую оболочку и такие вопросы.
В чем проблема?
Переводишь в десятичную систему.
Приводишь к ASCII.
Выводишь на экран.
Где ступор?
Ответ отправлен: 28.04.2003, 05:05
Отправитель: Maverick
Отвечает keleb-glin
Здравствуйте, a1!
Сначала надо перевести 16-ричное число в десятичное. Это, я надеюсь, ты умеешь. (Ну, типа, в цикле делишь число на 10-основание системы и потом берёшь остатки в обратном порядке). Потом надо по очереди выделять цифры и, прибавляя к каждой ascii-код нуля, кажись, 48 (при компиляции прокатит add al, '0' )получать ascii-коды соответствующих символов. и далее - на экран.
Ответ отправлен: 29.04.2003, 19:13
Отправитель: keleb-glin
Отвечает Bob Johnson
Приветствую Вас, a1!
Тебе надо будет преобразовать число в строку. Значительно удобней будет, если твоя оболочка рассчитана на 386 или старше процессор, потому как размер файла - это 4 байта, т.е. двойное слово, а чтобы перевести число в дес. систему надо его последовательно делить на 10 (что будет проще, если использовать 32-разрядные регистры). Тогда получишь цифры справа налево.
mov eax, число
mov ecx, 10
mov ebx, offset buffer + 15
m1:
xor edx, edx
div ecx
add dl, '0'
mov [ebx], dl
dec ebx
test eax, eax
jnz m1
ret
Ответ отправлен: 27.04.2003, 17:07
Отправитель: Bob Johnson
Отвечает Tigran K. Kalaidjian
Доброе время суток, a1!
Я бы это делал так: делим число на степень десятки,вместо числа ставим остаток,а к частному прибавляем 30h. Делаем это до тех пор, пока число не уменьшится до нуля. пример для вывода трехзначного числа-в приложении(здесь перед выводом формируется строка из цифр числа)
Приложение:
Ответ отправлен: 29.04.2003, 21:17
Отправитель: Tigran K. Kalaidjian
Вопрос № 3068 |
Здравствуйте Эксперты!
Дайте ссылки на доки(описания) процессоров Intel и AMD. Интересует только описание опкодов, какие инструкции поддерживают... Если у кого есть готовые манулы - прошу на e-mail.
З.Ы. Если будете давать ссылки - давайте полные! amd.com и intel.com я знаю :)
З.Ы.Ы Не сочтите за наглость, просто очень-очень-очень влом искать самому, а Вы, возможно, недавно сами скачивали, поэтому знаете :)
Вопрос отправлен: 27.04.2003, 17:06
Отправитель: Илья (b.i@date.by)
[Следующий вопрос >>] [Список вопросов]
Отвечает Portnov
Здравствуйте, Илья!
http://www.intel.com/design/Pentium4/manuals/24547207.pdf
http://www.intel.com/design/Pentium4/manuals/24547107.pdf
http://www.intel.com/design/Pentium4/manuals/24547007.pdf
Ответ отправлен: 28.04.2003, 12:51
Отправитель: Portnov
Отвечает masquer
Приветствую Вас, Илья!
Я хоть и скачивал что-то недавно, но такой влом искать что и когда... Чего-нибудь еще написал бы, но такой влом...
Ответ отправлен: 29.04.2003, 12:43
Отправитель: masquer
Отвечает Tigran K. Kalaidjian
Приветствую Вас, Илья!
Описание ушло мылом...
Ответ отправлен: 29.04.2003, 21:21
Отправитель: Tigran K. Kalaidjian
Вопрос № 3069 |
Доброго времени суток!
Взял на днях Microsoft msdn library2003 на 3-х компактах!
А на коробочке написано " Note: This version is for use with Visual Studio.NET ONLY" млин эта последняя ONLY
да и вообще вся надпись не больно нравится.
Вобщем вопрос на компакте описаны WinApi которыми можно пользоваться в Win98 win2k WinXP или че-то типа
Win.net(А че ето такое?)?
ЗЫ: Я так понимаю Эту хрень можно поставить как справочную систем тока с Visual Studio.Net ! а с visual C++ уже хрен!
ЗЗы Взял у знакомого WIN2003Server advanced....
Во блин :-)
Вопрос отправлен: 27.04.2003, 17:43
Отправитель: Andrey
[Следующий вопрос >>] [Список вопросов]
Отвечает Gibbel
Здравствуйте, Andrey!
Это значит, что справка MSDN будет интегрироваться только в справочную систему VS.NET (но ничто не мешает смотреть тебе ее отдельно, не из IDE) и исходники/файлы заголовков/библиотеки совместимы только с VS.NET
Ответ отправлен: 28.04.2003, 10:28
Отправитель: Gibbel
Отвечает Bob Johnson
Приветствую Вас, Andrey!
Нет, там обязательно должны остаться описания функций для win 95 - XP. Может только получиться, что с Visual Studio 6 не будет этот MSDN связан напрямую, т.е. F1 нажимаешь - а в ответ тишина...
> Взял у знакомого WIN2003Server advanced....
Ну а это тебе зачем?
Ответ отправлен: 27.04.2003, 20:07
Отправитель: Bob Johnson
Отвечает keleb-glin
Здравствуйте, Andrey!
Да, msdn интегрируется только с определённой версией VC, с другими - "уже хрен!" (ставить её лучше после VC). В msdn находится туча доков по всему: и WinAPI, и работа с VC, VB, office. Не даром на 3 дисках.
Ответ отправлен: 28.04.2003, 21:54
Отправитель: keleb-glin
Отвечает masquer
Здравствуйте, Andrey!
Я уже не помню, чего я там не нашел, но держу и старую и эту новую на винте, пользуюсь, правда, чаще старой
Ответ отправлен: 29.04.2003, 12:52
Отправитель: masquer
Вопрос № 3070 |
Здравствуйте уважаемые эксперты.
Прошу Вас помочь в вот каком деле:
Работаю в русской версии WinXP Professional.
Использую NuMega DriverStudio Release 2.5.
Проблема 1:
При загрузке SoftIce (в ручном режиме) начинает глючить клавиатура (залипают некоторые клавиши - в часнтости Shift.
Пробовал убирать в настройках SoftIce патч клавиатуры не помогает.
Проблема 2:
Ставлю бряк на функцию (например BPX CreateFileA), и все (абсолютно все) программы перестают запускаться. Убираю бряк - всё работает.
Заранее спасибо за помощь.
P.S.: Раньше стоял только NuMega SoftIce 4.05 для WinNt пропатченный для работы в WinXp и проблемы были те же.
Вопрос отправлен: 27.04.2003, 18:38
Отправитель: Andy Caramba (andycaramba@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Gibbel
Доброе время суток, Andy Caramba!
Ну, вообще-то в WinXP стабильно работают только версии DriverStudio 2.6 и 2.7
Ответ отправлен: 28.04.2003, 10:30
Отправитель: Gibbel
Отвечает Bob Johnson
Добрый день, Andy Caramba!
Я слышал, что для XP подходят версии 2.6 и 2.7, может быть в этом и причина - обратись на ftp.exetools.com за ними.
Ответ отправлен: 27.04.2003, 20:04
Отправитель: Bob Johnson
Вопрос № 3071 |
Здравствуйте, эксперты.
Извините, что вопрос задаю не по ассемблеру... Но я в полной растеренности. Дело в том, что как-то я ползал по net'у (именно ползал, т.к. связь довольно паршивая) в поисках чего-нибудь (чего и сам не помню... кажись обои). Так вот, тыкнул я по какому-то баннеру (непечатные слова) и ввалились ко мне какая-то страничка в сопровождении моего бдительного Касперского: ВИРУС У НАС. Ну я в название вируса не вдумался (хотя и прочитал), и посоветовал Касперскому его казнить... Вечером того же дня сканировал систему и обнаружил тот же казненный мною и Касперским вирус (trojan.js): целый и невредимый. Я его повторно - того. На следущий день: та же петрушка. После удаления сразу еще раз все просканировал - нету... Еще день спустя - ... и так уже неделю!!! Меня напугали, что вирусяка эта - одна из самых злостных; я с горя ушел в запой на 2 дня.
Кто-нибудь зниет, что это за глюк?!!!:(((
Может что с Касперским (базы я менял 2 недели назад)?
Выручайте, товарищи. [жалостливая слеза, кастрированное выражение лица и проч.]
Удачи.
Вопрос отправлен: 27.04.2003, 23:27
Отправитель: Бултых
[Следующий вопрос >>] [Список вопросов]
Отвечает Igoryk
Добрый день, Бултых!
Вариант первый - обратить в Касперскому напрямую.
Вариант второй - поискать упоминание строки trojan.js в реестре и в файловой системе. Ну и естественно удалить.
Ответ отправлен: 01.05.2003, 19:05
Отправитель: Igoryk
Отвечает Maverick
Доброе время суток, Бултых!
Не выходи из запоя и все образуется :)
Давай название вируса, нужно поглядеть его описание.
Ответ отправлен: 28.04.2003, 05:05
Отправитель: Maverick
Вопрос № 3072 |
Windows маст дью, DOS форевер
Вопрос отправлен: 28.04.2003, 06:16
Отправитель: Билл Гейтс
[Следующий вопрос >>] [Список вопросов]
Отвечает keleb-glin
Приветствую Вас, Билл Гейтс!
Не совсем. DOS long life. No OS forever
Ответ отправлен: 28.04.2003, 21:27
Отправитель: keleb-glin
Отвечает Maverick
Приветствую Вас, Билл Гейтс!
Продолжим аналогию...VX рулез - AV отстой
Кто дальше?
Ответ отправлен: 28.04.2003, 10:27
Отправитель: Maverick
Отвечает Gibbel
Приветствую Вас, Билл Гейтс!
Amiga is the best, IBM is sucks!!! ;-)
Ответ отправлен: 28.04.2003, 10:33
Отправитель: Gibbel
Отвечает Bob Johnson
Здравствуйте, Билл Гейтс!
dew - это значит "пропитывать", "пронизывать". т.е. windows должен "пронизать" нас всех (своей любовью???)?
В общем еще одно письмо на тему "приниси мне еще две большие тетради в клетку на 70 листов, потому что те две на 40, которые ты принес вчера уже закончились".
Ответ отправлен: 29.04.2003, 01:17
Отправитель: Bob Johnson
Вопрос № 3073 |
Привет, Bob Johnson!
Не хватает там, например, в приложении 2, 4-ый раздел, где остальные команды?
Слышал, в этой книге про генератор случ. чисел должно быть, искал - нифига не нашел. Да в беглом просмотре сразу видно, что неполная она.
Вопрос отправлен: 28.04.2003, 09:20
Отправитель: [-=TT=-] (KunaevNA@PosolskyDom.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, [-=TT=-]!
Ну так там же наверное просто приведен большой список команд процессора? А это действительно ни к чему, потому как можно и в другом справочнике найти. А вот если нет чего-то еще, то это хреново. Но Andrew Vext говорил, что эта версия - полная.
На счет генератора случайных чисел - ты хреново искал. Я, как ни странно, нашел прямо сразу, хотя книги этой не видел никогда в глаза: глава 5 "Более сложн...", пункт "5.7. Популярные алгоритмы", "5.7.1. Генераторы случайных чисел" - вот и все.
> Да в беглом просмотре сразу видно, что неполная она.
Ничего не могу сказать - не видел оригинала. Но ты наверное прав, т.к. уж главы 11.2 и 11.3 ну маловаты... отстойно...
Ответ отправлен: 29.04.2003, 01:18
Отправитель: Bob Johnson
Вопрос № 3075 |
Уважаемые эксперты!
Помогите начинающему программисту. Столкнулся с такой штукой. В Hiew при просмотре дизассемблированного текста можно переключаться из 16 битного режима в 32 битный и обратно. Но когда процессор реально встречает в памяти какую-либо команду, как он узнает, чем оперировать CX или ECX? Т. е. чем обусловлена его работа в данном режиме. Как происходит переключение между этими двумя режимами. Имеет ли это отношение к защищенному режиму, виду заголовка exe-файла или чему-нибудь еще? С уважением, Дмитрий.
Вопрос отправлен: 28.04.2003, 13:39
Отправитель: Дмитрий (demetrius2003@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Igoryk
Доброе время суток, Дмитрий!
К команде добавляется код 66h. Для 32-значных команд это значит, что выполняется 16-битный код, и наоборот.
Ответ отправлен: 01.05.2003, 19:05
Отправитель: Igoryk
Отвечает Broken Sword
Здравствуйте, Дмитрий!
К заголовку exe-файла - не имеет, к защ. режиму - самое непосредственное. Дело в том, что для того чтобы понять как процессор определяет 32-х битный операнд/адрес использовать или 16-битный тебе по крайней мере нужно знать что такое дескриптор. Так вот, в дескрипторе любого сегмента в защ. режиме есть такой бит D. Если он установлен - то процессор использует 32-х битные адреса и операнды (в сегментах кода). Соответственно, префикс 66h (67h) обращает смысл и используются 16 битные адреса/операнды.
Аналогично, если бит D сброшен, то используются 16 битные адреса/операнды, а префикс 66/67 обращает смысл и приводит к использ. 32-битных адресов
В реальном режиме никаких дескрипторов и соответственно бита D нету, там проц ВСЕГДА использует 16 разрядные адреса/операнды, однако разумеется префикс 66/67 действует и здесь.
Ответ отправлен: 28.04.2003, 16:55
Отправитель: Broken Sword
Отвечает Andrew Vext
Добрый день, Дмитрий!
если команда может работать как в 32-разрядном, так и в 16-разрядном режиме, то при необходимости ассемблер (tasm или masm, или тот, которым вы пользуетесь) при необходимости ставит перед командой байт префикса изменения разрядности.
Пример 1.
Вы пишете программу под DOS (обычный COM-файл), все ваши команды будут 16-разрядными и использовать 16-разрядные регистры (CX,DX,AX и т.д). Если перед командой процессор обнаружит префикс смены разрядности, то следующая команда будет считаться 32-разрядной и работать с 32-разрядными регистрами (ECX, EDX, и т.д.).
Пример 2.
Если вы пишете 32-разрядный код (под Windows или под DPMI), то все команды будут 32-разрядными, а команды перед которыми стоит префикс будут рассматриваться процессором как 16-разрядныме.
Префикс занимает 1 байт и увеличивает время выполнения команды на 1 такт.
Ответ отправлен: 28.04.2003, 16:53
Отправитель: Andrew Vext
Отвечает keleb-glin
Здравствуйте, Дмитрий!
В реальном режиме код всегда 16-битный, то есть для 32 бит нужни префиксы переопределения разрядности (66h и 67h ).
В защищённом режиме существуют два типа сегментов - 16-ти и 32-х разрядные (тип ты естественно задаёшь сам).
Например в 16-ти разрядном сегменте b8... = mov ax, ...; 66b8... = mov eax, ..., а в 32-разрядном - наоборот.
Ответ отправлен: 28.04.2003, 21:10
Отправитель: keleb-glin
Отвечает Bob Johnson
Доброе время суток, Дмитрий!
Это имеет отношение к защищенному режиму. Когда процессор считывает из памяти команду, ее адрес находися в cs:(E)IP. Если процессор работает в реальном (или виртуальном) режиме, то он автоматически предполагает, что команда 16-разрядная (из вопросов совместимости). А вот если он работает в защищенном режиме, то в дескрипторе кода, номер которого загружен в cs есть два бита - один указывает на разрядность данных программы (16 или 32 бита), другой - на разрядность адреса программы (16 или 32 бита). Вот их процессор и использует. Если же тебе нужно вдруг изменить разрядность, то используй префиксы - 66h для данных и 67h для адреса. Они меняют текщую разрядность на противоположную.
Ответ отправлен: 29.04.2003, 01:18
Отправитель: Bob Johnson
Отвечает Ayl
Доброе время суток, Дмитрий!
К защищенному режиму это не имеет отношения. Точнее, только опосредованное. В дескрипторе кодового сегмента существует бит D, который определяет разрядность команд по умолчанию. Если он равен 0, то команды 16-тиразрядные, если 1 - 32-хразрядные. Для реального режима и режима V86 этот бит равен 0.
Кроме этого, с командой могут быть использованы префиксы размера операнда (66h) и размера адреса (67h). Эти префиксы изменяют режим по умолчанию на противоположный (16 <=> 32). 8-миразрядные команды не изменяются.
Ответ отправлен: 29.04.2003, 12:54
Отправитель: Ayl
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (35) C / C++ (28) Perl (6) Delphi (13) Pascal (24) Basic / VBA (5) Java / JavaScript (8) PHP (4) MySQL / MSSQL (4) |
Пользователю Windows 95/98/Me (29) Windows NT/2000/XP (24) "Железо" (25) Поиск информации (12) |
Администратору Windows NT/2000/XP (13) Linux / Unix (10) |
Юристу Гражданское право (7) Семейное право (4) Трудовое право (5) КоАП (4) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||