Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
Ассемблер? Это просто! Учимся программировать (FAQ)
Выпуск N 072 |
Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"
Дата выхода: 2001-08-26
Вопрос №632
мС БННАЫЕ-РН ЩРН МЕ БНОПНЯ - РЮЙ ЙЮЙ ЩЙЯОЕПРНЛ МЕ ЪБКЪЧЯЭ, РН УНРЕК АШ ОНОПЮБХРЭ ЩЙЯОЕПРЮ DRON'Ю:
РЕЛЮ: F0 0F C7 C8
>> ЙЯРЮРХ Н ЙЮЙНЛ 64-АХРМНЛ НОЕПЮМДЕ ПЕВЭ??? ЩРН ФЕ МЕ >> P4!!!
F0 0F C7 C8 - lock cmpxchg8b ax
РЮЙ ЙЮЙ НАЛЕМХБЮЧРЯЪ 8 АЮИР, РН БНР РБНИ 64-АХРМШИ НОЕПЮМД...
х ШЬЬН - Ю P4 - НМ ВРН 64-АХРМШИ??? юМ МЕР - НМ РНФЕ 32-АХРЮ... лНФЕР Я Itanium ОЕПЕОСРЮК? :)
Ответ
Здравствуйте, MB!
Перешли пожалуйста письмо в кодировке Koi 8-R..
Не могу прочитать!
Отправил эксперт: Michael
Эксперт отправил ответов (всего): 3
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №623
В книге М. Гука "Аппаратные средства IBM PC" я прочитал об ошибке процессоров Pentium при обработке кода F0 0F C7 C8. Это код приводил Pentium к зависанию (т.к. пытался сравнить 32-битный операнд с 64-битным). Там же говорилось, что в Pentium Pro и Pentium II этой ошибки нет. Я запустил этот код у себя на Celeron Mendocino - под Windows и DOS. Windows ругнулся и закрыл приложение, а DOS завис! Спрашивается почему? Ведь Celeron - модификация Pentium II. И какое имеет значение, под какой операционной системой запускается код, ведь ошибка процесора или есть или нет.
Ответ
Здравствуйте, Wolf!
Понимаешь,Сeleron-> не совсем Pentium 2
По большому счёту, Pentium 2 по архитектуре проще Pentium Pro
а Celeron-> урезанный P2,причём иногда складывается впечатление,
что не только Cash подрезали...но и некоторые команды...
поэтому...сам видишь!
Желаю удачи!
Отправил эксперт: Michael
Эксперт отправил ответов (всего): 7
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №634
УВАЖАЕМЫЕ ЭКСПЕРТЫ!
Огромное всем СПАСИБО. Но, судя по ответам, моим файлам – ХАНА!
Вчера был на Савке (в Савелово), где получил несколько иную информацию.
Естественно, приоритет отдаю Вам и только Вам.
Но, к сожалению, у меня нет возможности работать на другой машине, пашу на своей, а значит – гублю свои утерянные папки бесповоротно и окончательно…
Есть копия проги трехлетней давности, но это сравнимо с каменным веком, и все придется начинать сначала. А все статьи и все-все (ведь это наука) полетело к чертовой матери.
Хотя, сегодня попытаюсь что-то сделать. Интернет - ночной, ответы только-только получил, за что - тысячу раз спасибо. Участие и доброе слово и кошке приятно...
За сим остаюсь с уважением ко всем, Николай.
Ответ
Уважаемый Николай!
...я не хотел бы тревожить прошлое, заставлять вас возвращаться к пережитому ужасу и кошмару.....но...у меня к Вам не то что бы вопрос, а скорее даже просьба, расскажите пожалуйста: КАКИМ ОБРАЗОМ ТРУДЫ ЗА 3 ГОДА (ПРИЧЕМ НАУЧНЫЕ ТРУДЫ!) ОКАЗАЛИСЬ ТОЛЬКО В ОДНОЙ ПАПКЕ, ВСЕ РАЗОМ НА ОДНОМ ВИНТЕ, БЕЗ РЕЗЕРВНОЙ КОПИИ ДАЖЕ НА ПРОСТЕЙШЕЙ 3''5 ДИСКЕТКЕ... может быть, вы их еще хранили в WINDOWS/TEMP ??? (кстати встречаются и такие кадры!!!)ведь это же просто неприлично...
но самое главное ни в этом: каким образом можно СЛУЧАЙНО (!) удалить целую папку, с такими непосильными трудами??? СлучайнО нажали Del, а потом случайнО очистили корзину? неверю! может вирус? тогда если это такой злостный вирь, убивающий папки, вы б к нам еще не скоро смогли обратиться за помощью...
конечно, если к компу время от времени подходит нечто женского роду - то это в корне меняет дело!!! тут уж все как и положено; было бы странно, если бы научные труды исчезли ТОЛЬКО через год или два...
вообщем, интересно было бы услышать вашу историю...
Отправил эксперт: Broken Sword (www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 85
Экспертная группа: Пользовательская работа с Windows
Вопрос №636
Здравствуйте, уважаемые эксперты.
Решил недавно написать резидент для псевдо-русификации символов на экране. Т.е. русскую "В" он бы заменял на английскую "B". Вроде бы написал, вроде бы он работает. Но не так, как надо. Дело в том, что он все символы кириллицы, для которых я предусмотрел изменение, переводит в один из нескольких символов из общей (международной) части таблицы ASCII. Вобщем, вместо русских букв - мусор. Помогите разобраться.
Ответ
Здравствуйте, Сергей!
Вся фигня из-за того, что xlat берет не по ds:bx, а из cs:bx, а lea наоборот. Вот вроде бы работает. Оптимизируй!!!!!!!!!!!!!!!!!
Приложение:
Отправил эксперт: Painbringer
Эксперт отправил ответов (всего): 61
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №634
УВАЖАЕМЫЕ ЭКСПЕРТЫ!
Огромное всем СПАСИБО. Но, судя по ответам, моим файлам – ХАНА!
Вчера был на Савке (в Савелово), где получил несколько иную информацию.
Естественно, приоритет отдаю Вам и только Вам.
Но, к сожалению, у меня нет возможности работать на другой машине, пашу на своей, а значит – гублю свои утерянные папки бесповоротно и окончательно…
Есть копия проги трехлетней давности, но это сравнимо с каменным веком, и все придется начинать сначала. А все статьи и все-все (ведь это наука) полетело к чертовой матери.
Хотя, сегодня попытаюсь что-то сделать. Интернет - ночной, ответы только-только получил, за что - тысячу раз спасибо. Участие и доброе слово и кошке приятно...
За сим остаюсь с уважением ко всем, Николай.
Ответ
Здравствуйте, Николай!
Если у Вас на винте много свободного места то может быть еще и нет!!! Последний шанс использовать Tiramisu!
Отправил эксперт: Painbringer
Эксперт отправил ответов (всего): 62
Экспертная группа: Пользовательская работа с Windows
Вопрос №633
Дарова, коллеги :)
Я тут решил под Сегу попрограммировать..
Из всех имеющихся у меня компиляторов, только один - да
и тот кривой :(
Решил написать свой, но обнаружил полное отсутствие на моЈм
винте какой-либо доки по опкодам Motorol'овского проца :(
Может у кого есть? Или ссылки подкиньте!
Ответ
Здравствуйте, Nik!
Можешь попробывать взять документацию налюбую микруху, на мотороловском сайте:www.mot.com .Там на не которые высылают бесплатные сидиромы с полным описанием. Жалко, что всё на английском.
Отправил эксперт: Gemeni
Эксперт отправил ответов (всего): 6
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №637
Привет всем.
Я имею несколько вопросов:
1. КАКОЙ int (16h,09h...) вызывается в Dos и какой в Windows ?
2. Вот в Pascal и в Delphi есть такая функцйя Randomize(x), а в Assembler ? Я вам ответю: НеТ. Но может вы експерты имейте этот алгоритм , если да то пришлите его ко мне. Please , он мне очень нуженю
3. Знаит кто небуть программу каторая зоменяет клавиша на клавиатуре.
Ответ
Здравствуйте, denis!
1.Чо за дурацкий вопрос! Будем считать, что я его не видел!
2.Используй прерывание для определения времени(под DOS), на че нить подели, затем умнож на предыдущий и чо то вроде random(x) получится, ну а если не получится пиши ещё раз - алгоритм напишу, а то щас всё влом!
3.Тебе их на железные заменить что ли надо?
Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 36
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №637
Привет всем.
Я имею несколько вопросов:
1. КАКОЙ int (16h,09h...) вызывается в Dos и какой в Windows ?
2. Вот в Pascal и в Delphi есть такая функцйя Randomize(x), а в Assembler ? Я вам ответю: НеТ. Но может вы експерты имейте этот алгоритм , если да то пришлите его ко мне. Please , он мне очень нуженю
3. Знаит кто небуть программу каторая зоменяет клавиша на клавиатуре.
Ответ
Здравствуйтею, denis!
1. В голам Windows никаке int вобще не вызываються, в режимэ емуляции MSDOS - все int, что и в DOS (т.е. все, для которих уже прийдумали какие-либо действья).
2. В Assembler дийствително нет такой пункции, но я его дествително иймею! вот тебе адин из папулярных алгоретмов.
3. Я знаию!!!
з.ы. я б на твоем месте падучил б руский язик.
Приложение:
Отправил эксперт: Broken Sword (www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 86
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №642
Не подскажите как переключать в MSDOS раскладку клавиатур с
английского на русский. А то надоело писать выводы сообщения функции 9 прерывания 21h только на английском языке?
Ответ
Здравствуйте, Speedy Gonsalez!
Левые ctrl+shift - english
Правые ctrl+shift - русский
Отправил эксперт: Alexety
Эксперт отправил ответов (всего): 2
Экспертная группа: Пользовательская работа c DOS
Вопрос №642
Не подскажите как переключать в MSDOS раскладку клавиатур с
английского на русский. А то надоело писать выводы сообщения функции 9 прерывания 21h только на английском языке?
Ответ
Здравствуйте, Speedy Gonsalez!
Смотря какой дривер юзишь, обычно при запуске keyrus.com или rk.com и др. дриверов для клавы, выводится окно-подсказка как переключится на тот или иной расклад (для keyrus по моему лев.шифт+лев.ктрл)
Отправил эксперт: Broken Sword (www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 87
Экспертная группа: Пользовательская работа c DOS
Вопрос №640
Здравствуйте !!!
При закрытии Word'а('97), если в нЈм создать какой-нибудь документ выдаЈтся ошибка:
" Программа WINWORD вызвала сбой при обращении к странице памяти
в модуле VBA332.DLL по адресу 0167:651b417b.
Регистры:
EAX=a0000001 CS=0167 EIP=651b417b EFLGS=00010246
EBX=00437658 SS=016f ESP=0062da90 EBP=00000000
ECX=00424d64 DS=016f ESI=004249f2 FS=20e7
EDX=00000000 ES=016f EDI=0040001c GS=0000
Байты по адресу CS:EIP:
ff 50 04 66 8b 0e 66 8b 44 24 14 66 8b d1 66 83
Содержимое стека:
0040001c 00437658 00000000 00000004 651a756f 00000000 00000000 0062dae4 0062daec 00000000 00423e50 00000000 651776c7 00000000 0062dae4 00000000 ".
Если ничего не создавать, а просто зайти и выйти, то всЈ нормально.
Что делать то?
С уважением,Дмитрий Николаевич Борисов.
Ответ
Дмитрий Николаевич! А зачем, собственно, что то делать? Просто когда закрывается Word, а в нем какой либо документ не сохранен, то Word сам запрашивает подтверждение, типа действительно ли нада выходить не сохраняя? Так вот при вызове этого окна с сообщением и возникает скорее всего эта ошибка, поэтому надо просто сохранить предварительно документ, чтоб выходить без вопросов.
Отправил эксперт: Broken Sword (www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 88
Экспертная группа: Пользовательская работа с Windows
Вопрос №640
Здравствуйте !!!
При закрытии Word'а('97), если в нЈм создать какой-нибудь документ выдаЈтся ошибка:
" Программа WINWORD вызвала сбой при обращении к странице памяти
в модуле VBA332.DLL по адресу 0167:651b417b.
Регистры:
EAX=a0000001 CS=0167 EIP=651b417b EFLGS=00010246
EBX=00437658 SS=016f ESP=0062da90 EBP=00000000
ECX=00424d64 DS=016f ESI=004249f2 FS=20e7
EDX=00000000 ES=016f EDI=0040001c GS=0000
Байты по адресу CS:EIP:
ff 50 04 66 8b 0e 66 8b 44 24 14 66 8b d1 66 83
Содержимое стека:
0040001c 00437658 00000000 00000004 651a756f 00000000 00000000 0062dae4 0062daec 00000000 00423e50 00000000 651776c7 00000000 0062dae4 00000000 ".
Если ничего не создавать, а просто зайти и выйти, то всЈ нормально.
Что делать то?
С уважением,Дмитрий Николаевич Борисов.
Ответ
Здравствуйте, Дмитрий Николаевич Борисов!
Такая лажа бывает и, если слишком часто повторяется, то есть неплохой выход, специально предназначенный, если вылетает одна из прог Office'a:)
Зайдите в папку Панель управления, затем Установка и Удаление программ, найдите пункт Стандартный выпуск Microsoft Office и нажмите на него, вам предложат восстановить MS Word, так и сделайте и всё будет в порядке..
Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 37
Экспертная группа: Пользовательская работа с Windows
Вопрос №642
Не подскажите как переключать в MSDOS раскладку клавиатур с
английского на русский. А то надоело писать выводы сообщения функции 9 прерывания 21h только на английском языке?
Ответ
Здравствуйте, Speedy Gonsalez!
Чо то я сомневаюсь, что вас интересует, как в MSDOS переключить раскладку на русский, используя комбинацию, т.к. для 9 функции это никак не поможет! Наверное просто у вас DOS не поддерживает русский, т.е. не загружена кодовая страница или драйвер! Если так, то задайте вопрос иначе..
Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 38
Экспертная группа: Пользовательская работа c DOS
Вопрос №637
Привет всем.
Я имею несколько вопросов:
1. КАКОЙ int (16h,09h...) вызывается в Dos и какой в Windows ?
2. Вот в Pascal и в Delphi есть такая функцйя Randomize(x), а в Assembler ? Я вам ответю: НеТ. Но может вы експерты имейте этот алгоритм , если да то пришлите его ко мне. Please , он мне очень нуженю
3. Знаит кто небуть программу каторая зоменяет клавиша на клавиатуре.
Ответ
Здравствуйте, denis!
Привед тибе, о гумоноед!!! Ты по русски сказать где учился!? А кокой инт тибе нужин? Так вот инт 9 - это прерывание клавы (аппаратное IRQ 1). Int 16h - прерывание для вызова функций биоса обслуживающих клаву. А вызываются они и в ДОСи и в Виндоувсе.
2) Я подозриваю чё ты догадываться чё функцйя RANDOMIZE инициализирует генератор случайных чисел посредством таймера. Иё риализация на асемблире зависет от того каким ты генератором случайных чисил пользуишся (грубо говоря берешь с таймира число и пишишь иго как начальнае значение для сваиво гиниратера).
Если же ты спрашиваешь как сделать генератор то можешь воспользоваться генератором Льюиса, Гудмана и Миллера или Парка и Миллера (почитай Кнута ("Искусство программирования") или хотя бы Зубкова).
3) А вот чтобы заменить клавишу на клавиатуре я бы посоветовал тебе молоток, зубило и отвертку!!!
Отправил эксперт: Painbringer
Эксперт отправил ответов (всего): 63
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №644
Доброго времени суток коллеги.
Типа вот такой детский вопрос возник. Имеется (точнее пока не имеется) резидент, который при ВВОДЕ ОПРЕДЕЛЕННОГО СИМВОЛА (',') допихивает в буффер клавы еще несколько символов. Внимание вопрос:
Куда его лучше повесить (трабла в том что везде блин скан коды)?
Как считать код символа (ASCII), а не скан код в теле резидента?
Заранее спасибо.
Ответ
Здравствуйте, Painbringer!
В данном случае удобно использовать int 16h:)
1)Ah=10h - чтение символа с ожиданием.
Выход: Al=ASCII-код символа или 0
Ah=скан-код нажатой клавиши или расш. ASCII-код
2)Ah=11h - проверка символа
Выход:ZF=1, если буфер пуст, иначе возврат как в 1.
3)Ah=05h - поместить символ в буфер клавы.
Ch=скан-код(можно 0, если 11h и 10h будут при чтении использовать только ASCII-код)
CL=ASCII-код
Выход:Al=00 - без ошибок.
Al=01 - буфер переполнен.
С уважением, Orlando!
Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 39
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Подписаться на рассылки
Форма подачи вопроса
ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!
Регистрация в качестве эксперта
Архив выпусков
Ведущий рассылки,
Калашников Олег:
Assembler@Kalashnikoff.ru
ICQ No.: 68951340
URL сайта подписчиков:
http://www.Kalashnikoff.ru
______________
По вопросам сотрудничества, рекламы и спонсорства обращайтесь:
- Публичное размещение материала из рассылки: Cooperation@Kalashnikoff.ru
- Реклама на сайте, в книге и рассылках: http://www.Kalashnikoff.ru/Reklama.html, Reklama@Kalashnikoff.ru
- Издание книги (спонсорство): Sponsor@Kalashnikoff.ru
(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав. |
Реклама на сайте Kalashnikoff.ru
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу | Рейтингуется SpyLog |
В избранное | ||