Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Сложение беззнаковых величин





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

Пусть необходимо сложить числа 3А7h и 92Ah, записанные в шестнадцатеричной форме (подсчитайте результат).

Создадим и выполним инструкцию микропроцессора, позволяющую складывать беззнаковые коды из двух регистров — прибавим число, хранящиеся в регистре BX, к числу хранящемуся в AX. Для этого необходимо выполнить следующую последовательность действий.

· Занесение операндов.

Поместим заданные числа в регистры AX, BX. Для того чтобы изменить содержимое регистра (занести величину), необходимо установить на него курсор в левой части окна Registers и ввести нужное число.

· Создание инструкции.

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

Для указания адреса необходимо переместится в окно команд (клавиша Tab).

а) Ввод адреса.

Разместим нашу инструкцию по адресу 100h (с этого адреса отладчик размещает первый байт инструкции, в любом сегменте памяти, который он начал использовать). Если в данный момент курсор находится по другому адресу, то для его перемещения в нужное место нажмите сочетание клавиш Ctrl+G и в диалоговом окне укажите нужный адрес, рис 2.

Рисунок 2

б) Ввод команды.

Сложение чисел задается ассемблерной командой ADD (английское add означает "сложить" или "добавить").

Поэтому занесите по выбранному адресу инструкцию

ADD AX, BX

в) Подготовка к выполнению команды.

Чтобы выполнить команду, необходимо сообщить микропроцессору адрес нашей инструкции. Переместимся в окно регистров и флагов Registers. Адрес инструкции заносится либо непосредственно в регистр IP (instruction pointer — указатель команды), либо в диалоговое окно при нажатии сочетания клавиш Ctrl+N. При этом в строчке между адресом инструкции и кодом появляется метка-треугольник, обозначающая инструкцию, которая будет выполнена процессором следующей.

г) Выполнение команды.

Для выполнения инструкции выберем команду Trace into меню Run или нажмем клавишу F7. Команда Trace into выполняет одну инструкцию за шаг.

д) Результат выполнения команды.

После выполнения команды ADD результат вычисления помещается в регистр AX, где ранее был один из операндов. Поэтому после сложения регистр AX должен содержать число CD1h.

Задание: Выполните сложение следующих шестнадцатеричных чисел

 

1. 1C6+223=? 2. 192+258=? 3. 29E+14=? 4. 28F+15D=?
5. 1DF+20E=? 6. 2AA+144=? 7. 1BB+234=? 8. 1CC+224=?
9. 1FF+1F2=? 10. 1EE+204=? 11. 1AB+248=? 12. 1BA+23A=?
13. 1AC+249=? 14. 1CA+22C=? 15. 1AD+24A=? 16. 1DA+21E=?

 

 

Вычитание беззнаковых величин

Вычитание выполняется с помощью команды SUB (subtract — вычесть). В остальном все этапы выполнения вычисления повторяют действия, которые были описаны для операции сложения. В регистр AX заносится уменьшаемое, а в регистр BX — вычитаемое. Результат выполнения инструкции появится в регистре AX.

Задание. Проверим результат, полученный при выполнении сложения. Вычтем из числа CD1h одно из ранее использованных слагаемых (для определенности 92Ah). Каков результат операции?

Если в выражении вычитаемое больше уменьшаемого, результат вычитания беззнаковых (неотрицательных) величин становится отрицательным.

Задание. Проверим, как микропроцессор использует форму двоичного дополнения для представления отрицательных результатов. Выполните вычитание из нуля единицы (т.е., 0 – 1). Какой результат получен и почему?

Существует еще одна пара команд увеличения и уменьшения на 1 – Inc (increment) и Dec (decrement).Команда INC аналогична команде:

ADD ор,1

т.е. увеличивает свой операнд на 1: op1:=ор1+1, а команда DEC аналогична команде:

SUB op,1

т.е. уменьшает операнд на 1: op1:=op1-1(единственное отличие: команды INC и DEC не меняют флаг переноса CF).Например, если в регистр BX содержал число 0001, то после выполнения команды Inc BX регистр будет содержать 0002. Выгода от команд INC и DEC в том, что они занимают меньше места в памяти и выполняются быстрее, чем соответствующие команды ADD и SUB.

Операции с байтами

В микропроцессоров Intel используются двухбайтовые машинные слова. Каждый регистр общего назначения (AX, BX, CX и DX) может хранить одно машинное слово. Однако имеется возможность оперировать с отдельными байтами этих регистров. В этом случае каждый регистр рассматривается состоящим из старшего (High) и младшего (Low) байтов. Обозначения отдельных байтов из регистров состоят из двух букв. Первая задает имя регистра (A, B, C или D), а вторая указывает, какой это байт регистра. Для обозначения старшего байта используется буква H, а младшего — L. Таким образом, регистр AX можно рассматривать, состоящим из двух однобайтовых регистров AH и AL.

Микропроцессор может выполнять арифметические операции над отдельными байтами.

Задание.

Введите в регистр AX число 0102h (два байта) и выполните инструкцию

ADD AH, AL

Каков результат выполнения операции, который будет помещен в регистр AH?







Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.