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

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


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

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

Выпуск № 759
от 17.08.2004, 07:40

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


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

Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 133.27
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 116.48
[Подробней >>]
E-terra experts
Статус: Доверительный
Общий рейтинг: 108.59
[Подробней >>]
 
Стас
Статус: Опытный
Общий рейтинг: 123.07
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 111.06
[Подробней >>]
flasher
Статус: Доверительный
Общий рейтинг: 105.63
[Подробней >>]
 
_vt
Статус: Профессиональный
Общий рейтинг: 118.2
[Подробней >>]
SackTap
Статус: Доверительный
Общий рейтинг: 112.85
[Подробней >>]
Snowm@n
Статус: Опытный
Общий рейтинг: 107.68
[Подробней >>]
 
Горячев Игорь
Статус: Доверительный
Общий рейтинг: 119
[Подробней >>]


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

Вопрос № 5710. Привет. На вопрос про видеобуфер эксперт Стас ответил: >Добрый день, bsw! >Видео буффер в досе наход... (ответов: 5)
Вопрос № 5711. Как строится в DOS 16 exe файл с блоком команд больше одного сегента?... (ответов: 3)
Вопрос № 5712. Здраствуйте. >>wasm.ru -> KmdKit Что за KmdKit??Перерыл весь сайт, но так его и не нашёл. Может есл... (ответов: 3)
Вопрос № 5713. Привет. Как с помощью bios прерываний очистить экран?... (ответов: 3)
Вопрос № 5715. Здравствуйте, эксперты! Написал программу, которая по нажатию контрола меняет расладку клавиатуры. Д... (ответов: 2)
Вопрос № 5716. Привет ВСЕМ!!!!! Я давно хочу написать прогу для работы с телефоном SIEMENS C60, но не знаю с чего н... (ответов: 1)
Вопрос № 5717. здрасьти! вот сколько раз пытался придумать алгоритм ни как не получается. я о т.н. "запакованн... (ответов: 1)
Вопрос № 5718. Всем привет. Вопрос Tigran'у. Вот вижу эксперты часто дают ссылку на ваш сайт(http://kalaidjian.naro... (ответов: 1)
Вопрос № 5719. Доброе время суток! Сколько megaherz в одном gigaherz: 1000 или 1024?... (ответов: 5)
Вопрос № 5722. Как в MASM наиболее проще описать довольно большой массив указателей на строки. И массив и строки до... (ответов: 2)

Вопросов: 10, ответов: 26


 Вопрос № 5710

Привет.
На вопрос про видеобуфер эксперт Стас ответил:
>Добрый день, bsw!
>Видео буффер в досе находится по адресу 0b800:0000. И если ты напишешь mov [0x0b800],'a' ты в видобуффер попадешь только >если в DS будет 0b800h-0b80h=0ac80h.
>Т.е. если DS=ac80, то mov [0x0b800],'a' действительно поставит первую букву на экране a.
>Второй пример правильный.
Вот не понимаю как можно попасть в сегмент 0b800 если DS=0ac80? То есть получается я пишу в адрес 0ac80:0b800.
Объясните плзз.
Заранее спасибо!



Вопрос отправлен: 09.08.2004, 14:17
Отправитель: bsw

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

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

Добрый день, bsw!
Стас облажался по полной, это называется. ;)
В DS надо заносить 0B800h, а в SI нуль.
И вперёд:
push 0B800h
pop ds
mov [si], 30h
Удачи.
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 11.08.2004, 21:48
Отправитель: Евгений Иванов


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

Добрый день, bsw!
Стас облажался по полной, это называется. ;)
В DS надо заносить 0B800h, а в SI нуль.
И вперёд:
push 0B800h
pop ds
mov [si], 30h
Удачи.
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 11.08.2004, 21:48
Отправитель: Евгений Иванов


Отвечает Ayl

Добрый день, bsw!
Адрес видеобуфера (физический) - B8000.
Логический адрес вида сегмент:смещение переводится в физический так: адрес = 16 * сегмент + смещение.
Т.е. адрес 0AC80:B800 соответствует физическому адресу:
AC80 * 16 = AC800
AC800
+ B800
------
B8000, т.е. физический адрес видеобуфера.

Дело в том, что одному физическому адресу может соответствовать до 4096 логических адресов вида сегмент:смещение. Например, для видеобуфера:
B8000 =
(0) B800:0000
(1) B7FF:0010
(2) B7FE:0020
...
(4095) A801:FFF0


Ответ отправлен: 09.08.2004, 14:38
Отправитель: Ayl


Отвечает E-terra experts

Здравствуйте, bsw!
дык все правлильно - выж указываете смещение относительно сегмента.. соответсвенно если хочется чтоб в ds было 0b800h тогда смещение должно быть 0.

Ответ отправлен: 09.08.2004, 14:26
Отправитель: E-terra experts


Отвечает Стас

Приветствую Вас, bsw!
Я специально так ответил, чтобы ты понял, что один и тот же адрес памяти можно адресовать по разному.
"Физический адрес" получается сложением БАЗЫ*16 и СМЕЩЕНИЯ.
Об этом всем было написано в моем ответе.

Ответ отправлен: 09.08.2004, 22:44
Отправитель: Стас


 Вопрос № 5711

Как строится в DOS 16 exe файл с блоком команд больше одного сегента?



Вопрос отправлен: 09.08.2004, 16:04
Отправитель: Nikita

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

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

Доброе время суток, Nikita!
Используй сегменты.
Но, друг, тебе это надо?!
сейчас это всё устарело, на дворе раздолье win32 и линейной памяти.
оглянись кругом, подумай хорошо и закинь этот ДОС подальше и не вспоминай о нём, как о страшном сне!
программирование можно изучить в любой ОС и в любом окружении, удобнее всего в win32.
Бывай!.
ps.
заходи сюда
- тут много интересного.
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 11.08.2004, 21:48
Отправитель: Евгений Иванов


Отвечает Ayl

Доброе время суток, Nikita!
Устанавливаешь одну из следующих моделей памяти:
MEDIUM (много сегментов кода, один сегмент данных)
LARGE
HUGE
и пишешь код. Доступно объявление нескольких сегментов кода. Соответственно, требуются дальние вызовы процедур.


Ответ отправлен: 09.08.2004, 17:09
Отправитель: Ayl


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

Доброе время суток, Nikita!
Как несколько сегментов, например, или используется защищенный режим + 32-разрядные сегменты

Ответ отправлен: 12.08.2004, 05:36
Отправитель: ASMодей


 Вопрос № 5712

Здраствуйте.
>>wasm.ru -> KmdKit
Что за KmdKit??Перерыл весь сайт, но так его и не нашёл.
Может если он у вас есть - скиньте на мейл.



Вопрос отправлен: 09.08.2004, 17:47
Отправитель: Семен (hiNt89@mail.ru)

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

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

Доброе время суток, Семен!
CmdKit, может быть?
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 11.08.2004, 21:49
Отправитель: Евгений Иванов


Отвечает flasher

Здравствуйте, Семен!
http://www.wasm.ru/toollist.php?list=11
там-же поиск есть.....

Ответ отправлен: 09.08.2004, 20:02
Отправитель: flasher


Отвечает _vt

Добрый день, Семен!
http://wasm.ru/docs/1/kmdtut.zip - это статьи.
http://wasm.ru/tools/11/kmdkit17.zip - это примеры.
А ты где искал? ;-)
* Origin : Life begins at 1000Mhz!


Ответ отправлен: 10.08.2004, 00:59
Отправитель: _vt


 Вопрос № 5713

Привет. Как с помощью bios прерываний очистить экран?



Вопрос отправлен: 09.08.2004, 19:27
Отправитель: alex

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

Отвечает Стас

Здравствуйте, alex!
Действительно, в текстовых режимах, обычно, это делается через "листание" функция 06h Int 10h:
06H листать окно вверх (или очистить). Листать на 1 или более строк вверх.
Вход: CH,CL = строка,колонка верхнего левого угла окна(от 0)
DH,DL = строка,колонка нижнего правого угла окна (от 0)
AL = число пустых строк, вдвигаемых снизу (0=очистить все окно)
BH = видео атрибут, используемый для пустых строк

Ответ отправлен: 10.08.2004, 14:45
Отправитель: Стас


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


  1. mov ax, 3
    int 16


* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 11.08.2004, 21:50
Отправитель: Евгений Иванов


Отвечает Ayl

Здравствуйте, alex!
Самое простое - переустановить режим. Но если ты изменял палитру - такой способ не подходит. В текстовом режиме можно использовать функции 6 или 7 прерывания 10h, установив регистр AL в 0.
В графике - только своя процедура заполнения экрана.


Ответ отправлен: 10.08.2004, 11:42
Отправитель: Ayl


 Вопрос № 5715

Здравствуйте, эксперты!
Написал программу, которая по нажатию контрола меняет расладку клавиатуры. Для этого используется глобальный хук WH_KEYBOARD. Но программа работает только для windows-приложений. Можно ли реализовать переключение и для консольных, и для досовских приложений без написания dos-драйвера. Например, PuntoSwitcher это умеет. Какие функции нужно использовать и как перехватывать нажатия клавиш в этих приложениях?
Заранее благодарен, EraSer



Вопрос отправлен: 10.08.2004, 09:20
Отправитель: EraSer (eraser99@tut.by)

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

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

Добрый день, EraSer!
WH_KEYBOARD_LL
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 11.08.2004, 21:51
Отправитель: Евгений Иванов


Отвечает SackTap

Здравствуйте, EraSer!
через прямой доступ к порту ввода-вывода контроллера клавы

Ответ отправлен: 10.08.2004, 10:57
Отправитель: SackTap


 Вопрос № 5716

Привет ВСЕМ!!!!!
Я давно хочу написать прогу для работы с телефоном SIEMENS C60, но не знаю с чего начать…
Может кто-нибудь подскажет, что для этого нужно и где найти нужную инфу?!?!
seregaa@mail.nnov.ru
Огромное СПАСИБО!!!!!



Вопрос отправлен: 10.08.2004, 09:52
Отправитель: Серега (seregaa@mail.nnov.ru)

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

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

Доброе время суток, Серега!
Чтобы работать с телефоном, нужно использовать COM-порт. Необходимо знать спецификацию команд в телефоне.
Также есть стандартные команды модема. Используй их.
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 11.08.2004, 21:52
Отправитель: Евгений Иванов


 Вопрос № 5717

здрасьти!
вот сколько раз пытался придумать алгоритм ни как не получается. я о т.н. "запакованных программах" я как-то спрашивал что такое когда в дизассемблере только поля db и мне ответили что это запакованная прога. объясните мне как они запакованны, как они распаковаваются, а программа распаковщик она же не запакована, как ее найти в коде?
спасибо



Вопрос отправлен: 10.08.2004, 11:31
Отправитель: очень хочу научиться

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

Отвечает Стас

Здравствуйте, очень хочу научиться!
Дебаггером. Пошагово. Хотя скорее всего там будут противоотладочные алгоритмы.
Вообщем попробуй прогу PeId она скажет(скорее всего) чем запакована программа.
Насчет алгоритма:
В точке входа в программе сидит небольшая программа пытающая "избавится" от дебагерра и как можно сильнее запутать тебя. Только небольшая её часть может быть открытой, остальная может быть зашифрована или запакована. Расшифровывается обычно перед самым исполнением, или даже во время его. Алгоритмов полно.
НО первые исполняющиеся всегда нормальные. Можно сделать так что выглядить они будут полным бредом, но тем не менее они производят вполне опереденные действия.
И еще, то что у тебя одни DB в дизассемблере причин может множество. Не тот проц, не тот тип исполняемого файла...


Ответ отправлен: 10.08.2004, 14:58
Отправитель: Стас


 Вопрос № 5718

Всем привет.
Вопрос Tigran'у. Вот вижу эксперты часто дают ссылку на ваш сайт(http://kalaidjian.narod.ru), пытался зайти на сайт но выдается ошибка 404(нет такого). А очень хочется почитать ваш faq.



Вопрос отправлен: 10.08.2004, 22:27
Отправитель: dw

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

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

Приветствую Вас, dw!
http://superforest.narod.ru/add/rusfaq.rar
зеркало.
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 11.08.2004, 21:53
Отправитель: Евгений Иванов


 Вопрос № 5719

Доброе время суток! Сколько megaherz в одном gigaherz: 1000 или 1024?



Вопрос отправлен: 10.08.2004, 23:05
Отправитель: dw

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

Отвечает Snowm@n

Здравствуйте, dw!
1000

Ответ отправлен: 11.08.2004, 18:40
Отправитель: Snowm@n


Отвечает E-terra experts

Приветствую Вас, dw!
1000
если процессор от AMD - неоднозначно 8-))

Ответ отправлен: 11.08.2004, 12:32
Отправитель: E-terra experts


Отвечает SackTap

Приветствую Вас, dw!
герц это такая физическая величина.
и приставки типа мега и гига придумывались тогда, когда о компах и не думали.
следовательно 1ГГц=1000MГц=1000000КГц=1000000000Гц

Ответ отправлен: 11.08.2004, 13:03
Отправитель: SackTap


Отвечает Горячев Игорь

Здравствуйте, dw!
1000

Ответ отправлен: 11.08.2004, 23:16
Отправитель: Горячев Игорь


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

Здравствуйте, dw!
друг мой, это не связано с байтами и битами, поэтому 1000.
приставка кило - 1000.
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


Ответ отправлен: 11.08.2004, 21:54
Отправитель: Евгений Иванов


 Вопрос № 5722

Как в MASM наиболее проще описать довольно большой массив указателей на строки. И массив и строки должны быть заданы изначально, т.е. не в Run-time. В самом деле мне не очень то хочется делать что-то вроде этого:


Приложение:


Вопрос отправлен: 13.08.2004, 07:39
Отправитель: Xych

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

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

Здравствуйте, Xych!
используй макросы
* EMan: -=- И легко перо, да на крышу не закинешь. =-=


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


Отвечает Ayl

Доброе время суток, Xych!
Можешь попробовать, например, такой макрос:
DEF_STR macro str_list
IRP str,
str db '&str', 0
endm
MyArray:
IRP str,
dd str
endm
endm
И вызвать его вот так:
DEF_STR


Ответ отправлен: 13.08.2004, 13:13
Отправитель: Ayl



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (25)
C / C++ (14)
Perl (8)
Builder / Delphi (16)
Pascal (22)
Basic / VBA (6)
Java / JavaScript (7)
PHP (14)
Криптография (7)
WinAPI (13)
Радиоэлектроника (10)
Пользователю
Windows 95/98/Me (45)
Windows NT/2000/XP (57)
"Железо" (40)
Поиск информации (15)
Администратору
Windows NT/2000/XP (33)
Linux / Unix (19)
Юристу
Гражданское право (11)
Семейное право (7)
Трудовое право (10)
КоАП (6)

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




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


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

http://subscribe.ru/
http://subscribe.ru/feedback/
Адрес подписки
Отписаться

В избранное