Page 215 - 4503
P. 215
7.2.3 Команди віднімання subwf і sublw
Команди віднімання subwf і sublw, як і аналогічні
команди додавання, мають за операнди робочий регістр (w),
регістр даних (f) і константу l. Як видно з таблиці 7.2, ці
команди впливають на стан ознак С, DC, Z. Варто нагадати, що
ознака С у контексті дії віднімання відіграє роль ознаки
(англ. Borrow — запозичення). Тобто, якщо у результаті
операції віднімання ознака С отримує значення 0, а отже В
(НЕ–С) встановлена, значить відбулося запозичення.
Наприклад, маємо число А (від’ємне ), число В (від’ємник) і їх
різницю позначимо С = А – В. Надамо значення відємному 05,
від’ємнику 08. Визначимо чому дорівнює їх різниця С ( 5 – 8 =
– 3) шляхом віднімання у стовпчик:
=
Як бачим, вийшло десяткове число 7, а не 3. Це сталося
тому, що оскільки А < B, то у старший розряд числа А додана
1, в результаті А отримало значення 15. Отож і різниця 15 – 8
= 7. Чому ж такий помилковий результат, адже було
здійснено правильне рішення — запозичення зі старшого
розряду? Відповідь криється у тому, що насправді старший
розряд числа А мав значення 0, тобто зичити немає відки.
Фактично відбулося запозичення додаткового чужого числа
10. Значить, що позичили (число 10), тe й потрібно віддати,
тобто відмінусувати від отриманого результату. Зробимо це
за таким рівнянням: (10 – 7) = – 3. Результат можна досягти,
шляхом інвертування. Подивимося на таблицю нижче:
215