![]() |
|
|
![]()
|
|
| susanin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 7 |
у меня в программе заданы значения
но потом когда я их применяю в программе
компилятор начинает ругаться на неизвестный символ CFh.... как ему объяснить что это число в 16сс???? |
||||
|
|||||
| JAPH |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 5 Всего: 23 |
Поставить перед числом 0:
-------------------- Что непонятно - спрашиваем |
|||
|
||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 7 |
JAPH, спасибо"! а может тогда скажете заодно, как сделать из положительного числа отрицательное? и куда девается старший разряд числа, если при вычислении получается больше чем двухразрядное число (например 163, а в память записывается только 63). это так и должно быть, если нет то что надо сделать?
Это сообщение отредактировал(а) susanin - 14.2.2007, 18:13 |
|||
|
||||
| JAPH |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 5 Всего: 23 |
В десятичной записи числа можно просто поставить минус: -20. Компьютер представляет отрицательные числа в дополнительном коде (строго говоря, положительные тоже, но для положительных дополнительный код совпадает с обычным двоичным представлением - прямым кодом). Получается он так: берётся модуль числа (для -20 это 00010100b), инвертируется (11101011b) и инкрементируется (1110100b). Заметьте, что старший бит есть 1 - она-то и показывает отрицательный знак числа. Так что объявление a DB -20 эквивалентно a DB 0Е4h Сделать из положительного отрицательное - NEG AX. При вычислениях с использованием 8битовых регистров все действия производятся по модулю 256, если вдруг число превосходит эту границу, его старшая часть усекается и OF=1, это так и надо. Не хватает однобайтового диапазона - вам никто не мешает использовать 16битные регистры. Это сообщение отредактировал(а) JAPH - 14.2.2007, 19:01 -------------------- Что непонятно - спрашиваем |
|||
|
||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 7 |
JAPH, если не сложно, объясните пожалуйста, как использовать 16 битные регистры (что писать в коде) и еще насчет отрицательных чисел... почему то, когда я отнимаю от числа число (прибавляю отрицательное) в ответе получается не то, что должно....а именно отличается на 1... вот мои числа
x db 37d y db 4d а вот то что я делаю... mov al,x imul y call Sumres1
но когда я проверяю ответ на калькуляторе, который в виндоусе, ответы не сходятся...в чем может быть проблемка? |
|||
|
||||
| JAPH |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 5 Всего: 23 |
Итак,
А что непонятного с 16битными регистрами? Вы не знаете, какие они есть? Или не знаете, какие команды ими оперируют? Вы же свободно обращаетесь с 8битными! Вас не должны пугать команды
AX - нормальный 16битный регистр. -------------------- Что непонятно - спрашиваем |
||||
|
|||||
| susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 7 |
JAPH, просто я как то раз попробовал применить в этом примере 16 битные регистры, но компилятор выдал много ошибок...видимо я чтото не так сделал...буду пробовать еще! спасибо! а насчет NEG спасибо! наверно из за этого и получался неверный ответ! сразу тогда для большего развити я задам вопрос...
Это сообщение отредактировал(а) susanin - 14.2.2007, 19:38 |
|||
|
||||
| piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: нет Всего: 3 |
not инвертируе все биты числа, находящегося в передаваемом ему параметре и возвращает их туда же
--------------------
|
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |