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

Ассемблер? Это просто! Учимся программировать (FAQ)


Служба Рассылок Subscribe.Ru

Ассемблер? Это просто! Учимся программировать (FAQ)
______________________________________

Выпуск N 160

Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"

Дата выхода: 2001-12-22


Вопрос №1863

Уважаемые эксперты!
Купил принтер HP LazerJet 1220. Программа установки с CD диска без всяких альтернатив установила на диск C в каталог Program Files всего разного интересного объемом 170 Mb. Я хотел бы это все иметь на другом диске D и в другом каталоге. Возможно ли средствами Windows 98SE перенести это все на другое место и чтобы можно было работать с этим через меню "Пуск"?
Заранее благодарен.
Igor.

Ответ

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

Для начало скопи содержимое на D (именно скопи, а не перенеси).

Запусти REGEDIT.

Смотри ключи HKEY_CURRENT_USER\SOFTWARE и HKEY_LOCAL_MACHINE\SOFTWARE

Там увидишь кучу подключей. Найди ключ с именем ПО или производителя. Далее просматривай значения параметров и изменяй пути.

Советую сделать копии файлов USER.DAT и SYSTEM.DAT прерд правкой.

В слючае сбоя восстанови файлы на C:


Отправил эксперт: progmas (a-kireev.narod.ru - HOMEPAGE)
Эксперт отправил ответов (всего): 19

Экспертная группа: Пользовательская работа с Windows

Вопрос №1923

Здравствуйте.
Мой вопрос касается рассылки, а точнее формы для вопросов. А дело вот в чем: я пользуюсь Outlook Express 5.00.2615.200 (Win 98), так вот невозможно вставить текст из другого места (например WORD`а, где довольно удобно набивать текст, по крайней мере не надо думать об орфографии)) ) в поле формы. Самое интересное, что в меню копировать есть, а вставить нету – не в меню Правка, не в меню по клику правой кнопки мыши. Так вот интересно в чем собственно дело?
Хотя один способ есть, если открыть письмо с формой через меню правой кнопки мыши Открыть, то тогда в меню Правка появляется Вставить, а в меню правой кнопки мыши по прежнему пусто. Вот таки дела.
----------------------------------------
Ну еще небольшой вопрос. Как можно сохранить письмо в другом формате (HTML или DOC).
----------------------------------------
Вопрос не по существу, но интересно: Может отслеживать рейтинг вопросодателей, по Нику аль Мылу, чтоб знать, кто больше всего экспертов достает )))))
----------------------------------------
В миру Дмитрий, в сети ПАЛЫЧЪ.

Ответ

Здравствуйте, ПАЛЫЧЪ!
1.А ты используй Shift+Ins-они работают!
Кстати, Я и не замечал, что в контекстном меню многого нет, так как пользуюсь горячими клавишами...
2.Открываешь письмо и в меню Файл "Сохранить как":)
Варианты 2 - eml html



Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 237

Экспертная группа: Пользовательская работа с Windows

Вопрос №1923

Здравствуйте.
Мой вопрос касается рассылки, а точнее формы для вопросов. А дело вот в чем: я пользуюсь Outlook Express 5.00.2615.200 (Win 98), так вот невозможно вставить текст из другого места (например WORD`а, где довольно удобно набивать текст, по крайней мере не надо думать об орфографии)) ) в поле формы. Самое интересное, что в меню копировать есть, а вставить нету – не в меню Правка, не в меню по клику правой кнопки мыши. Так вот интересно в чем собственно дело?
Хотя один способ есть, если открыть письмо с формой через меню правой кнопки мыши Открыть, то тогда в меню Правка появляется Вставить, а в меню правой кнопки мыши по прежнему пусто. Вот таки дела.
----------------------------------------
Ну еще небольшой вопрос. Как можно сохранить письмо в другом формате (HTML или DOC).
----------------------------------------
Вопрос не по существу, но интересно: Может отслеживать рейтинг вопросодателей, по Нику аль Мылу, чтоб знать, кто больше всего экспертов достает )))))
----------------------------------------
В миру Дмитрий, в сети ПАЛЫЧЪ.

Ответ

Здравствуйте, ПАЛЫЧЪ!

Почему пропадает пункт "Вставить" сказать не могу, возможно просто бага оутглюка. Но вставить все-таки возможно, нужно просто в форме нажать клавиши Shift+Insert. И все вставляется как надо!


Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 121

Экспертная группа: Пользовательская работа с Windows

Вопрос №1923

Здравствуйте.
Мой вопрос касается рассылки, а точнее формы для вопросов. А дело вот в чем: я пользуюсь Outlook Express 5.00.2615.200 (Win 98), так вот невозможно вставить текст из другого места (например WORD`а, где довольно удобно набивать текст, по крайней мере не надо думать об орфографии)) ) в поле формы. Самое интересное, что в меню копировать есть, а вставить нету – не в меню Правка, не в меню по клику правой кнопки мыши. Так вот интересно в чем собственно дело?
Хотя один способ есть, если открыть письмо с формой через меню правой кнопки мыши Открыть, то тогда в меню Правка появляется Вставить, а в меню правой кнопки мыши по прежнему пусто. Вот таки дела.
----------------------------------------
Ну еще небольшой вопрос. Как можно сохранить письмо в другом формате (HTML или DOC).
----------------------------------------
Вопрос не по существу, но интересно: Может отслеживать рейтинг вопросодателей, по Нику аль Мылу, чтоб знать, кто больше всего экспертов достает )))))
----------------------------------------
В миру Дмитрий, в сети ПАЛЫЧЪ.

Ответ

Здравствуйте, ПАЛЫЧЪ!
Ну я, собственно, не совсем понял в чем трабл? Попробуй не пользоваться менюшками, а использовать горячие клавиши. Ctrl+C - копировать, Ctrl+V - вставить, Ctrl+X - вырезать, Ctrl+Z - отменить. Все должно сработать, меня, по крайней мере, еще не подводило. А вообще-то, лучше открывать форму и потом туда что-то вставлять, как ты и написал.
По поводу впроса о сохранении писем в формате ДОК или ХТМЛ. Скорее всего, ничего не выйдет. У меня стоит The Bat, так что за Аутгюк Экспресс поручиться не могу, но Зе Бат может сохранить только как письмо или в формате Unix или в ТХТ`шном формате. Хотя, если письмо пришло в ХТМЛ-формате, то можно сохранить файл message.html - вот это и будет то самое письмо.

ЗЫ: Ответ не по существу: А зачем? :)))

ЗЗЫ: Тоже не по существу. Могу предложить Олегу немного изменить систему баллов, чтобы она была более объективной, т.е. не начислять баллы за ответы типа "я не знаю где достать..." или "переустанови Винду" и т.п. односложных ответов. Хотя, для этого нужен модератор, а это расточительно, так что может все миром чё-нить придумаем? :)))


Отправил эксперт: Tiger (www.tigeer.narod.ru - Что-то вроде того)
Эксперт отправил ответов (всего): 19

Экспертная группа: Пользовательская работа с Windows

Вопрос №1924

Здравствуйте!
Как и чем в DOS можно пошагово выполнять com файлы. Имеется TD 3.0 асемблирую Tasm 4.1 Tlink 4.0 но что то ничего не получается.

Ответ

Здравствуйте, Serg!
Совсем чтоли ничего? Такого не бывает.
В TD - F7-пошаговая трассировака, F8 - с заходом в процедуры и т.п.


Отправил эксперт: Broken Sword (ОНПУ, ИКС, АС-991 - )
Эксперт отправил ответов (всего): 262

Экспертная группа: Работа с MASM/TASM

Вопрос №1925

Здравствуйте!
Как и чем в DOS можно пошагово выполнять com файлы. Имеется TD 3.0 асемблирую Tasm 4.1 Tlink 4.0 но что то ничего не получается.

Ответ

Здравствуйте, Serg!
Что именно не получается? Не создается .COM-файл? Или не грузится он в TD?


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 36

Экспертная группа: Работа с MASM/TASM

Вопрос №1926

Модель памяти flat позволяет работать с сегментами до 4 гб
и 32-битными смещениями. В таком случае, насколько я понял,
смещение представляет из себя 4 байта. А адрес сегмента сколько байтов?
То что сегменты стали до 4 гб влияет как-то на сегментацию памяти? Если в ДОС-сегментации для представления адреса необходимо было 4 байта (2 для сегмента + 2 для смещения),
то сколько байтов нужно для адресации в модели flat?

Ответ

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

Flat - она на то и плоская, что не знает про сегментацию ничего!
Но для того, что бы стать flat, нужно сначала поработать с сегментными регистрами. А именно, во все с.р. записываем в качестве базы 0, а в качестве предела - FFFFFFFF (ну, сколько там влезет по максимуму). И все. После этого про сегменты забываем насовсем! И работаем только по смещениям!


Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 122

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1925

Здравствуйте!
Как и чем в DOS можно пошагово выполнять com файлы. Имеется TD 3.0 асемблирую Tasm 4.1 Tlink 4.0 но что то ничего не получается.

Ответ

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

Странно это. Вообще-то в TD для трассировки используются следующие клавиши:
F7 - пошаговое выполнение команд с заходом в процедуры (кроме прерываний, инициированных с помощью команды int)
F8 - выполнение команды без захода в процедуру
F9 - выполнение программы до ближайшего Break Point (если такого нет -до конца программы)
F4 - выполнение программы с текущего положения указателя команд до текущего положения курсора
Shift+F2 - Restart. Указатель команд устанавливается на первую команду программы, регистры переустанавливаются в состояние как при запуске.
Ctrl+F8 - установить/удалить Break Point


Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 123

Экспертная группа: Работа с MASM/TASM

Вопрос №1894

Здраствуйте!
Кто-нибудь знает комбинацию клавиш в Винде9х для сворачивания окна на панель задач, еси таковой нет, какая WinAPI-функция за это отвечает. Еси можно приблизительное ее описание и фрагмент кода на асме. Зарание благодарен!

Ответ

Здравствуйте, remix!
Клав.: Alt+пробел, стрелка вниз, стрелка вниз, стрелка вниз, Enter.

Программно:
SendMessage(hMinimWinHandle,
WM_SYSCOMMAND,
SC_MINIMIZE, 0);
hMinimWinHandle - дескриптор минимизируемого окна. Его можно определить ф-цией:
hMinimWinHandle = FindWindow(lpWindowClassName, lpWindowName);


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 37

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1927

Ваш вопрос № 1926:

Модель памяти flat позволяет работать с сегментами до 4 гб
и 32-битными смещениями. В таком случае, насколько я понял,
смещение представляет из себя 4 байта. А адрес сегмента сколько байтов?
То что сегменты стали до 4 гб влияет как-то на сегментацию памяти? Если в ДОС-сегментации для представления адреса необходимо
было 4 байта (2 для сегмента + 2 для смещения),
то сколько байтов нужно для адресации в модели flat?

Ответ эксперта:

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

Flat - она на то и плоская, что не знает про сегментацию ничего!
Но для того, что бы стать flat, нужно сначала поработать с сегментными регистрами. А именно, во все с.р. записываем в качестве базы 0,
а в качестве предела - FFFFFFFF (ну, сколько там влезет по максимуму). И все. После этого про сегменты забываем насовсем! И работаем
только по смещениям!

Ответил эксперт: Ayl.

Новый вопрос: а если программе требуется размер сегмента более 4 гб, что тогда? Ведь несколько сегментов при такой модели не организуешь!

Ответ

Здравствуйте, TanaT!
Что-то нечаянно нажал ОТПРАВИТЬ при пустом ответе. Извиняюсь.
В модели flat виртуального режима процессора Intel x86 сохранено понятие сегментации и используются теже сегментные регистры, что и в реальном размером по 2 байт - CS, SS, DS, ES, FS, GS, только меняется смысл их использования и называю их еще селекторами. В вирт. режиме они содержат индесы таблицы дескрипторов сегментов. В этих таблицах описываются свойства сегментов - тип, размер, начальный адресс, права доступа, гранулярность и т.п. В отличи от рельного в вирт. режиме адрес вычисляется как сумма смещения внутри сегмента и начального адреса сегмента. Если включена страничная трансляция, то полученный логический адрес транслируется в физически по таблицам соответствия физических страниц ОЗУ и лог. адресов.
В Win32 пользовательского режима, на сколько я знаю, не предусмотрены ф-ции для выделения селекторов и создания сегментов. Если очень нужно памяти более 4Гб можно выкрутиться созданием дополнительного процесса и использовать его область памяти. Только в Win32 это, пожалуй, самый плохой способ, поскольку в нем приложения не разделены в отдельные задачи и работают, посути, в одном большом сегменте. Есть для некоторых кодовых фрагментов и ДОС-сессии в Win32 отдельные TSS, но это уже другая тема.
В Windows 2000 с учетом того, что процессоры Pentium начиная с Pentium II могут обращатся к 64Гб физ. адресов, есть возможность использовать дополнительной памятью (вспомните переход от 8086 к 80286 - и Extendet Memory). Этот механизм получил название AWE (Address Windowing Extensions).
Для этих процессоров возможно использование 64Гб посредством расширенного упрваления страничной переадресации. Но это большая и не простая тема.


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 38

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1903

Уважаемые Мэтры!
Есть внешнее программируемое устройство с по байтной арифметикой
Задача:
Регистр R1 - младший байт числа формата 0FFF (т.е. 4095)
R2 - старший
Нужно получить в регистрах A1,A2,A3,A4
числа 4, 0, 9, 5

Команды ассемблеровские (синтактически), только байтовые а не целые. В этом все и дело!

Ответ

Здравствуйте, Juris!
Суть Вашей проблемы сводится к переводу чисел двоичного формата в десятичный. Т.к. размеры используемых Вами регистров меньше самих преобразуемых чисел, то имеет смысл использовать алгоритм арифметики больших чисел - о нем много чего написано. Писать код сейчас для этой задачи ломы, поскольку, имея оптимизированный код с 32 и 64 разрядными регистрами с помесью MMX и SSE переделывать все под 8 бит... Знаете ли... Тем более под Ваш микропроцессор его все равно придется переписывать. Еще не известно, что умеет он - делит ли он, умножает ли? А может и деление придется реализовывать через вычитание. Или хуже - умножение алгоритмизировать...

I. Вариант.
Преобразуем числа с фиксированным максимальным размером, к примеру, 4 байт - это максимальное число, которое следует перевести в десятичную нотацию:
Максимальная величина такого числа 65535, поэтому имеем максимум 5 цифр (позиций) в десят. представлении.
1. Определим константы в памяти с значениями 10000, 1000, 100, 10.
2. Методом побайтного сравнения, начиная с старшего байта, с числами из п.1 определим максимальную степень нашего числа по основанию 10.
3. Разделим преобразуемое число на 10 в степени "максимальная степень нашего числа", определенного в п.2 - это одно из чисел п.1. (Методику деления см. ниже). Целая часть частного будет первым числом в десят. исчислении.
4. Запомним остаток, полученный в п.3. Если он меньше 10, то преобразование завершено и этот остаток есть последняя чифра нашего числа. Иначе повторим для него (остатка) порядок действий начиная с п.2.

II. Вариант.
Размер преобразуемого числа не ограничен.
В этом случае следует следует просто делить это число на 10. Остаток от каждого деления будет очередной цифрой нашего числа при десят. основании, начиная с младшего. Повторять деление следует пока очередное частное больше 10.
Для нашего случая в этом варианте можно использовать основание 100 (это число еще умещается в 1 байте) и перевести число в 100-ную нотацию. Далее, если каждое число 100-ной системы будем делить на 10 получим частное как старшую цифру, а остаток - младшую для данной позиции в 100-ой системы представления нашего числа.

-------------------------------------------------------
Алгоритм целочисленного деления больших чисел:
Наиболее простой и легко программируемый алгоритм деления - это повторяющееся вычитание.
Но можно поделить и столбиком, обычным, как мы делаем на бумаге. Делается это просто. Основное условие - делитель меньше делимого.
1. Определить ширину в битах делителя. В нашем случае для 10 имеем 1010(bin) - 4 бита.
2. Для первой шага произвести выборку самых старших 4 бит делимого таким образом чтобы первый бит был не нулевой: к примеру, наше число 0010 010 1101 1100(bin), выбираем число начиная со 2 бита слева (старшие) - 1001(bin). Сравниваем с 10. Если это число меньше 10, производим выборку пяти бит с теми же условиями (10010 из примера). Записываем для частного 1 как старший бит. Разность этих чисел (4 или 5 битное и 10) используем в дальнейших шагах.
2. К битовому образу текущей разности дописываем следующий бит нашего большого числа. Если полученное число меньше 10, для частного очередной бит равен 0 и переходим на шаг 3. Если же - больше 10, для частного очередной бит равен 1 и вычисляем разность чисел этих чисел.
3. Поторяем шаг 2, определяя биты частного, пока наше число не закончится - не дойдем до 0-го бита.
4. В итоге имеем частное и последнюю разность из п.2, которая меньше 10 и является остатком.

Для больших величин делителей все выше сказанное справедливо, за исключением большего числа сопутствующих битовых операций. Для таких чисел могу посоветовать выравнивание старших битов для делителя и делимого - определить у кого из этих чисел установленый в 1 старший бит находится правее и сдвигать для него все биты влево пока позиции старших не нулевых бит делителя и делимого не выровняются внутри старшего байта.
Пример:
0001 0101 1001 0101 0111 0011 - делимое
0110 0100 - делитель
У делимого старший не нулевой бит находится в меньшей позиции внутри байта по сравнению с делителем, поэтому сдвигаем все биты делимого влево на две позиции и имеем:
0101 0110 0101 0101 1100 11 00 - делимое
0110 0100 - делитель
Теперь легче начинать сравнивнение чисел при делении. Не забываем, что добавили к делимому 2 бита - дойдя до них при делении не следует их использовать. Последнее правило учитывается и в случае когда сдвигается делитель.


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 39

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1931

Здоров, орлы! Я снова с Вами! Вы еще живые??? Был в Харькове на научной конфе. Все эти милые дедушки-профессора…Чуть не повесился от скуки. Зато накопил кучу вопросов.
Значит первое - по поводу вопроса № 1891: ответил только Шегеда, поэтому пару слов ему. Что это за описание TASM 3.0 на русском? Где можно взять? На страничку shegeda.chat.ru доступиться не могу. Может кто кинет ссылочку…
Всем: Как же все-таки в TASMе, используя ООП и ключевое слово METHOD определить методы объекта? Желательно на примере, а то Шегеда вроде и написал, но я че-то...тупой, наверное.... Ну и еще – стоит ли все таки возиться с ООП на TASMе? Сэкономьте мое время, скажите, что это нахрен никому не нужно:))))))))))
С уважением Вал.Ик.

Ответ

Здравствуйте, Вал.Ик.!

Это зависит от того, чего ты хочешь добиться. :)
Вообще ООП - это достаточно просто и в принципе не требует всяких ключевых слов ассемблера. в nasm например нет такого слова. однако это вовсе не значит что там невозможно сделать ОО.


Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 223

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1933

Ну и последнее! Тоже в отдельном окне!
Вопрос слишком специфичный, поэтому не ругайтесь.
Микропроцессор КР1830ВЕ33.
Первое.Какие у него регистры?
Второе.Есть ли альтернативный набор регистров?
Третье. Любые ссылки в сети по этому процессору, любые книги в реале по нему же с указанием автора и года издания. В нашем ПГТ, блин, справочник, как библия….
Больше, наверное, для рассылки электронщиков, но и здесь, наверное, таковые имеются:))))
С уважением Вал.Ик.
НАРОД! ВЫ М-О-Л-О-Д-Ц-Ы!!!! Новую систему тестируйте по полной программе, чтоб она аж хрюкала…..

Ответ

Здравствуйте, Вал.Ик.!

А что это за зверь такой???
Ни один поисковик не может по нему ничего сказать...
Для каких целей используется?


Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 224

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1932

Дальше! Второй вопрос в отдельном окне!
Купил людям Atlon-900, и принтер HP-630C с USB. Все сначало шло нормально, все поставил, все корректно, все довольны и только этот мерзкий гад-принтер не желает видеть USB (или USB его?) . Короче, при загрузке пишет, что нашел устройство USB, что это принтер DeskJet и что дрова поставить пока не может. Вставляю компакт с дровами. Нахожу дрова для этой сволочи. Запускается целая мультемидийная фильма со звуком и мультиками для идиотов, как подключать принтер и говорит мне, что ПРИНТЕР НЕ ПОДКЛЮЧЕН к USB (...???). В чем дело? Разъемы и шнуры проверил, принтер проверил. Подскажите, не хочется чувствовать себя хуже идиота. Мультик по подключению просмотрел раз 100.
С уважением Вал.Ик.
PS. А знаете как будет USB русскими символами? ГЫИ!!!!!:)))))))))))))))))

Ответ

Здравствуйте, Вал.Ик.!
Попробуй посмотреть дрова на сайте производители принтера


Отправил эксперт: VD (www.chat.ru/~vdragon_pas/index.htm - Программирование графики на Пакаль со вставками на)
Эксперт отправил ответов (всего): 65

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1931

Здоров, орлы! Я снова с Вами! Вы еще живые??? Был в Харькове на научной конфе. Все эти милые дедушки-профессора…Чуть не повесился от скуки. Зато накопил кучу вопросов.
Значит первое - по поводу вопроса № 1891: ответил только Шегеда, поэтому пару слов ему. Что это за описание TASM 3.0 на русском? Где можно взять? На страничку shegeda.chat.ru доступиться не могу. Может кто кинет ссылочку…
Всем: Как же все-таки в TASMе, используя ООП и ключевое слово METHOD определить методы объекта? Желательно на примере, а то Шегеда вроде и написал, но я че-то...тупой, наверное.... Ну и еще – стоит ли все таки возиться с ООП на TASMе? Сэкономьте мое время, скажите, что это нахрен никому не нужно:))))))))))
С уважением Вал.Ик.

Ответ

Здравствуйте, Вал.Ик.!
Сэкономь све время, говорю, что нахрен никому не нужно это ООП на TASMе :)))))))))). Это проще и быстрее сделать на языке высоко уровня, а ф-ции, если это уж очень хочется, реализовать в ASM-е.


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 40

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1932

Дальше! Второй вопрос в отдельном окне!
Купил людям Atlon-900, и принтер HP-630C с USB. Все сначало шло нормально, все поставил, все корректно, все довольны и только этот мерзкий гад-принтер не желает видеть USB (или USB его?) . Короче, при загрузке пишет, что нашел устройство USB, что это принтер DeskJet и что дрова поставить пока не может. Вставляю компакт с дровами. Нахожу дрова для этой сволочи. Запускается целая мультемидийная фильма со звуком и мультиками для идиотов, как подключать принтер и говорит мне, что ПРИНТЕР НЕ ПОДКЛЮЧЕН к USB (...???). В чем дело? Разъемы и шнуры проверил, принтер проверил. Подскажите, не хочется чувствовать себя хуже идиота. Мультик по подключению просмотрел раз 100.
С уважением Вал.Ик.
PS. А знаете как будет USB русскими символами? ГЫИ!!!!!:)))))))))))))))))

Ответ

Здравствуйте, Вал.Ик.!


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 41

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1932

Дальше! Второй вопрос в отдельном окне!
Купил людям Atlon-900, и принтер HP-630C с USB. Все сначало шло нормально, все поставил, все корректно, все довольны и только этот мерзкий гад-принтер не желает видеть USB (или USB его?) . Короче, при загрузке пишет, что нашел устройство USB, что это принтер DeskJet и что дрова поставить пока не может. Вставляю компакт с дровами. Нахожу дрова для этой сволочи. Запускается целая мультемидийная фильма со звуком и мультиками для идиотов, как подключать принтер и говорит мне, что ПРИНТЕР НЕ ПОДКЛЮЧЕН к USB (...???). В чем дело? Разъемы и шнуры проверил, принтер проверил. Подскажите, не хочется чувствовать себя хуже идиота. Мультик по подключению просмотрел раз 100.
С уважением Вал.Ик.
PS. А знаете как будет USB русскими символами? ГЫИ!!!!!:)))))))))))))))))

Ответ

Здравствуйте, Вал.Ик.!
Возможно, не соответствие версий USB протоколов. Сейчас, кажется, одна из последних версий USB протокола 2.0. Следует поставить соответствующий драйвер для USB контроллера. Сразу скажу, что незнаю где его можно взять, наверное следует поискать в Internete.


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 42

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1930

Дравствуйте, эксперты.
Млин, так и не дождался ответа как обработать прерывание
от контролера FDD в защищенном режиме. Помогите хоть кто-
нибудь - очень нада. Или хоть скажите какое оно по счету
(да, есть у кого-нибудь список аппаратных прерываний
защищенного режима начиная с 21h и дальше, если есть
скиньте мне плз, буду очень признателен).
А то млин я уже заколебался сканировать флаги. Так ладно
сканировать, этот контроллер еще их и не всегда
устанавливает (например после рекалибровки флаг занятости
остается взведенным) не писать же мне для каждой команды
свою процедуру ожидания - это ведь никакой инкапсуляции.

И ысчо вопрос не в тему. Мона ли в софтайсе при работе
оного в окошке сделать покрупнее шрифт? (полноэкранный режим
себе позволить не могу - ну не переваривает моя система
частые переключения режима экрана, и красиво так провисает)

Ну все вроде. Заранее благодарю за ответы.
КУЛЕРЗЕГРЕЙТ

Ответ

Здравствуйте, CoolerTheGreat!
Про второй вопрос забыл. Доотвечиваю: можно.
Для версии SoftICE Driver Studio 2.0.0 (build 526) команда
SET FONT <номер шрифта 1, 2 или 3>



Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 43

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1929

Как с помощью только ассемблера скинуть в файл полное содержимое биоса материнской платы.

Ответ

Здравствуйте, Dev!
Вот рабочий код

Приложение:


Отправил эксперт: Kgm
Эксперт отправил ответов (всего): 44

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1934

Э-э-ээй!!! Народ!!!
Вы чего это? Общаться стали на личностном уровне? К читателям: Задавайте пожалуйста вопросы всем, а не лично экспертам. А то, понимашь, двое там тусуются, двое там...
Если не знаете как обратится, обращайтесь:"Увыжаимая система эхспертов!":))))))))
С уважением Вал.Ик.

Ответ

Здравствуйте, Вал.Ик.!
В ноовой системе круче-можно послать вопрос всем экспертам, а можно кому-то одному...
Кстати, Олег, по-моему в новой системе надо ставить не DropDownListBox с выбором одного эксперта, на набор CheckBox c возможностью выбрать нескольких...


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 239

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1931

Здоров, орлы! Я снова с Вами! Вы еще живые??? Был в Харькове на научной конфе. Все эти милые дедушки-профессора…Чуть не повесился от скуки. Зато накопил кучу вопросов.
Значит первое - по поводу вопроса № 1891: ответил только Шегеда, поэтому пару слов ему. Что это за описание TASM 3.0 на русском? Где можно взять? На страничку shegeda.chat.ru доступиться не могу. Может кто кинет ссылочку…
Всем: Как же все-таки в TASMе, используя ООП и ключевое слово METHOD определить методы объекта? Желательно на примере, а то Шегеда вроде и написал, но я че-то...тупой, наверное.... Ну и еще – стоит ли все таки возиться с ООП на TASMе? Сэкономьте мое время, скажите, что это нахрен никому не нужно:))))))))))
С уважением Вал.Ик.

Ответ

Здравствуйте, Вал.Ик.!

Дабы получить вышеназванную доку набери письмецо следующего содержиния:

To: www4mail@kabissa.org
Subj: Tasm documentation
Body: http://www.shegeda.chat.ru/BP_Tasm_Doc.zip

