Приклад. В таких випадках потрібно користуватися регістром AX.
H 01100001
ABh 10101011
В таких випадках потрібно користуватися регістром AX.
Команда CBW (Convert Byte to Word) перетворює байт в регістрі AL в слово в регістрі AX. При додаванні слів значення результату може знаходитись в діапазоні від – 32768 до 32767, що в двійковій системі відповідає 15 молодшим бітам і 1 старшому біту знаку.
Додавання більше одного слова.
Існує 2 способи додавання операндів, які перевищують слово.
Нехай необхідно додати дві пари слів WORD1A WORD1B і WORD2A WORD2B і зберегти результат в третій парі слів WORD3A WORD3B.
Спочатку необхідно виконувати операцію над молодшими словами, а потім над старшими.
Приклад
Page 60,132
TITLE ADD DW (COM) Додавання подвійних слів.
CODESG SEGMENT PARA `code`
ASSUME CS: CODECG, SS: CODESG
ORG iooh
BEGIN JMP SHORT MAIN
WORD1A DW 0123h
WORD1A DW 0BC62h
WORD2A DW 0012h
WORD2A DW 553Ah
WORD3A DW ?
WORD3A DW ?
MAIN PROC NEAR
CALL DIODWD
CALL EIODWD
RET
MAIN ENDP
DIODWD PROC
MOV AX, WORD1B
ADD AX, WORD2B ; додавання молодших слів
MOV WORD3B, AX
MOV AX, WORD 1A
ADC AX, WORD 2A ; додавання старших слів
MOV WORD 3A, AX
RET
DIODWD ENDP
EIODWD PROC
CLC ; обчислити флаг переносу
MOV cx,2 ; встановлення лічильника
LEA SI, WORD1B
LEA DI, WORD2B
LEA BX, WORD3B
E2O:
MOV AX, [si] - перенести слово в АХ
ADC AX, [DI] - додати з врахуванням переносу молодші слова
DEC SI
DEC SI
DEC DI
DEC DI
DEC BX
DEC BX
LOOP E2O
RET
EIODWD ENDP
CODESG ENDS
END BEGIN.
В другому способі виконувати операцію: Sub reg, 02 не можна оскільки може бути зміщений флаг переносу CF.
Для роботи другого методу необхідно: 1) перед циклом очистити флаг переносу командою CLC /Сlear Carry/. 2) Забезпечити відповідний порядок слів; 3) виконати обробку з права на ліво; 4) в регістр CX занести кількість слів, що додаються.
Для здійснення багатослівного віднімання використовується команда SBB/Subtract with Borrow – віднімання з запозиченням. Замінивши в попередніх процедурах команди ADD і ADC на SUB і SBB стримаєм процедури для віднімання.
Дата добавления: 2015-10-09; просмотров: 515;