Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 462
от 08.01.2003, 19:50
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 2366 Отправлено ответов: 7106 Активность: 300.3 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Broken Sword Статус: Профессиональный Общий рейтинг: 127.42 URL: моя рассылка по Protected Mode [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 139.47 URL: Задачи по ассемблеру Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 113.88 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
Sensey Статус: Профессиональный Общий рейтинг: 121.54 URL: Страничка рассылки по Паскалю Телефон: +38 (0572) 41-76-04 д. [Подробней >>] |
Igoryk Статус: Доверительный Общий рейтинг: 136.5 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152.14 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 146.96 [Подробней >>] |
Andrew Vext Статус: Опытный Общий рейтинг: 107.25 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 117.38 [Подробней >>] |
igorash Статус: Профессиональный Общий рейтинг: 114.66 Телефон: 8(903)251-86-01 [Подробней >>] |
Max Статус: Доверительный Общий рейтинг: 105.38 [Подробней >>] |
Traish Статус: Опытный Общий рейтинг: 126.1 [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 118.11 [Подробней >>] |
Eugene Статус: Опытный Общий рейтинг: 108.57 URL: мощный файловый архив [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 2322. Здравствуйте Broken Sword! Так я ж и говорю что выставил Universal Video Driver. Lines n/Width n - э... (ответов: 1)
Вопрос № 2323. Доброе время суток, Эксперты. У меня вопрос! Устанавливаю с чистого листа Виндоуз 98 SE. Устанавлива... (ответов: 5)
Вопрос № 2324. Доброго времени суток Эксперты Поздравляю всех новогодними праздниками, желаю всего и много :) У мен... (ответов: 1)
Вопрос № 2325. _Зачем_ SIB(Scale-Index-Base)-байт нужен в командах intell-овских процессоров?... (ответов: 3)
Вопрос № 2326. Здравствуйте, Bob Johnson! Я по поводу вопроса № 2299 Не сочтите за наглость, но не могли бы вы выс... (ответов: 1)
Вопрос № 2329. Здравствуйте Уважаемый Andrew Vext! Извиняюсь за то, что я вас назвал подписчиком, на знал. А то что... (ответов: 1)
Вопрос № 2330. Доброе время суток Bob Johnson! Указываю->http://netlib.wallst.ru/ Добрый человек скоро закончит раб... (ответов: 1)
Вопрос № 2331. Привет всем!!! Наконец-то это случилось и я создал свою страничку, где разместил самые часто спрашив... (ответов: 3)
Вопрос № 2332. Здравствуйте, вот я всё мучаюсь с коммандной строкой сом программы... вот моё творение, я его оптими... (ответов: 6)
Вопрос № 2333. Ребят, может кто-нибудь писал клавиатурную переключалку под Win32 на Асме. От проги необходимо тольк... (ответов: 3)
Вопросов: 10, ответов: 25
Вопрос № 2322 |
Здравствуйте Broken Sword!
Так я ж и говорю что выставил Universal Video Driver.
Lines n/Width n - это конечно просто супер, но буковки
всё равно маленькие. А есть ли что-нибудь наподобие
Font?
Вопрос отправлен: 03.01.2003, 04:08
Отправитель: Начинающий ламер
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Добрый день, Начинающий ламер!
наподобие FONT есть только
SET FONT n
(n = 1...3)
да, и кстати для lines и width не забудь предварительно выставить
SET MAXIMIZE ON
Ответ отправлен: 03.01.2003, 18:18
Отправитель: Broken Sword
Вопрос № 2323 |
Доброе время суток, Эксперты.
У меня вопрос!
Устанавливаю с чистого листа Виндоуз 98 SE.
Устанавливаю дрова.
Проходит время. И комп начинает глючить.
(Проявление глюка: Глюк при работе с интернет эксплоером.
При просмотре веб-страниц (И локально, И ...), когда прокручиваю скролл.
Комп ни с того, ни с сего начинает глючить. Курсор не поддается управлению
(Хаотично движется), А Изображение шатает (ВВерх - Вниз)
Я уже много раз переставлял ОС.
Подскажите, плиз, в чем может быть дело.
Заранее спасибо за ответ.
Вопрос отправлен: 03.01.2003, 11:15
Отправитель: Читатель с ДВ.
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Здравствуйте, Читатель с ДВ.!
Трудно сказать не видя компа. Попробуй проверься на виря, мож он шалит.
Ответ отправлен: 03.01.2003, 14:38
Отправитель: Maverick
Отвечает baldr
Приветствую Вас, Читатель с ДВ.!
90% - мышка повредилась. Проводок, наверное, перетерся... Или просто почистить надо...
Попробуй проводок осторожно подергать, держа мышь неподвижно... Если курсор дергается,
значит - провод и есть... Обычно они перетираются в том месте, где провод входит в мышь...
У меня такое было, провод я чинил. Хотя и геморройно это!
Ответ отправлен: 03.01.2003, 23:19
Отправитель: baldr
Отвечает Sensey
Добрый день, Читатель с ДВ.!
А причем здесь Асм?
Это в железо или в Пользование Виндой...
Вариант - попробуй другую мышь - так бывает, когда шнурок почти перетерся...
Ответ отправлен: 03.01.2003, 11:35
Отправитель: Sensey
Отвечает Igoryk
Приветствую Вас, Читатель с ДВ.!
Одно из двух: либо вирусы, либо пора менять мышку. Просто иногда провод у основания просто рвется. Визуально это не заметно. И еще попробуй в настройках драйвера мыши сделать по-моему стоп-биты (я не уверен, но в настройках найти легко) и изменить на значение "Отсутствует". Работает - по опыту знаю.
Ответ отправлен: 03.01.2003, 12:03
Отправитель: Igoryk
Отвечает Bob Johnson
Здравствуйте, Читатель с ДВ.!
Тебе нужно дизассемблировать драйвера от видеокарты (а, кстати - какая она у тебя?), распечатать это, потом попросить исходники драйверов у фирмы-производителя и покомандно сравнивать, отмечая на глаз потеренную функциональность.
Ответ отправлен: 04.01.2003, 15:11
Отправитель: Bob Johnson
Вопрос № 2324 |
Доброго времени суток Эксперты
Поздравляю всех новогодними праздниками, желаю всего и много :)
У меня такой вопрос:
Как получить хендл CDrom ? У меня никак не выходит, нашел инфу что можно его получить функцией CreateFile ("\.C:",0,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL), но не катит.
При ассемблировании выпрыгивает ошибка "missing operator in expression" я как понимаю не хватает какого то параметра.
К сожалению дисков с MSDN у меня нема :( а лезть смотреть в Web проблемматично, инет настолько паршиво ездит ... :(
Попробую вот сейчас вам вопрос отправить.
Кому не сложно, подскажите как решить задачу с хендлом, может есть ещё какая нибудь функция?
Зарание спасибо.
Вопрос отправлен: 03.01.2003, 11:30
Отправитель: Евгений
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Здравствуйте, Евгений!
Вот пример из MSDN
hDevice = CreateFile("\\\\.\\PhysicalDrive0", \\ drive to open
0, \\ don't need any access to the drive
FILE_SHARE_READ | FILE_SHARE_WRITE, \\ share mode
NULL, \\ default security attributes
OPEN_EXISTING, \\ disposition
0, \\ file attributes
NULL); \\ don't copy any file's attributes
Естественно, все это работает ТОЛЬКО в NT/2K/XP
Ответ отправлен: 03.01.2003, 13:05
Отправитель: masquer
Вопрос № 2325 |
_Зачем_ SIB(Scale-Index-Base)-байт нужен в командах intell-овских процессоров?
Вопрос отправлен: 03.01.2003, 19:40
Отправитель: Hronитель
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Hronитель!
Чтобы можно было адресоваться удобнее. Intel позволяет использовать в адресе три части (или две, или одну, любую): индекс, базу и смещение. Смещение - это непосредственный адрес. База - это регистр, который содержит адрес. Его значение складывается со смещением. Индекс - это другой регистр, значение которого также складывается со всем вышеперечисленным, но, к тому же, может быть умножено на 1, 2, 4 или 8. Итого получаем:
addr = offset + base + index*{1, 2, 4, 8}
Это очень удобно - представь, что у тебя есть в памяти массив адресов каких-либо структур, тогда для получения его элемента хватит только одной команды:
eax = номер элемента
ebx = адрес массива
mov ecx, [ebx + eax*4]
А вот для кодирования всех таких видов адресации и нужен байт SIB.
Ответ отправлен: 05.01.2003, 13:07
Отправитель: Bob Johnson
Отвечает Andrew Vext
Доброе время суток, Hronитель!
SIB - 1 байт расширение ModR/M для 32-битной адресации
биты 7 и 6 - S (коэффициент масштабирования) 00 - не используется; 01 - умножение на 2; 10 - умножение на 4; 11 - умножение на 8.
биты 5, 4, 3 - I (индексный регистр, то есть тот, который умножается на S) 000 - EAX; 001 - ECX; 010 - EDX; 011 - EBX; 100 - индекса нет; 101 - EBP; 110 - ESI; 111 - EDI
биты 2, 1, 0 - B (регистр базы) 000 - EAX; 001 - ECX; 010 - EDX; 011 - EBX; 100 - ESP; 101 - если MOD=01 или 10, то EBP, если MOD=00 - базы нет; 110 - ESI; 111 - EDI.
Ответ отправлен: 04.01.2003, 13:32
Отправитель: Andrew Vext
Отвечает Ayl
Добрый день, Hronитель!
Нужен для формирования команд в некоторых режимах адресации. Например, базово-индексная с масштабированием. Или для разрешения косвенной адресации с любым регистром.
Просто в 386-м процессоре появились новые команды и режимы адресации, поэтому пришлось вводить новый постбайт для команды.
Ответ отправлен: 04.01.2003, 15:18
Отправитель: Ayl
Вопрос № 2326 |
Здравствуйте, Bob Johnson!
Я по поводу вопроса № 2299
Не сочтите за наглость, но не могли бы вы выслать мне тоже свой курсовик и звонилку?
Вопрос отправлен: 03.01.2003, 21:09
Отправитель: Davv (aderadon@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, Davv!
Опа... А вот теперь я все-таки сделал свою страничку (и даже вопрос послал на Rusfaq, но только сегодня, поэтому читатели его еще не получили). Так что скачай с нее:
http://bobjohnson.nm.ru
Звонилки там пока нет, но скоро будет :-).
Ответ отправлен: 05.01.2003, 13:07
Отправитель: Bob Johnson
Вопрос № 2329 |
Здравствуйте Уважаемый Andrew Vext!
Извиняюсь за то, что я вас назвал подписчиком, на знал.
А то что вы делаете-это хорошо, так как иногда не всегда имеется возможность приобрести печатные издания.
А если не сикрет, с какого интереса вы это делаете?
Спасибо за то, что вы делаете!
ЗЫ: Рис 14 и 15 не отображаются.
Вопрос отправлен: 04.01.2003, 09:34
Отправитель: Рифат
[Следующий вопрос >>] [Список вопросов]
Отвечает Andrew Vext
Добрый день, Рифат!
Не секрет. На основной работе я занимаюсь разработкой софта для конвертации отсканированых печатных изданий в различные форматы (chm, pdf, html, djvu и т.д.) Вы видите на сайте результаты тестирования софта (просто стереть жалко - вот и выкладываю).
ЗЫ Рис 14 и 15 поправлены.
Ответ отправлен: 04.01.2003, 11:49
Отправитель: Andrew Vext
Вопрос № 2330 |
Доброе время суток Bob Johnson!
Указываю->http://netlib.wallst.ru/
Добрый человек скоро закончит работу.
Спасибо ему за ЭТО!
Вопрос отправлен: 04.01.2003, 09:39
Отправитель: ЧЧЧЧЧ
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, ЧЧЧЧЧ!
Благодарю. Это, как я припоминаю, ссылка, где выкладывают книгу Зубкова.
Ответ отправлен: 05.01.2003, 13:08
Отправитель: Bob Johnson
Вопрос № 2331 |
Привет всем!!!
Наконец-то это случилось и я создал свою страничку, где разместил самые часто спрашиваемые у меня файлы.
Напоминаю, что это лабораторные работы, "чижик" на флопи-дисководе и небольшое описание, как самому создать драйвер для 9х.
Поэтому прошу заходить:
http://bobjohnson.nm.ru
Удачи и с Новым Годом!!!
Вопрос отправлен: 04.01.2003, 16:42
Отправитель: Bob Johnson (BobJohn@Newmail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает igorash
Доброе время суток, Bob Johnson!
Wow, неужели вопросов в 2 раза меньше станет?? ;)
Ответ отправлен: 04.01.2003, 17:40
Отправитель: igorash
Отвечает Igoryk
Доброе время суток, Bob Johnson!
Вопросов 100 наверное отпадет. Теперь будут задавать вопросы, а EXперты будут посылать на сайт. :) Сайт хороший. Недостаток: долго грузится.
Ответ отправлен: 04.01.2003, 17:59
Отправитель: Igoryk
Отвечает masquer
Добрый день, Bob Johnson!
Ой на скриптах все как некрасиво в опере смотрится, особенно marquee :(
Теперь главное чтобы трафик nm выдержал :)
Ответ отправлен: 05.01.2003, 15:07
Отправитель: masquer
Вопрос № 2332 |
Здравствуйте, вот я всё мучаюсь с коммандной строкой сом программы... вот моё творение, я его оптимизировал как мог, может быть можно его ещё оптимизировать ?
#####################################################
;fasm prog.asm prog.com
org 0x100
movsx di, byte [0x80]
add di, 0x0081
mov byte [di], '$'
mov dx, 0x0081
mov ah, 0x09
int 0x21
int 0x20
####################################################
и тут у меня появилась новая идея, вот она
####################################################
org 0x100
movsx cx, byte [0x80]
mov di, buffer
add di, cx
mov byte [di], '$'
mov si, 0x82
mov di, buffer
rep movsb
mov ah, 0x09
mov dx, buffer
int 0x21
int 0x20
buffer db ?
###############################################
вроде тут всё работает, но тоже кажется не оптимизированным... а основной вопрос вот в чём:
код который будет располагаться за меткой буффер затрётся ?
если да, то как зарезервировать для него место ?
я делал так, но тогда что-то глючит...допустим резервируем 10 байт:
##################################################
org 0x100
mov cx, 10
mov si, 0x82
mov di, buffer
rep movsb
mov ah, 0x09
mov dx, buffer
int 0x21
int 0x20
buffer rb 10
stop db '$'
################################################
он почемуто помнит предыдущие символы...
Вообще дальнейшей целью всего этого, будет написание процедуры, которая создаст буффер по длине командной строки и скопирует её туда...
и попутно у меня возникла пара вопросов:
1. почему нельзя использовать для адресации памяти любые регистры, например ах ?
строка mov byte [ax], '$' ; выдаёт ошибку :
error: reserved word used as symbol.
или illegal instruction....(fasm)
2. почему нельзя mov memory, memory ?
mov [x1], [x2]
x1 db ?
x2 db 1
####################################################
заранее спасибо !
Вопрос отправлен: 04.01.2003, 17:31
Отправитель: spaces (s-p-a-c-e-s@narod.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, spaces!
1. Твои проблемы начнутся, когда в командной строке появится бакс ($). Сам понимаешь...
2. Ты не знаешь, сколько займет у тебя ком строка, поэтому и байт не знаешь, сколько надо. ты мог бы использовать динамическое выделение памяти, но тут это неэффективно. Обычно выделяют столько памяти, чтобы хватило для строки максимальной длины (а это - около 128 байт).
3. Адресоваться по ax нельзя. Так уж придумали 8086. Зато начиная с 80386 можно адресоваться по eax. Если уж совсем не хватает регистров - используй их:
xor eax, eax; eax = 0
...
mov ax, offset ...
mov [eax], cx
mov [eax + 5], dx
...
4. mov [x1], [x2] - это уже слишком жирно. Тогда может еще и так бы сделать:
mov [[eax] + [ebx*7] + offset my_label], eax + [[ebx]]]???
Всегда есть предел возможностям процессора.
Ответ отправлен: 05.01.2003, 13:08
Отправитель: Bob Johnson
Отвечает Max
Добрый день, spaces!
1 есть некие правила или режимы адресации.
Адресовать можно только через регистры BX,DI,SI,BP остальные регистры адресовать память немогут.
2 Представь себе , что можно было бы сделать так
mov [bx],[di]
тогда навязывается один вопрос - а нахера тогда ваще нам нужен процессор ???!!!!
Ты не можешь переслать ни одного байта из памяти в память минуя проц.
Ответ отправлен: 04.01.2003, 19:57
Отправитель: Max
Отвечает Ayl
Здравствуйте, spaces!
Начну с конца. Почему нельзя - это вопрос к разработчикам процессора. Возможно, просто нехватило разрядов, возможно, фантазии. В общем, нельзя. Нет таких команд. Для 386 процессора и выше для косвенной адресации можно использовать любой 32-разрядный регистр. А 16-разрядные все равно нельзя.
Пересылка память-память допустима только для строковых команд. В других случаях требуется промежуточная запись в регистр. Причина - возможно, упрощение системы команд (в машинном представлении), возможно, ограничения по работе с памятью.
В Приложении см, как можно немного пооптимизировать.
Насчет буфера. Место под буфер можно отвести так:
buffer db N dup (?)
где N - размер буфера.
Либо выделять динамически во время работы программы.
Приложение:
Ответ отправлен: 04.01.2003, 18:16
Отправитель: Ayl
Отвечает Traish
Добрый день, spaces!
1. По поводу оптимизации. Я, кажется, советовал использовать movzx. Хотя movsx здесь, в принципе, делает тоже самое - распространяет 0 на свободные старшие разряды.
Если введешь больше символов, чем отвел под буфер - затрется то, что после него. Только кода в данном случае там нет.
2. Не все 16-разрядные регистры (в отличии от 32-разрядных) можно использовать при косвенной адресации.
Приложение:
Ответ отправлен: 04.01.2003, 20:04
Отправитель: Traish
Отвечает ASMодей
Добрый день, spaces!
Вот первый вариант, слегка оптимизированный:
org 0x100
movzx di,byte [0x0080]
mov byte [di+0x81], '$'
mov dx, 0x0081
mov ah, 0x09
int 0x21
ret
Вот третий вариант без затирания и лишних символов:
org 0x100
mov si, 0x0082
movzx cx,byte [si-0x02]
mov di, buffer
mov dx,di
rep movsb
mov byte [di],'$'
mov ah, 0x09
int 0x21
ret
buffer rb 10
Теперь вопросы:
1. Да, с 16-разрядными регистрами такое не пройдет, но с
32-разрядными - запросто.
2. А вот это уже вопрос к Intel. Действительно во всех
процессорах этой компании присутствует такое ограничение.
Ответ отправлен: 04.01.2003, 20:09
Отправитель: ASMодей
Отвечает Eugene
Приветствую Вас, spaces!
1)Прооптимизировать можно вот так:
org 0x100
mov cl, byte [0x80]
mov bl, 1
mov dx, 0x0081
mov ah, 0x40
int 0x21
ret
Занимает 14 байт вместо прежних 21.
2)Код затрётся.
3)Конечно он будет помнить то, что там было. Чтобы этого не произошло, надо насильно инициализировать память нулями. Например так:
buffer: times 10 db 0
4) и 5) В силу архитектурных тонкостей строения процессора.
Ответ отправлен: 06.01.2003, 12:48
Отправитель: Eugene
Вопрос № 2333 |
Ребят, может кто-нибудь писал клавиатурную переключалку под Win32 на Асме. От проги необходимо только переключение клавиатуры по CapsLock'y и висение в трее. Исходников не надо. Хочется поиметь такую прожку взамен стандартного Виндузового переключателя или имеющихся монстров на просторах Шаровар. Хочется маленькую, быструю, неглючную. :) Может у кто-нибудь напишет? Пиво, водка шоколад за мной. Все могу залить по почте. :)
Вопрос отправлен: 04.01.2003, 19:50
Отправитель: BuTbKA
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, BuTbKA!
Знаешь, есть такая интересая прога, как punto switcher - она переключает клавиатуру в зависимости от того, что ты набираешь (исправляя при этом неправильный язык). Попробуй ее (кажется www.punto.com). Она как раз в трее висит и еще у нее много всяких возможностей. Занимает около 250 кб.
Ответ отправлен: 05.01.2003, 13:09
Отправитель: Bob Johnson
Отвечает masquer
Здравствуйте, BuTbKA!
Давай точное техзадание, глядишь, кто и возьмется. Тут делов на полчаса, если не сильно наворачивать.
Ответ отправлен: 05.01.2003, 15:30
Отправитель: masquer
Отвечает Igoryk
Здравствуйте, BuTbKA!
Есть у меня такая в разработке. Ты только напиши на почту igoryk@yandex.ru - правильно ли я понял, что если Caps Lock On, то допустим раскладка Ru, и наоброт. Или ты хочешь, чтобы при любом нажатии Caps Lock Менялась раскладка?
Ответ отправлен: 06.01.2003, 12:41
Отправитель: Igoryk
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (37) C / C++ (29) Perl (4) Delphi (22) Pascal (23) Basic / VBA (11) Java / JavaScript (7) PHP (3) MySQL / MSSQL (5) |
Пользователю Windows 95/98/Me (35) Windows NT/2000/XP (27) "Железо" (33) Поиск информации (16) |
Администратору Windows NT/2000/XP (12) Linux / Unix (16) |
Юристу Гражданское право (8) Семейное право (5) Трудовое право (4) КоАП (3) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||