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

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


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

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 264
от 15.10.2005, 17:54

Администратор:Калашников О.А.
В рассылке:Подписчиков: 267, Экспертов: 28
В номере:Вопросов: 2, Ответов: 7


Вопрос № 27468: Здравствуйте, уважаемые, эксперты! Начал изучать ассемблер с азов. Возник вопрос, а для чего нужен и обрытный код, и дополнительный код представления чисел? Сразу уточню, не чем они отличаются, а к чему они оба нужны. ...
Вопрос № 27499: Здравствуйте, уважаемые, эксперты! Неоднократно встречал информацию, что в ассемблерной программе, работающей под Windows XP, не выполняются команды IN AX, 3FCh ; OUT 3FCh, AX. Но не могу понять почему. Разъясните, пожалуйста. Подскажите, что нужно с...

Вопрос № 27.468
Здравствуйте, уважаемые, эксперты!

Начал изучать ассемблер с азов.
Возник вопрос, а для чего нужен и обрытный код, и дополнительный код представления чисел? Сразу уточню, не чем они отличаются, а к чему они оба нужны.
Отправлен: 09.10.2005, 20:51
Вопрос задал: Демченко Артем (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Boriss
Здравствуйте, Демченко Артем!
Да нет, отличаются - Вы были невнимательны, когда читали об этом :))
Чтобы убедиться в этом, напишите такой код и посмотрите в отладчике
not ax - получается обратный код
neg ax или mov ax,-10 - дополнительный
С использованием дополнительного кода в процессоре избавились от операции вычитания
Получением обратного кода вместе с операцией and можно, например, снять бит
Да и видел я графопостроитель, которому нужно было задавать отрицательные перемещения в обратном коде (давно списан и разобран уже)

Приложение:

---------
Прорвемся! (Быть может :(( )

Ответ отправил: Boriss (статус: Профессор)
Отправлен: 10.10.2005, 11:43
Оценка за ответ: 4
Комментарий оценки:
Спасибо. Но вопрос был не про отличия.

Отвечает: P0pdb
Здравствуйте, Демченко Артем!
Начал изучать ассемблер с азов.
Возник вопрос, а для чего нужен и обрытный код, и дополнительный код представления чисел? Сразу уточню, не чем они отличаются, а к чему они оба нужны
Ответ!
Обратный код нужен для того чтобы в вирусных или неправильных прогах востанавливать регистры которые вы задействывали если это com проги! Ясно?
---------
Что посеешь то и пожмешь!
Ответ отправил: P0pdb (статус: 2-ой класс)
Отправлен: 10.10.2005, 21:38
Оценка за ответ: 5
Комментарий оценки:
Спасибо!

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Демченко Артем
Дополнительный код нужен для представления отрицательных чисел, чтобы сумма знакового числа и его дополнительного кода была равна нулю (как 2+(-2) = 0). Используется чаще всего в знаковой арифметике.
Обратный же код нужен для инвертирования всех бит беззнакового числа. Используется чаще всего для формирования масок.

---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: 4-ый класс)
Отправлен: 12.10.2005, 20:55


Вопрос № 27.499
Здравствуйте, уважаемые, эксперты! Неоднократно встречал информацию, что в ассемблерной программе, работающей под Windows XP, не выполняются команды IN AX, 3FCh ; OUT 3FCh, AX. Но не могу понять почему. Разъясните, пожалуйста. Подскажите, что нужно сделать, чтобы выполнялись.
Отправлен: 10.10.2005, 11:53
Вопрос задал: Zaruba Vyacheslav (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: P0pdb
Здравствуйте, Zaruba Vyacheslav!
Уважаемый пришлите мне на внутренюю почту скрипт этой проги и я попробую скампить его!
Но у меня есть большое подозрение что вы не правилно написали каманды IN и OUT я лично таких еще не встречал!
---------
Что посеешь то и пожмешь!
Ответ отправил: P0pdb (статус: 2-ой класс)
Отправлен: 10.10.2005, 14:32
Оценка за ответ: 4

Отвечает: Евгений Иванов
Здравствуйте, Zaruba Vyacheslav!
Это вроде com-порт.
для win-систем вообще-то нужно создавать драйвер.
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 10.10.2005, 14:37
Оценка за ответ: 3

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Zaruba Vyacheslav!

Дело в том, что команды IN, OUT и ряд других являются привилигированными. В защищенном режиме работы процессора (в котором иработает Windows) эти команды работатают только в, так называемом, нулевом кольце защиты. Другими словами они свободно доступны только драйверам. Пользовательские программы, которые работают в третьем кольце защиты, не могут их просто так использовать.

Но не все так плохо, как я уже отвечал в вопросе 27026 :)
Неплохим вариантом считаю использование специального драйвера, задача которого состоит в подправке специальной таблицы, в результате чего твоя программа сможет оперировать с портами, как в старом, добром ДОС-е
Если надо, пиши, вышлю.
PS. Если хочешь разобраться, читай про защищенный режим процессора.
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: 4-ый класс)
Отправлен: 10.10.2005, 15:20
Оценка за ответ: 5

Отвечает: Юра Устинов
Здравствуйте, Zaruba Vyacheslav!
Во-первых, работа с портами, если вы пишите под WINDOWS, можно реализовать только на уровне драйвера.
Во-вторых, если вы пишите под ДОС, то с некоторыми портами WINDOWS запрещает общаться, например, вы можете запрограммировать динамик, но не можете клавиатуру. Попробуй запустить это в ДОСе.
И вот ещё, что, если тебе нужно сделать запись или чтение из порта можно обойтись без асмы.
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1126
Зайди по этой ссылке и ты узнаешь как сделать твою задачу.


---------
Спасём Россию!!!
Ответ отправил: Юра Устинов (статус: 2-ой класс)
Отправлен: 12.10.2005, 05:49
Оценка за ответ: 5


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Архив рассылки
Отписаться
Вспомнить пароль

В избранное