рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

ЛОГИЧЕСКИЕ КОМАНДЫ И КОМАНДЫ СДВИГА

Работа сделанна в 2001 году

ЛОГИЧЕСКИЕ КОМАНДЫ И КОМАНДЫ СДВИГА - Курсовой Проект, раздел Программирование, - 2001 год - Разработка программы на Ассемблере Логические Команды И Команды Сдвига. And Dst, Src Поразрядное Логическое И . ...

ЛОГИЧЕСКИЕ КОМАНДЫ И КОМАНДЫ СДВИГА. AND DST, SRC поразрядное логическое И . mov dh, 10101100b and dh, 0f0h в результате выполнения этих двух команд содержимое DH станет равно 1010b. 2. OR DST, SRC поразрядное логическое ИЛИ . or bx, dx если BX 5F0Fh, а DX 7777h, то после операции BX 7F7Fh. BX 0101 1111 0000 1111 5F0F DX 0111 0111 0111 0111 7777 BX результат 0111 1111 0111 1111 7F7F 3. XOR DST, SRC поразрядное логическое исключающее ИЛИ . xor al,55h если AL 5ah, то после операции AL 0fh. 4. NOT DST инверсия всех битов приемника. 5. TEST DST, SRC выполняет операцию AND над операндами, но воздействует только на флаги и не изменяет самих операндов. 6. SHR DST, CNT логический сдвиг вправо, освобождающиеся слева биты заполняются нулем, крайний правый бит выталкивается во флаг CF. Операнд DST может быть ячейкой памяти. mov bl,10110010b CF x shr bl,1 BL 01011001, CF 0 до сдвига 1 0 1 1 0 0 1 0 CF X после сдвига 0 0 1 0 1 1 0 0 1 CF 0 mov cl,4 shr bl, cl BL 0101, CF 1. 7. SHL DST, CNT логический сдвиг влево. 8. RLC DST, CNT циклический сдвиг влево через перенос 9. RRC DST, CNT циклический сдвиг вправо через перенос 10. ROR DST, CNT циклический сдвиг влево 11. ROL DST, CNT циклический сдвиг вправо КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ 1. CALL SUBR вызов подпрограммы с адресом SUBR call delay mov 2. RET возврат из подпрограммы к оператору следующему непосредственно за CALL, то есть в приведенном выше примере к MOV 3. JMP NAME безусловный переход к команде с символическим адресом NAME. jmp short name переход к метке name, отстоящей не более чем на -128 или 127 байтов. jmp near name переход к метке name, отстоящей не более чем на 65535 байтов, в одном сегменте. jmp name аналогично jmp near name 4. JA NAME или JNBE NAME условный переход, если, например, в результате сравнения CMP DST, SRC приемник по абсолютной величине больше источника, то перейти к метке name. 5. JB NAME или JNAE NAME условный переход, если, например, в результате сравнения CMP DST, SRC приемник по абсолютной величине меньше источника, то перейти к метке name команды п4 и п5 выполняются по результатам выполнения операций над беззнаковыми числами . 6. JZ NAME или JE NAME перейти, если результат операции влияющей на флаг нуля - нулевой переход по нулю . 7. JNZ NAME или JNE NAME переход по не нулю . команды п6 и п7 выполняются по результатам выполнения операций над числами cо знаком. КОМАНДЫ УПРАВЛЕНИЯ ЦИКЛАМИ 1. LOOP NAME эта команда неявно уменьшает CX на 1 и осуществляет переход к ближней метке, если CX не равно 0. mov cx,64h блок операторов от метки syc до loop syc syc будет выполнен 100 раз. loop syc 2. LOOPZ NAME или LOOPE NAME кроме того осуществляет проверку ZF флага.

Поэтому цикл заканчивается по условию, когда CX 0 или ZF 0 или и то и другое вместе.

Т.о. эта команда служит для обнаружения первого ненулевого результата. 3. LOOPNZ, LOOPNE - выход из цикла по нулю . mov cx,1000d цикл может быть завершен раньше 1000 next прохода, если содержимое аккумулятора станет равным 129,т.е. равным ASCII коду cmp al, Б буквы Б. loopnz next 9.3.9 КОМАНДЫ ОБРАБОТКИ СТРОК ЦЕПОЧЕК БАЙТОВ 1. LODSB команда lodsb загружает байт адресованный регистром SI из сегмента данных, и увеличивает SI на 1, если перед этим была введена команда CLD очистить флаг направления DF и уменьшает SI на 1, если была использована команда STD установить флаг направления . .DATA string DB abcdefg. CODE cld после выполнения этих команд в AL будет mov si,OFFSET string 2 загружен ASCII код с lodsb причем содержимое SI будет указывать на d . 2. MOVSB эта команда перемещает один байт из ячейки памяти с адресом в регистре SI в ячейку памяти с адресом в регистре DI и увеличивает SI и DI на 1. Значение SI может находиться, как в сегменте данных DS, так и в дополнительном сегменте ES. Значение DI может находиться только в дополнительном сегменте ES. .DATA msg DB Всё O.K. LEN - msg LEN равно 8 .CODE cld lea si, msg в SI адрес источника mov ax,0b800h начало сегмента видеопамяти mov es, ax поместить в дополнительный сегмент lea di, es 0a0h 3 4-я строка сверху mov cx,LEN LEN - количество выводимых символов rp movsb переслать символ в текущую позицию экрана inc di перешагнуть через позицию атрибута loop rp повторить до исчерпания CX строка Всё O.K. будет выведена в 4-ю строку дисплея сверху. 3. REP префикс повторения команды.

Например окончание предыдущей программы может быть записано в виде mov cx,LEN несмотря на то, что массив Всё O.K. будет rep movsb скопирован в область памяти B800 A0 3 , на экран дисплея будет выведено ВёOK. Почему? 4. CMPSB осуществляет сравнение байта строки источника c адресом SI и байта строки приемника с адресом DI то есть производит вычитание SI - DI . Не путать с командой CMP DST, SRC в которой наоборот, производится вычитание источника из приемника.

Команда CMPSB неявно уменьшает CX на 1 и увеличивает SI и DI на 1, если DF 0. 5. REPZ или REPE префикс повторения.

Выполнение команды завершается, когда CX 0 или ZF 0. .DATA src DB To be, or not to be dst DB To be, or not to be len - dst len равно 19 .CODE cld DF 0 push ds совместить адреса pop es сегментов ds и es mov cx, len длину строки dst переслать в cx lea di, dst загрузить адрес смещение строки dst в DI lea si, src repe cmpsb сравнивать побайтно je equal если все байты совпали, то перейти к метке not cx если нет - вычислить номер несовпадающих байт add cx, len jmp notequal equal notequal В конце этого примера номер первого несовпадающего байта CX 5.

– Конец работы –

Эта тема принадлежит разделу:

Разработка программы на Ассемблере

При этом, покупая то или иное аппаратное средство, производитель не может а иногда и не хочет дать 100 гарантию, что оно исправно. В связи с этим также стремительно развивался и рынок программных тестирующих… На рынке существует огромное количество отличных диагностических программ, написанных большими корпорациями такими как…

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ЛОГИЧЕСКИЕ КОМАНДЫ И КОМАНДЫ СДВИГА

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

АССЕМБЛЕР. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ
АССЕМБЛЕР. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ. Язык программирования наиболее полно учитывающий особенности родного микропроцессора и содержащий мнемонические обозначения машинных команд называется Ассембл

ФОРМАТ КОМАНД И ИХ КЛАССИФИКАЦИЯ
ФОРМАТ КОМАНД И ИХ КЛАССИФИКАЦИЯ. Инструкция записывается на отдельной строке и включает до четырех полей, необязательные из которых выделены метка мнемоника команды операнд ы комментарий Метка или

КОМАНДЫ УПРАВЛЕНИЯ МИКРОПРОЦЕССОРОМ
КОМАНДЫ УПРАВЛЕНИЯ МИКРОПРОЦЕССОРОМ. CLC сбросить флаг переноса CF 0. 2. STC установить флаг переноса CF 1. 3. CMC инвертировать флаг пнреноса. 4. CLD очистить флаг направления DF 0, в этом случае

Технико-математическое описание задачи
Технико-математическое описание задачи. Программа делится на две части Первая часть программы - Сбор сведений - это часть программы, собирающая справки об оборудовании, установленном на ПК, на кото

Требования к функциональным характеристикам
Требования к функциональным характеристикам. При запуске программы на экран должна выводиться аннотация, затем, после нажатия на любую клавишу, должен очищаться экран и появляться меню из трех пунк

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

Постановка задачи
Постановка задачи. Разработать программу тестирования оперативной памяти и сбора сведений о ПК. Реализовать меню, в котором пользователю предлагается выбор из трёх пунктов 1 - сбор сведений о систе

Описание структуры программы
Описание структуры программы. Программа была реализована с помощью нескольких пользовательских процедур и макросов см. таблицу 2 . Довольно часто в программах, особенно больших, приходится нескольк

Описание алгоритма решения задачи
Описание алгоритма решения задачи. Если в оперативной памяти ПК имеется 2 в 20 степени ячеек, то для ссылок на эти ячейки нужны 20-разрядные адреса их принято называть физическими адресами.

Отладка и тестирование
Отладка и тестирование. Тестирование производилось с помощью отладчика Turbo Debugger корпорации Borland. Была выполнена трассировка всей программы. Трассировка - это процесс пошагового выпо

Инструкция к пользователю
Инструкция к пользователю. Для запуска программы выполните файл с именем kurs.com. Вашему вниманию представиться аннотация - внимательно прочитайте её, а затем нажмите любую клавишу на клавиатуре н

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

Структурная схема микропроцессора
Структурная схема микропроцессора. Огромное количество микропроцессоров МП не позволяет рассмотреть их особенности, поэтому выбор пал на родоначальника семейства 80x86 МП К1810ВМ86 88 8086 8088 . Т

Основные положения алгебры логики
Основные положения алгебры логики. В отличие от аналоговых электронных устройств, в цифровых устройствах ЦУ входные и выходные сигналы могут принимать ограниченное количество состояний. В со

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги