Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Команда cmp выполняет вычитание операторов и устанавливает флаги, не записывает результат вычитания на место первого операнда.↑ ⇐ ПредыдущаяСтр 37 из 37 Содержание книги
Поиск на нашем сайте
Cmp операнд_1, операнд_2
20.Способи задавання операндів. Способи адресації. Косвенна базова (регістрова) адресація зі зміщенням. Приклади використання. Основні регістри процесора Intel (Pentium III) Пересылка данных
xchg <операнд1>, <операнд2> cmovcc <приёмник>,<источник> bswap <регистр 32>
Особенности команды mov: 1) нельзя осуществлять пересылку из одной области памяти в другую. При такой необходимости нужно использовать в качестве промежуточного буфера любой доступный регистр общего назначения. Пример: переслать байты из ячейки памяти fls в ячейку fld: Data Fls dd 947503b3h Fld dd? Code Start ---- Mov eax, fls Mov fld,eax ---- End start
2) нельзя загрузить в сегментный регистр значение непосредственно из памяти. Для выполнения такой загрузки нужно использовать промежуточный объект (регистр общего назначения или стек). 3) нельзя пересылать содержимое одного сегментного регистра в другой сегментный регистр. Выполнить такую пересылку можно, используя в качестве промежуточных регистры общего назначения. Пример: инициализировать регистр es значением регистра ds: Mov ax,ds Move es,ax Можно также использовать стек и команды push и pop: Push ds; поместить значение регистра ds в стек Pop es; записать в es число из стека
Нельзя использовать сегментный регистр cs в качестве операнда назначения.
5) оператор ptr можно применять и когда требуется принудительно поменять размерность операндов. К примеру, требуется переслать значение 0ffh во второй байт поля flp: Data Flp dw? Code start: ---- mov byte ptr (flp+1),0ffh ---- End start Для двунаправленной пересылки данных применяют команду xchg. Эту же операцию можно выполнить применив последовательность из нескольких команд mov. Общий вид записи:
XCHG <операнд1>, <операнд2>
Содержимое операнда2 копируется в операнд1, а старое содержимое операнда1 — в операнд2. XCHG можно выполнять над двумя регистрами или над регистром и переменной. Например: Xchg eax,ebx; обменять содержимое регистров eax и ebx. То же, что три команды на языке С: temp = eax; eax = ebx; ebx = temp;
Xchg al,al; а эта команда не делает ничего xchg ax, word ptr [si]; обменять содержимое регистра ах и слова в памяти по адресу в [si]. 22. Відмінності програми, написаної для DOS16 та для Win32. Арифметичні команди. Випадки при яких виникає переповнення результату ділення. Способи, що позволяють виконати ділення навіть при виникненні переповнення результату ділення. Программирование арифметических выражений в языке Ассемблер происходит через некоторые команды такие, как: mul, div, sub, add. Эти команды называются командами арифметических операций.
Пример: Написать программу на ассемблере вычисления выражения: а – e/b – de; Текст программы .686; директива определения типа микропроцессора .data; директива определения данные .code; директива начала сегмента команд Переполнение результата деления возникает в следующих случаях: 1. Делитель равен 0 2. При делении байтов без знака делимое без знака делимое пол меньшей мере в 256 раз превышает делитель. 3. При делении слов без знака делимое по меньшей мере в 65 536 раз превышает делитель. 4. При делении байтов со знаком частное лежит вне диапазона от –128 до 127. 5. При делении слов со знаком частное лежит вне диапазона от –32768 до 32767 Коррекция результата Для того чтобы поучить правильный результат (т.е. выполнить перенос из одного разряда в другой, 56+25= 81, один десяток надо перенести в старший разряд) необходимо его скорректировать. Это делается с помощью следующих команд. AAA – скорректировать результат сложения для представления в кодах ASCII. DAA – скорректировать сложение для представления в десятичном формате. Формат: AAA DAA
24. Команда cmp у асемблері. Робота з негативними числами в асемблері при виконанні арифметичних операцій. Значення прапора sf. Приклади встановлення прапора sf при виконанні віднімання В-С. Алгоритм виведення негативних чисел на екран.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-13; просмотров: 398; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.87.150 (0.012 с.) |