Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Умножение и деление знаковых значений

Команды сложения

В табл. 2. представлено пять команд сложения. Две из них, add и adc, суммируют два байта или слова. Inc (инкремент) — команда быстрого добавления 1 к регистру или значению в памяти. (Другие две команды, ааа и daa, выполняют коррекцию значений, представленных в двоично-десятичном формате, с которым мы познакомимся позже.) Для сложения 8-битового значения в ah с 8-битовым значение в bh вы можете записать:

add ah, bh; ah<-ah+bh

Так же как и для команды mov, для add требуются операнд-источник и операнд-назначение. Команда суммиру­ет два значения и записывает результат в заданное место, заменяя первоначальное значение. В этом примере ре­зультат записывается в ah. Команда adc работает аналогично, но добавляет к результату флаг переноса cf:

adc ah, bh; ah <-+ah+bh+cf

 

Команды знакового умножения (imul) и деления (idiv) работают аналогично и используют те же регистры, что и mill и div. (Буква i в символическом имени используется для целых чисел, показывая, что допускаются как поло­жительные, так и отрицательные значения.) Единственное отличие состоит в допустимых диапазонах значений:

• Знаковый байт изменяется от-128 до+127

• Знаковое слово изменяется от -32768 до 32767

• Помните, что отрицательный результат представляется в двоичном дополнительном коде.

 

Таблица 3. Логические команды 8086
Мнемокод/Операнды Описание
Логические команды
and назначение, источник not назначение or назначение, источник test назначение, источник хоr назначение, источник Логическое И Логическое НЕ (отрицание) Логическое ИЛИ Проверка бита Логическое исключающее ИЛИ
Команды сдвига
rcl назначение, количество rcr назначение, количество rol назначение, количество ror назначение, количество sar назначение, количество sal назначение, количество shi назначение, количество shr назначение, количество Циклический сдвиг влево через перенос Циклический сдвиг вправо через перенос Циклический сдвиг влево Циклический сдвиг вправо Арифметический сдвиг вправо Арифметический сдвиг влево Сдвиг влево Сдвиг вправо

 

 

Таблица 4. Команды управления потоком 8086
Мнемокод / Операнды Описание
Команды безусловного перехода
call адрес jmp адрес ret значение retn значение retf значение Вызов процедуры Безусловный переход Возврат из процедуры Возврат из близлежащей процедуры Возврат из дальней процедуры
Команды условного перехода
ja/jnbe короткий адрес jae/jnb короткий адрес jb/jnae короткий адрес jbe/jna короткий адрес Переход, если выше/не ниже или равно Переход, если выше или равно/не ниже Переход, если ниже/не выше или равно Переход, если ниже или равно/не выше
jc короткий адрес Переход, если был перенос
je/jz короткий адрес Переход, если равно/нуль
jg/jnle короткий адрес Переход, если больше/ не меньше или равно
jge/jnl короткий адрес Переход, если больше или равно/не меньше
jl/jnge короткий адрес Переход, если меньше/не больше или равно
jle/jng короткий адрес Переход, если меньше или равно/не больше
jnc короткий адрес Переход, если нет переноса
jne/jnz короткий адрес Переход, если не равно/не нуль
jno короткий адрес Переход, если нет переполнения
jnp/jpo короткий адрес Переход, если нет паритета/паритет нечетный
Jns короткий адрес Переход, если нет знака
jo короткий адрес Переход по переполнению
jp/jpe короткий адрес Переход, если есть паритет или паритет четный
js короткий адрес Переход, если есть знак
Команды цикла
jcxz короткий адрес Переход, если сх равно нулю
loop короткий адрес Цикл пока сх <> 0
loope/loopz короткий адрес Цикл, если равно или нуль
loopne/loopnz короткий адрес Цикл, если не равно/не нуль
Команды прерывания
int тип прерывания Прерывание/вызов прерывания
into Прерывание по переполнению
iret Возврат из обработки прерывания

 

Хотя может показаться, что в табл. 4. содержится невообразимое количество команд перехода, необходимо запомнить только несколько легко выделяющихся групп. Мы рассматриваем первые две из них: услов­ные и безусловные переходы, затем вводятся циклы и команды управления прерываниями.

<== предыдущая лекция | следующая лекция ==>
Арифметические команды | Команды для работы со строками
Поделиться с друзьями:


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


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



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




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