Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Команда сложения с переносом adc




КОМАНДА СЛОЖЕНИЯ ADD

НЕПОСРЕДСТВЕННАЯ АДРЕСАЦИЯ

ПРЯМАЯ АДРЕСАЦИЯ

 

Наиболее простой способ адресации – прямой, который реализован в большинстве известных процессоров. Однако, увеличение поля прямого адреса делает команды слишком длинными и не эффективными. Для XT прямой адрес равен 20 бит, а для AT он значительно больше. Разработанные в настоящее время режимы адресации направлены на следующие цели:

- определение адреса наименьшим числом бит;

- вычисление адреса команд относительно базы, а в командах перехода относительно текущей команды;

- вычисление адреса данных на основании выражений, элементы которых в процессе выполнения программы изменяются, что позволяет организовать удобный доступ к регулярным структурам данных.

 

 

 

Это операнд, записанный в виде константы, при трансляции программы этот операнд записывается в поле команды длиной в слово или байт, т. к. для обращения к операнду не требуется цикла обращения к памяти, а он выбирается непосредственно из поля команды – отсюда непосредственная адресация.

 

ADD AL,5

┌───────┬──┬─────┐

ADD AL,5 │ KOП │b │ 05 │

└───────┴──┴─────┘

 

A DW 0

ADD A,5

┌───────┬─┬─────────┬────────┬───────┐

│ KOП │w│post byte│adress A│ 00 05│

└───────┴─┴─────────┴───┴────┴───┴───┘

 

 

 

Команды сложения и вычитания являются базовыми при построении ЭВМ, и потому в алгоритме их выполнения заложено формирование всех признаков результата (6 признаков).

 

OF DF IF SF ZF AF PF CF

┌──┬──┬──┬──┬──┬──┬──┬──┐

ADD ОР1,ОР2 Сложение чисел со знаком │ F│ │ │ F│ F│ F│ F│ F│

└──┴──┴──┴──┴──┴──┴──┴──┘

ОР1:=ОР1+ОР2

ADD mem/reg,mem/reg

 

ADD AL,BL; AL= 35 = 23h = 0.0100011b +

; BL= -39 = -27h = 1.1011001b

----------

OF SF ZF AF PF CF 1.1111100b дк

┌──┬──┬──┬──┬──┬──┐ ----------

│ 0│ 1│ 0│ *│ 1│ 0│ 1.0000100b пк = -4h

└──┴──┴──┴──┴──┴──┘

AL= 100 = 64h = 0.1100100b +

BL= 100 = 64h = 0.1100100b

----------

1.1001000b перенос в знак =1

перенос из знака =0

OF SF ZF AF PF CF Флаги формируются в соответствии формирования

┌──┬──┬──┬──┬──┬──┐ чисел со знаком.

│ 1│ 1│ 0│ *│ 0│ 0│

└──┴──┴──┴──┴──┴──┘

Однако эта команда используется для сложения чисел без знака, флаги формируются аппаратно по тому же алгоритму и только программист может правильно интерпретировать результат, а именно: произошло переполнение или нет.

Сложение чисел без знака:

AL=150=96h=10010110b +

BL=150=96h=10010110b

---------------

1.00101100b = 44<>300

Флаги формируются по тому же принципу, а анализируется результат по другому.

OF SF ZF AF PF CF Т. к. программист предполагал, что склады-

┌──┬──┬──┬──┬──┬──┐ вает числа без знака, судить о переполне-

│ 1│ 0│ 0│ *│ 0│ 1│ нии надо по значению флага CF. В данном

└──┴──┴──┴──┴──┴──┘ случае CF = 1, произошло переполнение и

результат неверный.

 

 

 

ADC ОР1,ОР2

OP1 OP2 OP1:= OP1 + OP2 + CF

| |

v v

┌──┐ ┌───┴──┐ ┌─┴────┐

│СF│<- └┐ └─┘ ┌┘

└──┘ └┐ СУММАТОР ┌┘<────┐

│ └─────┬─────┘ │

│ │ │

└─────────────┼────────────┘

V

 

При этом новые значения флагов формируются точно также. Команда используется для сложения полей, превышающих слово, например двойное слово.

┌─────┬─────┐

+ └──┴──┴──┴──┘

┌─────┬─────┐

└──┴──┴──┴──┘

-----------------------------

┌─────┬─────┐ ┌─────┬─────┐

└──┴──┴──┴──┘ └──┴──┴──┴──┘

│ ┌──┐ │

└─┤СF├─┘

└──┘

A DD?

B DD?

C DD?

MOV AX,word ptr A; младшее слово

ADD AX,word ptr B; 1-е сложение

MOV word ptr C,AX; выполнено сложение младших слов

; полей

MOV AX,word ptr A+2; старшее слово

ADC AX,word ptr B+2; 2-е сложение

MOV word ptr C+2,AX; результат сложения в С

Этот пример показывает, как в 16-разрядной машине производится сложение операндов LONGINT.

 

 




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 560; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.