Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/47: Рейтинг темы: голосов - 47, средняя оценка - 4.60
Wiriwotf-Promkstir
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 124
1

[ASM] Знаковые числа

05.02.2010, 12:39. Просмотров 8576. Ответов 7
Метки нет (Все метки)

Подскажите пожалуйста, как работать с знаковыми числами [-127,128]?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2010, 12:39
Ответы с готовыми решениями:

ASM 51 циклический сдвиг числа
Добрый день! подскажите, как сделать через цикл сдвиг числа в право вот мой текст программы я...

Считывание числа с порта на PIC (ASM)
Нужно составить алгоритм или программу на языке ассемблер для пик микроконтроллера само задание....

Однобайтные знаковые операции
Все числа однобайтные, шестнадцатиричные и со знаком (могут быть отрицательными). нужно...

Считывание числа и вывод на светодиоды (ATMega16, ASM)
Приветствую. Нужно считать 4-х разрядное число с выводов РА5-РА2, разделить на 4 и прибавить 5 (в...

Инкрементация числа до переполнения на ASM в AVR Studio
1 задача. Ввести число. В цикле инкрементировать его до переполнения. Вывести в порт вывода...

7
THI BIOST
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
05.02.2010, 13:11 2
А в чём проблема? Сложение и вычитание ничем не отличается, умножение - muls.
0
Wiriwotf-Promkstir
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 124
05.02.2010, 13:13 3
Эм... Я к тому, как именно мне регистр сделать знаковым? =))
0
Midvid
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 966
05.02.2010, 13:23 4
Да очень просто. В старшем бите регистра храни знак и всё.
0
05.02.2010, 13:23
THI BIOST
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
05.02.2010, 13:34 5
Регистр ни знаковый ни без знаковый - он просто набор бит. Знак или нет - дело в программе.
0
Wiriwotf-Promkstir
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 124
05.02.2010, 14:02 6
Ну если я сложу 10001111 и 00001111 я же не получу 0.
0
DiVOuR
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 111
05.02.2010, 14:09 7
ну дык -(00001111) = 11110001

тогда 11110001 + 00001111 = 00000000 (С=1)

Отрицательные двоичные числа содержат единичный бит в старшем разряде и
выражаются двоичным дополнением. Т.е., для представления отрицательного
двоичного числа необходимо инвертировать все биты и прибавить 1.
Рассмотрим пример:

Число 65: 01000001
Инверсия: 10111110
Плюс 1: 10111111 (равно -65)

Если прибавить единичные значения к числу 10111111, 65 не получится.
Фактически двоичное число считается отрицательным, если его старший бит
равен 1. Для определения абсолютного значения отрицательного двоичного
числа, необходимо повторить предыдущие операции: инвертировать все биты и
прибавить 1:

Двоичное значение: 10111111
Инверсия: 01000000
Плюс 1: 01000001 (равно +65)

Сумма +65 и -65 должна составить ноль:

01000001 (+65)
10111111 (-65)
--------
(1) 00000000
©
0
Wiriwotf-Promkstir
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 124
05.02.2010, 14:16 8
Ах вот в чем дело. Сразу бы сказали что надо в дополнительный код переводить =)) Только вопрос, если мне не нужны многобайтные числа, то получается что и обратным кодом можно обойтись, чтобы не сбрасывать постоянно флаг переноса. Так?
0
05.02.2010, 14:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2010, 14:16

ASM atmega написать программу на ASM
Нужна помощь в написании программы с объяснениями.. Проверить свою программу Вашу работу. ...

Даны натуральные знаковые числа от 20 до 50. Напечатать те из них, которые делятся на 3, но не делятся на 5.
Даны натуральные знаковые числа от 20 до 50. Напечатать те из них, которые делятся на 3, но не...

Простые числа (ASM СИ)
Только учусь, написал программу, которая простым перебором считает и выводит список простых чисел....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru