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

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


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

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 661
от 20.01.2007, 16:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 374, Экспертов: 34
В номере:Вопросов: 4, Ответов: 5


Вопрос № 70890: как расчитать: есть координаты курсора x1 и у1, х2 и у2. и координаты формы х3 и у3.. надо: w=х3+(х2-х1) h=у3+(у2-у1) в скобках может получиться "-" поетому я так думаю арифметические вычисления надо делать с учетом ...
Вопрос № 70898: Здравствуйте ЭКСПЕРТЫ!!!=) это снова я у меня вопрос по маленькой проге задача:проверь какое самое большое число с блоке от 600H и в размере 200 байтов.поставь в регистр AL это число а в регистр BX напиши каличество раз сколько это число ...
Вопрос № 70996: добрый день!Обясните пожалуйста 1 момент:зачем в прграмме обраб. прерываний менять ds на cs (в Ok_9h: )?...
Вопрос № 71009: Здравствуйте, Мне нужно делать запись в секцию code. Можно ли задать директивы при компиляции [MASM32], а то надоело менять параметры секции через Pe Tools?...

Вопрос № 70.890
как расчитать:
есть координаты курсора x1 и у1, х2 и у2.
и координаты формы х3 и у3..
надо:
w=х3+(х2-х1)
h=у3+(у2-у1)
в скобках может получиться "-" поетому я так думаю арифметические вычисления надо делать с учетом знака... но я не нашел функции сложения и вычитания с учетом знака.

Сам что то делал но так ниче не получалось!
Заранее спасибо
Отправлен: 14.01.2007, 16:19
Вопрос задал: Gwest (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: ramok
Здравствуйте, Gwest!
Дело в том что отрицательные числа представляются "дополнительным кодом".
Почитать об этом:
ссылка
рекомендую с ручкой и бумажкой опробывать как это работает, сложив/отняв пару чисел. потому что на первый вгляд это сложно для понимания.

В силу свойств этого кода, вы можете работать с положительными и отрицательными числами так же как и с только положительными, теми же командами add, sub и так далее.
Если резултьтат этих команд будет отрицательным, то установится флаг signed который можно проверить комендами js/jns.
Ответ отправил: ramok (статус: 9-ый класс)
Ответ отправлен: 14.01.2007, 19:26
Оценка за ответ: 5
Комментарий оценки:
спасибо


Вопрос № 70.898
Здравствуйте ЭКСПЕРТЫ!!!=)
это снова я
у меня вопрос по маленькой проге
задача:проверь какое самое большое число с блоке от 600H и в размере 200 байтов.поставь в регистр AL это число а в регистр BX напиши каличество раз сколько это число встречается в блоке
б)измени один приказуказание чтобы получить самаю маленькую цифру в блоке.
как такое написать?если можно напишите прогу+объяснения как она работает..
помогите плизик
ато я совсем запуталась..
спасибо!(прогу можно прислать мне на почту,сюда или по мылу на lena152006@yandex.ru)

Приложение:

Отправлен: 14.01.2007, 16:41
Вопрос задала: TDK (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: IceWolf
Здравствуйте, TDK!
В приложении код с комментариями, который ищет самую маленькое(большое) число в блоке байт. Для удобства чтения скопируйте в текстовый редактор.
С уважением, IceW0|f.

Приложение:

---------
Идеальных защит не существует, ибо то, что создано человеческим разумом, им же будет и разрушено!

Ответ отправил: IceWolf (статус: 6-ой класс)
Ответ отправлен: 14.01.2007, 20:11


Вопрос № 70.996
добрый день!Обясните пожалуйста 1 момент:зачем в прграмме обраб. прерываний менять ds на cs (в Ok_9h: )?

Приложение:

Отправлен: 15.01.2007, 10:01
Вопрос задал: ATZATZ (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Евгений Иванов
Здравствуйте, ATZATZ!

Потому что в момент прерывания регистры имеют совершенно случайное значение. Нужно провести установку начальных нужных тебе значений.
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +78313145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская
WWW: Eugene Ivanov
ICQ: 214889076
----
Ответ отправлен: 15.01.2007, 10:42
Оценка за ответ: 5

Отвечает: ramok
Здравствуйте, ATZATZ!

DS будет указывать на сегментный регистр программы которая вызвала int 21h. В этом примере используется переменная M_Mess
mov dx,offset M_Mess
смещение которой компилятор посчитает относительно ds(который у вас равен cs) вашего резедента, а не программы вызвавшей int 21h.
Поэтому нужно временно установить ds правильное для вашего резидента значение
Ответ отправил: ramok (статус: 9-ый класс)
Ответ отправлен: 15.01.2007, 12:25
Оценка за ответ: 5


Вопрос № 71.009
Здравствуйте,
Мне нужно делать запись в секцию code.
Можно ли задать директивы при компиляции [MASM32], а то надоело менять параметры секции через Pe Tools?
Отправлен: 15.01.2007, 11:09
Вопрос задала: Mavka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Евгений Иванов
Здравствуйте, Mavka!
Запись в секцию кода - неправильный путь в программировании. Старайся это не использовать. Ну а уж если нужно, то используй параметр сегмента access.

access

EXECONLY segment is executable only
EXECREAD segment is readable and executable
READONLY segment is readable only
READWRITE segment is readable and writable

The Phar Lap linker assumes that the segment is meant to run in
protected mode if you select any of these attributes, or if you select
the USE32 attribute. TASM assumes the READONLY attribute if you
selected the USE32 attribute but did not specify any of these four
attributes.

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +78313145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская
WWW: Eugene Ivanov
ICQ: 214889076
----
Ответ отправлен: 15.01.2007, 11:32


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.41 beta от 19.01.2007
Яндекс Rambler's Top100

В избранное