![]() |
|
|
![]()
|
|
| Ground |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 27.2.2006 Где: Комсомольск Репутация: нет Всего: 1 |
Добрый день! Подскажите как отследить попадание числа в диапазон -32728 - +32727? В bx число, записанное в естественной форме. В sign - знак для этого числа. Если sign=1, то число проверяется до 32768, если sign=0, то до 32767.
Но не работает. Аналогично пробовал через SF, но безрезультатно. Такое впечатление, что cmp сравнивает без старшего бита. Это сообщение отредактировал(а) Ground - 5.6.2010, 11:18 |
|||
|
||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
Ground,
можно и проще, чтобы отследить попадание числа в диапазон -32728 - +32727 добавьте к числу 32728 и сравните с числом 65455 если ja то вне диаппазона
|
|||
|
||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
Вот и всё. Это сообщение отредактировал(а) iff - 7.6.2010, 11:08 -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
iff,
Вы не правы cmp bx, 32727/ja overflow сюда попадут и просто отрицательные числа, а по условию диаппазон -32728 - +32727 |
|||
|
||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
Я так понял само число беззнаковое, а его знак хранится в некой переменной sign:
Если бы число в bx было знаковым, то тгда работал бы код, данный в самом первом посте. Когда автор для условного перехода использовал инструкцию jg (которая работает со знаковыми числами), то сказал: Это говорит о том что в bx беззнаковое число. -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
iff,
извините, я не внимательно прочитал условие
не в дополнительном коде, а в естественной форме, т.е. знак отдельно, а модуль числа отдельно, Это сообщение отредактировал(а) Mikl_ - 8.6.2010, 02:51 |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |