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

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


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

Ассемблер? Это просто! Учимся программировать (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

Подписаться на рассылки

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

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

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

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


Ваше имя *:

Ваш e-mail *:

Подгруппы:

Вопрос *:

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


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

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


Ведущий рассылки,

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

______________

По вопросам сотрудничества, рекламы и спонсорства обращайтесь:

  1. Публичное размещение материала из рассылки: Cooperation@Kalashnikoff.ru
  2. Реклама на сайте, в книге и рассылках: http://www.Kalashnikoff.ru/Reklama.html, Reklama@Kalashnikoff.ru
  3. Издание книги (спонсорство): Sponsor@Kalashnikoff.ru

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


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


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

В избранное