Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Stryder
1 / 1 / 2
Регистрация: 16.09.2013
Сообщений: 148
1

MSC 51, как округлять числа

22.11.2017, 21:16. Просмотров 792. Ответов 4
Метки нет (Все метки)

Собственно вопрос , как округлить число в asm, среда программирования keil
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2017, 21:16
Ответы с готовыми решениями:

Как посмотреть состояние регистров msc-51 название чего надо установить?
Составить программу на языке ассемблера для микроконтроллера семейства MCS-51 фирмы Intel,...

[MSC-51] Разобрать приведенный код
Всем привет! Помогите пожалуйста понять участок кода: MOV DPTR,#3015H ;010C ...

Разложить число MSC 8051
В ячейке с адресом ADDR1 находится число размером один байт. Требуется разложить данное число на...

[MSC-51] Цифровая обработка сигналов по формулам
Доброго времени суток. прошу не кидаться тапками. Помогите с решением задания на 8051 2.2....

Как округлять числа?
Подскажите пожалуйста как можно округлить число например 5,66666666 до числа 5,6 или 5,7, т.е....

4
Витальич
1272 / 1182 / 174
Регистрация: 02.12.2013
Сообщений: 4,886
23.11.2017, 12:07 2
MSC 51 на асме работает только с целыми 8-разрядными числами, так что уточните что Вам нужно округлять и какой формат у числа.
0
Stryder
1 / 1 / 2
Регистрация: 16.09.2013
Сообщений: 148
23.11.2017, 13:34  [ТС] 3
Вот меня это тоже смущает, я так понял , что нужно делать деление и если есть остаток, то сдвигать влево пытался так:
Assembler
1
MOV R0, A mod #2 ; в r0 записывается остаток
Но бьет ошибку, вроде по справочнику делал

Добавлено через 10 минут
Вот задание: Составить самостоятельно фрагмент программы, используя команды организации подпрограмм и другие.Даны две области РПД по 9 элементов. Выполнить округление их содержимого до ближайшего четного значения (вверх).
Вот что я написал:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ORG 0H; начальный адрес программы в ПП
MOV R5,#0H; остаток
MOV R1,#9H; загрузка в R1 начального адреса первого массива
ACALL M1; вызов подпрограммы М1
MOV R1,#27H; загрузка в R1 начального адреса второго массива
ACALL M1; 
 
M1:
MOV R3,#0AH;
M3: MOV R4,#8H; загрузка счетчика количества бит в ячейке (R4=8)
MOV A,@R1; 
MOV R5,A mod #2;  проверка на четность
DJNZ R5,okruglenie;
inc R1
DJNZ R3,M3
okruglenie:
RLC A;
SJMP M3 ;
 
end.
но ругается на MOD
0
northener
пофигист широкого профиля
3424 / 2324 / 630
Регистрация: 15.07.2013
Сообщений: 13,753
23.11.2017, 21:25 4
Лучший ответ Сообщение было отмечено Stryder как решение

Решение

Округление до ближайшего четного вверх это прибавление 1, если число нечетное. А вовсе не умножение на 2.
Проверка на четность это или
Assembler
1
JB ACC.0,okruglenie
или
Assembler
1
2
RRC A
JC okruglenie
Команды MOD у 8051 нет.
1
Stryder
1 / 1 / 2
Регистрация: 16.09.2013
Сообщений: 148
23.11.2017, 21:54  [ТС] 5
Большое спасибо
0
23.11.2017, 21:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2017, 21:54

Как лучше округлять числа?
Подскажите как лучше округлять числа. И ещё хотел спросить почему в выражении float...

Как округлять все числа в столбце кратно 10 в большую сторону
Здравствуйте! А как округлять все числа в столбце кратно 10 в большую сторону? например есть...

Не округлять числа в некоторых случаях
Всем доброе время суток ! Относительно способов округления существует стандарт IEEE 754,...


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

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

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