КАТЕГОРИИ: Архитектура-(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; Просмотров: 561; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |