Вопрос № 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