через денёк получишь свою доку по почте.
PS: Я оттрассировал канал на chat.ru - действительно, где-то (очень похоже, что на Ростелекоме) что-то почему-то сдохло :(


Отправил эксперт: Артём Шегеда (www.shegeda.chat.ru - Пристанище неодинокого программиста)
Эксперт отправил ответов (всего): 15

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1935

Уточнения по поводу микропроцессора КР1830ВЕ33.
Проц специализированный, применяется на компьютерах ОГБ (ограничители грузоподъемности) на кранах (авто, ж/д, мостовые, в общем везде где грузы подымают). Также в "черных" ящиках в самолетостроении и краностроении. Короче говоря, это сердце того самого ящика, который все ищут, когда какой-нибудь аэроплан грохнется... В реале и инете достать доки по нему трудно. Люди, не поленитесь, гляньте у себя в загашниках....
С уважением Вал.Ик.

Ответ

Здравствуйте, Вал.Ик.!
Есть некоторое описание по мкконтроллеру ЭКР1830ВЕ31М\51М и КР1830ВЕ51
Подойдет?
Если да, напиши лично (sensey@ukr.net) - отсканирую
А вообще это книга "Однокристальные микроЭВМ", Бином, 1994 г. или
"Однокристальные микроЭВМ", М.: МИКАП, 1994


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 240

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1936

Здравствуйте, эксперты.
Можно ли DOSовскую команду dir вывести в файл, а не на экран.

Ответ

Здравствуйте, Дмитрий!
ага
dir >1.txt
И выведется в файл 1.txt
Вообще с любой прогой, использующей прерывания Доса для вывода на экран, это работает
Кстати, для тех, кто пишет на Паскале-если НЕ использовать модуль CRT, это тоже работает, а если использовать-то нет, CRT прямо работает с экраном, без использования ф-ций ДОСа


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 241

Экспертная группа: Пользовательская работа c DOS

Вопрос №1936

Здравствуйте, эксперты.
Можно ли DOSовскую команду dir вывести в файл, а не на экран.

Ответ

Здравствуйте, Дмитрий!

Можно. Для этого существует так называемое перенаправление ввода-вывода.

Именно, введите

dir >имя_файла

И вообще, если указать: "имя_команды(или программы) >имя_файла", то весь
вывод данной программы(команды) будет осуществляться в указанный файл.

С уважением, root.


Отправил эксперт: root
Эксперт отправил ответов (всего): 5

Экспертная группа: Пользовательская работа c DOS

Вопрос №1928

Здравствуйте эксперты, подскажите плиз, что возвращает функция 08 драйвера XMS, в регисте edx, а то Зубков об этом ничего не пишет, но после вызова регистр изменяется.
А после такого вызова:
mov ax,8800h
int dword ptr [EntryPointXMS]
по идее функция возвращяет тоже самое что и 08, но в 32битных регистрах, а на практике безнадежно повешивает комп что не так я делаю?.
З.Ы.
Если у кого есть инфа по HIMEM.SYS сканьте плиз.

Ответ

Здравствуйте, Serzh!
08 функция драйвера XMS возвращает в dx (edx тут не при чем) размер XMS-памяти в килобайтах (без учета HMA) - это и написано в Зубкове. Насчет 88 функции - see below. Особенно, знаешь ли, обрати внимание на конец (начиная со слова BUG). Можно сделать смелый вывод - у тебя старенькая двоечка... ж)

2F 4310 Call the XMS v3.0 driver "Query free extended memory" function with:

Call the XMS v3.0 driver "Query free extended memory" function with:
AH = 88h
Return: EAX = largest block of extended memory, in KB
BL = status (00h,80h,81h,A0h) (see #02775)
ECX = physical address of highest byte of memory
(valid even on error codes 81h and A0h)
EDX = total Kbytes of extended memory (0 if status A0h)
BUG: HIMEM v3.03-3.07 crash on an 80286 machine if any of the 8Xh functions are called




Отправил эксперт: Broken Sword (ОНПУ, ИКС, АС-991 - )
Эксперт отправил ответов (всего): 263

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1927

Ваш вопрос № 1926:

Модель памяти flat позволяет работать с сегментами до 4 гб
и 32-битными смещениями. В таком случае, насколько я понял,
смещение представляет из себя 4 байта. А адрес сегмента сколько байтов?
То что сегменты стали до 4 гб влияет как-то на сегментацию памяти? Если в ДОС-сегментации для представления адреса необходимо
было 4 байта (2 для сегмента + 2 для смещения),
то сколько байтов нужно для адресации в модели flat?

Ответ эксперта:

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

Flat - она на то и плоская, что не знает про сегментацию ничего!
Но для того, что бы стать flat, нужно сначала поработать с сегментными регистрами. А именно, во все с.р. записываем в качестве базы 0,
а в качестве предела - FFFFFFFF (ну, сколько там влезет по максимуму). И все. После этого про сегменты забываем насовсем! И работаем
только по смещениям!

Ответил эксперт: Ayl.

Новый вопрос: а если программе требуется размер сегмента более 4 гб, что тогда? Ведь несколько сегментов при такой модели не организуешь!

Ответ

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

Ты видел где нибудь материнскаую плату, у которой максимальный объем оперативы (ДОПУСТИМЫЙ) превышал бы 4 Гб??? Да максимум по моему щас около 2 гигов (у меня вообще 512 Мб максимум...) И вообще таких зверских прог пока, слава богу, нет. Так что не переживай (по крайней мере еще года 3 минимум...).


Отправил эксперт: Broken Sword (ОНПУ, ИКС, АС-991 - )
Эксперт отправил ответов (всего): 264

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1936

Здравствуйте, эксперты.
Можно ли DOSовскую команду dir вывести в файл, а не на экран.

Ответ

Здравствуйте, Дмитрий!
Напиши dir >dir.txt
напиши dir >> dir.txt (добавить в файл)


Отправил эксперт: VD (www.chat.ru/~vdragon_pas/index.htm - Программирование графики на Пакаль со вставками на)
Эксперт отправил ответов (всего): 66

Экспертная группа: Пользовательская работа c DOS

Вопрос №1937

Не подскажет ли кто, как можно получить серийные номера различных устройств в Windows, кроме винчестера.
Принимаются любые способы.

Ответ

Здравствуйте, Geny!
Видеокарта: свойства экрана - дополнительно - адаптер
Модем: ATIX, где Х - от 0 до 9 (для IDC - ATI4)
Материнка: при загрузке внизу экрана
Проц: если фирменный пень, то тоже при загрузке
3''5 дисководы, CDROM - сверху налеплено.
Всякие мониторы, мыши, клавы, колонки и коврики - смотри на "обороте", а у звуковух типа ESS и других из трех букв их никогда и не было...

p.s. если у тебя видеократа Matrox, то Serial Number можно найти так:

INT 10
Вход:
AX = 4F14h
BL = 03h
SI = 0Ch
Возвращает:
cl = адрес 8-байтного SERIAL NUMBER (3 буквы + 5 цифр)


Отправил эксперт: Broken Sword (ОНПУ, ИКС, АС-991 - )
Эксперт отправил ответов (всего): 266

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1938

Здравствуйте, Эксперты!!!
При попытке загрузить com файл в TD он ругается говорить что 'Program has no symbol table'. А есле откомпилировать его как exe то TD он берт левые значения всех данных. Что делать?

Ответ

Здравствуйте, Segr!
я понял про что ты. на самом деле это не левые значеня - это то, что по этому адресу в памяти в ДАННЫЙ МОМЕНТ. Поэтому данные нужно инициализировать


Отправил эксперт: Broken Sword (ОНПУ, ИКС, АС-991 - )
Эксперт отправил ответов (всего): 267

Экспертная группа: Работа с MASM/TASM

Вопрос №1943

При установке Win 2k SP2, после установки всех драйверов, три устройства: видеокарта (GF2 Pro Ti), модем ( AVAKS «Porsche 5614 MHS», чипсет Motorola) и встроенный в Chaintech 7aja2 звук C.Media 8738 лезут на одно 11 прерывание и возвращаются туда после каждой перезагрузки. Настройка BIOS и замена драйверов не помогают. Под Win98 SE и в режиме save mode под Win 2k проблема не появляется. 1000 Atlon, 384 мв не разогнаны.Что делать?

Ответ

Здравствуйте, Alex!
Видео и звук там и должны сидеть и уживаться, а модем то что, внутренний(?), что он себе прерывание требует... Прерывание нужно только для Com-порта и для PCI-устройства, ну дык тогда все должно быть нормально - у меня тоже на IRQ 11 три устройства висят. Проблемы то от этого какие-нибудь появляются(вы не уточнили)?


Отправил эксперт: DivX
Эксперт отправил ответов (всего): 91

Экспертная группа: Модели, виды и типы компьютеров (hard)

Форма подачи вопроса

ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!

Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!


Ваше имя *:

Ваш e-mail *:

Подгруппы:

Вопрос *:

Прилагаемая программа (если необходимо):


Регистрация в качестве эксперта

Архив выпусков


Управляющий рассылкой,

Калашников Олег: Assembler@Kalashnikoff.ru
ICQ No.:
68951340
URL сайта подписчиков: http://www.Kalashnikoff.ru

Рассылка 'Ассемблер? Это просто! Учимся программировать (FAQ)' Рассылка 'Ассемблер? Это просто! Учимся программировать'


(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное