Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 603
от 29.07.2003, 22:10
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3812 Отправлено ответов: 11188 Активность: 293.4 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152.23 URL: Программирование [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 111.62 [Подробней >>] |
Евгений Иванов Статус: Опытный Общий рейтинг: 139.15 URL: Super Assembler Software [Подробней >>] |
Илья Статус: Опытный Общий рейтинг: 103.54 [Подробней >>] |
Zedr0n Статус: Доверительный Общий рейтинг: 108.15 [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 120.91 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 118.24 [Подробней >>] |
Tigran K. Kalaidjian Статус: Профессиональный Общий рейтинг: 123.78 URL: Методы оптимизации работы ПК [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 107.7 URL: Savage Metal Club - жизнь в стиле рок-н-ролл Телефон: +7 901 710 3146 [Подробней >>] |
getoff Статус: Начальный Общий рейтинг: 109.3 [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 112.04 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3780. Здравствуйте, уважаемые эксперты ! Знаю, что в программы для Delphi можно вставлять ассемблерные вст... (ответов: 4)
Вопрос № 3781. Привет! Пишу оболочку под ДОС типа NC, возникло следующее затруднение: Необходимо выполнять досовски... (ответов: 4)
Вопрос № 3782. Здравствуйте, люди добрые! После рассылки от 25.07.03 появилось несколько вопросов: 1) если не затру... (ответов: 4)
Вопрос № 3783. Книгу Олега я прочитал! За день 3 раза! Но многое не понял! Я хотел бы узнать ваш адрес, чтобы вы ст... (ответов: 4)
Вопрос № 3784. Sorry, что не послал все вопросы одним письмом. Есть ли в досе функция для получения символа с экран... (ответов: 4)
Вопрос № 3786. Да, я приглашал на Кипр; будете на Кипре - звоните 99555346 - мой моб. Пива попьём.... (ответов: 5)
Вопросов: 6, ответов: 25
Вопрос № 3780 |
Здравствуйте, уважаемые эксперты !
Знаю, что в программы для Delphi можно вставлять ассемблерные вставки, например, чтобы обращаться к портам. Но ведь откомпилированные программы работают на 3-м кольце защиты. Как получается выполнять различные специфические операции(опять же, (писатьчитать) в порт) на этом уровне привелегий?
заранее спасибо
Вопрос отправлен: 24.07.2003, 22:34
Отправитель: Aram Markaryan
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Aram Markaryan!
Писать и читать можно не из всех портов, а только из некоторых, да и то только под Windows 9x (под НТ - еще больше ограничений). В частности - ты можешь легко программировать таймер для звука, но не можешь перепрограммировать таймер, который отвечает за частоту прерываний.
* EMan1.5: ---===*** The hell we've created ourselves ***===---
Ответ отправлен: 26.07.2003, 14:22
Отправитель: Bob Johnson
Отвечает Dark_Lord
Добрый день, Aram Markaryan!
В принципе никак, но если как-нибудь (это уже отдельная тема) переидти в 0-вое кольцо, то всё работает. Но ассемблер необязательно использовать именно для программирования портов, его гораздо удобнее использовать для получения оптимальной отдачи от программы!
Ответ отправлен: 25.07.2003, 19:02
Отправитель: Dark_Lord
Отвечает Евгений Иванов
Добрый день, Aram Markaryan!
В Win9x получается работать с портами (в win311 тоже).
В winNT (2000, XP) - не знаю, не пользовался.
Читай подробнее мой ответ на вопрос 3741.
Ответ отправлен: 25.07.2003, 00:33
Отправитель: Евгений Иванов
Отвечает Илья
Приветствую Вас, Aram Markaryan!
Смотря под что писать:
9x и ранее имеют очень хорошую дыру в этом плане (по идее так не должно быть)
NT и выше не дают это делать напрямую, но можно использовать различные драйвера и библиотеки "обёртки", которые либо переключаются в ring0, либо в нём работают.
Ответ отправлен: 25.07.2003, 00:42
Отправитель: Илья
Вопрос № 3781 |
Привет!
Пишу оболочку под ДОС типа NC, возникло следующее затруднение:
Необходимо выполнять досовские команды, типа dir, cd, rd и т.д., не помню где, но где-то читал, что для их выполнения можно как-то хитро вызывать command.com с каким-то ключом, чтобы он потом вернул управление обратно в программу, если кто знает, то пните в нужную сторону, и еще, как при таком вызове отследить, что была введена неправильная комманда, т.е. что и как вернет command.com в этом случае?
Спасибо за внимание! :)
Вопрос отправлен: 25.07.2003, 00:04
Отправитель: dickwint
[Следующий вопрос >>] [Список вопросов]
Отвечает Dark_Lord
Добрый день, dickwint!
"command.com параметры /c" вернёт управление в программу.
Ответ отправлен: 25.07.2003, 19:04
Отправитель: Dark_Lord
Отвечает Zedr0n
Доброе время суток, dickwint!
Если я правильно припоминаю, command.com /c команда вполне работает. Что возврашает? Вот это не в курсе, но думаю, что в документации по функции 4B 21 прерывания должно быть написано. Так что удачи!
Ответ отправлен: 26.07.2003, 15:27
Отправитель: Zedr0n
Отвечает Евгений Иванов
Доброе время суток, dickwint!
/C команда
Но есть покруче:
int 2Eh
Передаёшь в ES:SI адрес строчки для выполнения, заканчивается 13.
Note: The top-level command.com executes the command.
All registers including SS and SP are destroyed as in INT 21/AH=4Bh.
Since COMMAND.COM processes the string as if typed from the keyboard,
the transient portion needs to be present, and the calling program
must ensure that sufficient memory to load the transient portion can
be allocated by DOS if necessary.
Ответ отправлен: 25.07.2003, 00:33
Отправитель: Евгений Иванов
Отвечает _vt
Здравствуйте, dickwint!
command.com надо вызвать с ключом /c, а то что он вернет на экран - по стандартам файловых оболочек необходимо сохранять, и по желанию пользователя отображать... :-(
---===*** E-Man 1.4 - waiting for 1.5...***===---
Ответ отправлен: 25.07.2003, 11:32
Отправитель: _vt
Вопрос № 3782 |
Здравствуйте, люди добрые!
После рассылки от 25.07.03 появилось несколько вопросов:
1) если не затруднит, вкратце, можете рассказать - что такое "кольца защиты" (нулевое, третье) - нам в универе об этом даже не заикались, а интересно :)
2)что такое "доки Iczeliona"? кто это с таким именем и где эти докт валяются?
3)по вопросу 3736: если архив у кого появится - киньте и мне тоже - никогда такого не видел, хоть посмотрю
4)(возможно, оффтопик): как правильно произносятся по-русски (с ударениями) следующие буржуйские слова: Thoroubre, Tejas и Prescott?
ЗЫ: спасибо всем, кто отвечает на мои вопросы - помогает :)
Вопрос отправлен: 25.07.2003, 07:46
Отправитель: Ренат (renatka_f@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Ренат!
1. Процессор, начиная с 80386 позволяет аппаратно разделить выполняемое программное обеспечение на системное (ядро ОС, драйвера и т.д.) и прикладное (все программы, которые ты используешь). При этом у прикладных программ значительно меньше прав - они не могут выполнять некоторые команды, обращаться к некоторым участкам памяти, загружать некоторые данные в регистры и т.д. Это все реализовано за счет нескольких колец защиты: 0 (самое высокое, все команды доступны и т.д.), 1, 2, 3 (самое низкое, минимальный уровень привелегий). Все твои программы работают на 3-м кольце. Переход с 3-го кольца на 0-е в общем случае должен быть невозможен (для надежной ОС), но Windows 98 очень легко это позволяет.
3. Вот тут автор того вопроса позже дал ссылку: http://medevalsoft.by.ru/demo.zip
* EMan1.5: ---===*** The hell we've created ourselves ***===---
Ответ отправлен: 26.07.2003, 14:22
Отправитель: Bob Johnson
Отвечает Ayl
Доброе время суток, Ренат!
В защищенном режиме процессора есть 4 уровня привилегий - от 0 до 3-х. Уровень привелегий прописывается в 2-х битах регистра флагов и в дескрипторах сегментов.
Чем меньше уровень, тем "круче" доступ.
Обычно используются уровни 0 и 3. 0 - это уровень ядра ОС, драйверов и т.п. Уровень 3 - это уровень пользовательских приложений.
Обычно при объяснениях защиты рисуют 4 концентрические окружности - отсюда и понятия о кольцах.
Ответ отправлен: 25.07.2003, 10:57
Отправитель: Ayl
Отвечает Евгений Иванов
Добрый день, Ренат!
1} Уровни защиты - есть четыре.
0 - полный контроль над нижними уровнями;
1, 2 - типа тоже самое;
3 - а это, братан, самый низжий, тут тусуются прикладные проги.
2} Iczelion@galaxycorp.com
3} Скачивай весь сайт! Там, по моему, около 300 (не менее) программ.
4} Так это по моему названия ядер процессоров?
А это лучше спросить у американцев...
Ответ отправлен: 25.07.2003, 11:42
Отправитель: Евгений Иванов
Отвечает Tigran K. Kalaidjian
Добрый день, Ренат!
По пунктам:
1. Кольца защиты - уровни привелегий в Win. Например Ring3 - пользовательский уровень. А для пользователя, как для любого смертного есть куча ограничений. Обычно эти ограничения не мешают начинающим программистам или несистемным программистам.
Ring0 - уровень ядра. Тут уже минимум ограничений и максимум привелегий. Это уровень Бога. Здесь можно работать с портами и делать многое другое, что недоступно на Ring3. На Ring0 обычно вешаются вирусы и драйвера.
2. Это примеры для начинающих программировать под Win, если я не ошибаюсь. Можно найти в комплекте с MASM32.
3. Если до 29-го Вам никто не пришлет - пишите на kalaidjian@pochtamt.ru
Ответ отправлен: 25.07.2003, 14:35
Отправитель: Tigran K. Kalaidjian
Вопрос № 3783 |
Книгу Олега я прочитал! За день 3 раза! Но многое не понял! Я хотел бы узнать ваш адрес, чтобы вы стали моим гуру в асме!
Вопрос отправлен: 25.07.2003, 12:28
Отправитель: Кирилл
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Кирилл!
Наш адрес - не дом и не улица, наш адрес - http://www.rusfaq.ru (впрочем, ты его уже и сам нашел :)
* EMan1.5: ---===*** The hell we've created ourselves ***===---
Ответ отправлен: 26.07.2003, 14:22
Отправитель: Bob Johnson
Отвечает Gibbel
Приветствую Вас, Кирилл!
Задавай возникающие вопросы в рассылку - тебе помогут. Но перед тем, как задать вопрос, просмотри архив рассылки - скорее всего кто-то уже задавал подобный вопрос до тебя...
И еще, помни, что теория без практики - это ничто.
Ответ отправлен: 25.07.2003, 12:41
Отправитель: Gibbel
Отвечает Евгений Иванов
Приветствую Вас, Кирилл!
Если ты пишешь мне, то сходи на мой сайт, там есть информация, какой у меня
почтовый ящик и ICQ есть!
Ответ отправлен: 25.07.2003, 12:44
Отправитель: Евгений Иванов
Отвечает Tigran K. Kalaidjian
Приветствую Вас, Кирилл!
Как Вы так умудрились прочитать? Там же больше 30 глав !
Ну и не важно... Также не понятно к кому Вы в данный момент обращаетесь, ведь письмо отослано всем экспертам...
Ну и это не важно... Мой E-MAIL kalaidjian@pochtamt.ru , адреса других экспертов в начале каждого выпуска рассылки.
Если у Вас возникает вопрос, то лучше пишите его на RusFAQ.ru, а не лично на мыло, ибо так Вы получите наиболее полный ответ.
Ответ отправлен: 25.07.2003, 14:16
Отправитель: Tigran K. Kalaidjian
Вопрос № 3784 |
Sorry, что не послал все вопросы одним письмом.
Есть ли в досе функция для получения символа с экрана с нужного мне знакоместа, или это только чтением из видеопамяти?
Вопрос отправлен: 25.07.2003, 14:41
Отправитель: Dick Wint
[Следующий вопрос >>] [Список вопросов]
Отвечает Zedr0n
Приветствую Вас, Dick Wint!
Все просто. Сперва передвигаем курсор функцией 02 10 прерывания Set Cursor Position, а потом используем функцию 08 Того же прерывания - Read character and attribute at cursor position. Вот и все.
Но один совет я все же дам. Скачай RBIL(Ralph Brown's Interrupt List) и больше такие вопросы возникать не будут. Для виндов - смотри MSDN. RTFM, в общем.
Удачи!
Ответ отправлен: 26.07.2003, 15:39
Отправитель: Zedr0n
Отвечает Tigran K. Kalaidjian
Доброе время суток, Dick Wint!
Нету, ИМХО. А зачем она, если можно напрямую ?
mov ax, 0b800h
mov es, ax
mov si, 70
mov ax, word ptr es:[si]
Тогда в al будет лежать ASCII-код символа из 1-й строки, 70-го столбца.
Ответ отправлен: 25.07.2003, 22:02
Отправитель: Tigran K. Kalaidjian
Отвечает Ayl
Добрый день, Dick Wint!
Функция 08 прерывания 10h возвращает в AL символ в позиции курсора, а в BH - его атрибут. Только нужно в BH еще передать номер видеостраницы.
Для графического режима с помощью функции 0dh (BH = видеостраница, CX = координата X, DX = координата Y) можно получить цвет точки. Цвет возвращается в регистре AL.
Ответ отправлен: 25.07.2003, 17:03
Отправитель: Ayl
Отвечает Евгений Иванов
Добрый день, Dick Wint!
Эта функция в BIOS-е есть.
8 функция 16 прерывания.
Берёт символ и свойство оного с текущего расположения.
in:
AH=8
BH=страница
out:
AL=символ
AH=атрибут
Расположение устанавливай 2-ой функцией.
Ответ отправлен: 26.07.2003, 00:40
Отправитель: Евгений Иванов
Вопрос № 3786 |
Да, я приглашал на Кипр;
будете на Кипре - звоните 99555346 - мой моб.
Пива попьём.
Вопрос отправлен: 25.07.2003, 22:01
Отправитель: Эдвард Самохвалов (zeleniy_kot@yahoo.com)
[Следующий вопрос >>] [Список вопросов]
Отвечает Tigran K. Kalaidjian
Приветствую Вас, Эдвард Самохвалов!
Ок! Отправлю в рассылку =)На днях позвоню. Хых.
Ответ отправлен: 25.07.2003, 22:27
Отправитель: Tigran K. Kalaidjian
Отвечает Bob Johnson
Приветствую Вас, Эдвард Самохвалов!
Ок, только осталось на Кипр попасть :)
Извини может быть за нетактичный вопрос, но как тебя все-таки правильно зовут - "Эдвард Самохвалов" или "Эдвард Самосвалов"? :)
* EMan1.5: ---===*** The hell we've created ourselves ***===---
Ответ отправлен: 26.07.2003, 14:51
Отправитель: Bob Johnson
Отвечает Gibbel
Здравствуйте, Эдвард Самохвалов!
Ок, как соберусь на Кипр, сразу же позвоню ;-)
Ответ отправлен: 28.07.2003, 09:31
Отправитель: Gibbel
Отвечает getoff
Здравствуйте, Эдвард Самохвалов!
ОТЛИЧНАЯ ИДЕЯ
Ответ отправлен: 26.07.2003, 05:05
Отправитель: getoff
Отвечает baldr
Добрый день, Эдвард Самохвалов!
Уж лучше вы к нам... (c) :)))
Ответ отправлен: 28.07.2003, 10:03
Отправитель: baldr
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (34) C / C++ (26) Perl (4) Builder / Delphi (19) Pascal (23) Basic / VBA (12) Java / JavaScript (12) PHP (9) Криптография (8) WinAPI (13) |
Пользователю Windows 95/98/Me (47) Windows NT/2000/XP (46) "Железо" (39) Поиск информации (25) |
Администратору Windows NT/2000/XP (26) Linux / Unix (10) |
Юристу Гражданское право (12) Семейное право (7) Трудовое право (10) КоАП (6) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||