Цифровые устройства и микропроцессор. Программирование микроконтроллеров семейства MCS-51. Жаринов О.О. - 28 стр.

UptoLike

Составители: 

28
мости приводится к 8-разрядному формату 0хNNh путем простого от-
брасывания младшего байта. Например, 8Аh×С0h=6780h, причем это
соответствует как точному равенству для целых чисел
138
10
×192
10
=26496
10
, так и приближенному, – для дробных
0.5390
10
×0.75
10
=0.4043
10
. Отбрасывание младшего байта полученного 16-
разрядного результата 6780h для целых чисел приводит к полной бес-
смыслице, а для дробных лишь незначительно изменит результат:
0х67h0.4023
10
). Аналогично организуется умножение дробного 16-раз-
рядного числа на дробное 8-разрядное с округлением результата до 16
разрядов.
– Деление дробного числа, представленного в формате 0хNNh, на
целое число посредством команды целочисленного деления приводит к
результату в формате 0хNNh. То же справедливо для 16-разрядного пред-
ставления.
– При необходимости умножения дробного числа 0хNNh на правиль-
ную дробь (числитель и знаменатель являются целыми числами, знаме-
натель больше числителя) следует сначала выполнять операцию деле-
ния, а результат 0хNNNNh (при необходимости приведенный к 0хNNh)
умножить на значение числителя, – при такой последовательности дей-
ствий переполнения не будет.
Пример 6
Вычислить
()
1
X
k
YX k
=
=
для любого значения аргумента
8
1, 2 1
X
⎡⎤
∈−
⎣⎦
на основе итерационного алгоритма.
Предварительный теоретический анализ выражения показывает, что
максимальное значение результата составит 32640
10
, т. е. для размеще-
ния Y следует отвести две 8-разрядные ячейки памяти микроконтролле-
ра. Пусть для переменных в программе отведены следующие ячейки:
1) R2 – для X, а также и для k; 2) R3 – для младшего байта результата Y;
3) R4 – для старшего байта результата Y. Тогда программа может иметь
следующий вид: