Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Команды условного перехода

Читайте также:
  1. АКТУАЛЬНОСТЬ И ЗНАЧЕНИЕ ПРОБЛЕМЫ ПЕРЕХОДА К УСТОЙЧИВОМУ РАЗВИТИЮ НА ГЛОБАЛЬНОМ, НАЦИОНАЛЬНОМ И РЕГИОНАЛЬНОМ УРОВНЯХ
  2. Анатомо-физиологические и психологические предпосылки перехода к подростковому возросту. Проблема кризиса подросткового возраста.
  3. Блок-схемы алгоритмов, содержащих команды обращения к вспомогательным алгоритмам
  4. ВЗАИМОДЕЙСТВИЕ КОМАНДЫ С КЛИЕНТАМИ, ПАРТНЕРАМИ, ВНЕШНЕЙ СРЕДОЙ
  5. Влияние команды на регистр признаков
  6. Внешние команды MS DOS
  7. Внутренние команды MS-DOS размещены в файле
  8. ВОПРОС N 42. Стадией перехода от административного к законодательному государственному
  9. Вторым законом диалектики является закон перехода количественных изменений в качественные.
  10. Вторым законом диалектики является закон перехода коли­чественных изменений в качественные.

23. Расширенные операции пересылки

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

В EXE-программе, приведенной на рис., сегмент данных cодержит три девятибайтовых поля, NAME1, NAME2, NAME3. Цель программы - переслать данные из поля NAME1 в поле NAME2 и переслать данные из поля NAME2 в поле NAME3. Так как эти поля имеют длину девять байт каждая, то для пересылки данных кроме простой команды MOV потребуются еще другие команды.
Процедура BEGIN инициализирует сегментные регистры и затем вызывает процедуры B10MOVE и C10MOVE. B10MOVE пересылает содержимое поля NAME1 в поле NAME2. Процедура начинает с самого левого байта в поле NAME1 и в цикле пересы лает затем второй байт, третий и т.д.
Рис. Расширенные операции пересылки.

NAME1: A B C D E F G H I
| | | | | | | | |
NAME2: J K L M N O P Q R
Для продвижения в полях NAME1 и NAME2 в регистр CX заносится значение 9, а регистры SI и DI используются в качестве индексных. Две команды LEA загружают относительные aдреса полей NAME1 и NAME2 в регистры SI и DI:

LEA SI,NAME1;Загрузка относительных адресов
LEA DI,NAME2; NAME1 и NAME2
Для пересылки содержимого первого байта из поля NAME1 в первый байт поля NAME2 используются адреса в регистрах SI и DI. kвадратные скобки в командах MOV обозначают, что для доступа к памяти используется адрес в регистре, указанном в квадратных cкобках. Таким образом, команда MOV AL,[SI] означает: использовать адрес в регистре SI (т.е.NAME1) для пересылки соответствующего байта в регистр AL. А команда MOV [DI],AL означает: пересылать содержимое регистра AL по адресу, лежащему в регистре DI (т.е. NAME2).
Следующие команды увеличивают значения регистров SI и DI и уменьшают значение в регистре SH. Если в регистре CX не нулевое значение, управление передается на следующий цикл (на метку B20).Так как содержимое регистров SI и DI было увеличено на 1, то следующие команды MOV будут иметь дело с адресами NAME1+1 и NAME2+1. Цикл продолжается таким образом, пока не будет передано содержимое NAME1+8 и NAME2+8.
Процедура C10MOVE аналогична процедуре B10MOVE с двумя исключениями: она пересылает данные из поля NAME2 в поле NAME3 и использует команду LOOP вместо DEC и JNZ.

24. Команды логических операций: AND, OR, XOR, TEST, NOT

Логические операции являются важным элементом в проектировании микросхем и имеют много общего в логике программирования. Команды AND, OR, XOR и TEST - являются командами логических операций. Эти команды используются для сброса и установки бит и для арифметических операций в коде ASCII. Все эти команды обрабатывают один байт или одно слово в регистре или в памяти, и устанавливают флаги CF, OF, PF, SF, ZF.


AND: Если оба из сравниваемых битов равны 1, то результат равен 1; во всех остальных случаях результат - 0.


OR: Если хотя бы один из сравниваемых битов равен 1, то результат равен 1; если сравниваемые биты равны 0, то результат - 0.


XOR: Если один из сравниваемых битов равен 0, а другой равен 1, то результат равен 1; если сравниваемые биты одинаковы (оба - 0 или оба - 1) то результат - 0.


TEST: действует как AND-устанавливает флаги, но не изменяет биты.

 

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

 

Еще одна логическая команда NOT устанавливает обpатное значение бит в байте или в слове, в регистре или в памяти: нули становятся единицами, а единицы - нулями. Команда NOT не эквивалентна команде NEG, которая меняет значение с положительного на отрицательное и наоборот.

 




Дата добавления: 2015-04-22; просмотров: 76 | Поможем написать вашу работу | Нарушение авторских прав

1 | 2 | 3 | 4 | 5 | 6 | <== 7 ==> | 8 |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.173 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав