Загрузка...

Логические операции


Турбо Ассемблер поддерживает полный набор инструкций для вы-полнения логических операций, включая инструкции AND (И), OR (ИЛИ), XOR (исключающее ИЛИ) и NOT (НЕ). Эти инструкции могут оказаться очень полезными при работе с отдельными битами слова или байта, а также для выполнения операций булевой алгебры.

Сдвиги и циклические сдвиги


В процессорах 8086 имеется множество способов, с помощью ко-торых можно сдвигать биты регистра или переменной в памяти влево или вправо. Простейшим из них является логический сдвиг. Инструкция SHL (сдвиг влево, синоним — SAL) перемещает каж-дый бит операнда-приемника на один разряд влево, по направлению к самому значащему биту. На Рис. 5.8 показано, как значение 100010110b (96h Читать далее

Циклы и переходы


Да этого момента мы рассматривали выполнении процессором 8086 инструкций в строгой последовательности. При этом каждая следующая инструкция выполнялась сразу после инструкции по преды-дущему адресу. Рассматривая программу: mov ax,[BaseCount] push ax

Безусловные переходы


Основной инструкцией перехода в наборе инструкций процессора 8086 является инструкция JMP. Эта инструкция указывает процессору 8086, что в качестве следующей за JMP инструкцией нужно выполнить инструкцию по целевой метке. Например, после завершения выполне-ния фрагмента программы:  

Условные переходы


Описанные в предыдущем разделе инструкции переходов — это только часть того, что вам потребуется для написания полезных программ. В действительности необходима возможность писать такие программы, которые могут принимать решения. Именно это можно де-лать с помощью операций условных переходов.

Циклы


Одним из видов конструкций в программе, которые можно пост-роить с помощью условных переходов, являются циклы. Цикл — это просто-напросто блок кода, завершающийся условным переходом, бла-годаря чему данных блок может выполняться повторно до достижения условия завершения. Возможно, вам уже знакомы такие конструкции циклов, как for и while в языке Си, while и repeat в Паскале и Читать далее

Подпрограммы


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

Выполнение подпрограмм


Основные моменты выполнения подпрограммы иллюстрируются на Рис. 5.12. В вызывающей подпрограмму программе выполняется инст-рукция CALL, которая заносит адрес следующей инструкции в стек и загружает в регистр IP адрес соответствующей подпрограммы, осуще-ствляя таким образом переход на подпрограмму. После этого под-программа выполняется, как любой другой код. В подпрограммах мо-гут (часто это так и бывает) содержаться инструкции вызовов Читать далее

Передача параметров


Из программ, вызывающих подпрограммы (которые называют вызы-вающими программами или вызывающим кодом), подпрограммам часто передается информация. Например, в примере программы предыдущего раздела для передачи в подпрограмму PrintString использовался ре-гистр BX. Это действие называется передачей параметров. При этом параметры указывают подпрограмме, что нужно сделать.

Возвращаемые значения


Подпрограммы часто возвращают значения в вызывающую програм-му. В программах на Ассемблере, которые предполагается вызывать из программы на языке высокого уровня, для возврата значений вы должны следовать соглашениям данного языка. Например, функции, вызываемые в языке Си, должны возвращать 8- или 16-битовые значе-ния (значения символьного, целого типа и ближние указатели) в ре-гистре AX, а 32-битовые значения (длинные Читать далее

Сохранение регистров


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

Пример программы на языке Ассемблера


Давайте теперь попробуем реализовать все то, что мы узнали в последних двух главах, в виде полезного примера программы на Ас- семблере. Эта программа WCOUNT.ASM подсчитывает число слов в фай- ле и выводит его на экран.

Жизненный цикл программного средства


Под жизненным циклом ПС все этапы разработки и использования ПС, начиная от возникновения идеи создания ПС и заканчивая прекращения его использования. Имеется 5 способов подхода к разработке ПС. 1) Водопадный подход – при таком подходе последовательно проходят все этапы разработки ПС.

Методы спецификации семантики функций.


Существуют различные методы описания семантики функций: 1) Табличный (Какие переменные – состояние среды). 2) алгебраический – с помощью функциональных зависимостей. 3) Логический- с помощью логических соотношений 4) Графический

Методы контроля внешнего описания


1) Статический просмотр. Разработчик внимательно читает ещё раз. 2) Смежный контроль- в нем участвуют с одной стороны разработчики архитектуры и текста программ (контроль снизу), с другой стороны разработчики документации и комплекта тестов. 3) пользовательский контроль- контроль потребителя. 4) Ручная имитация (динамический контроль)- проверяется вручную с помощью набора входных данных выполнение функциональных спецификаций.

Основные классы архитектуры


1) Цельная прога.. 2) Комплекс автономно выполняемых программ. А) Любая прога самостоятельно активизируется пользователем. Б) Все остальные в этот момент не могут активизироваться. В) Все проги одновременно обрабатывают одну информационную среду.

Разработка структурного програмирования. Модульное программирование.


Понятие программного модуля. Основные характеристики Для реализации сложной системы она разбивается на ряд подсистем, те реализуемая прога разбивается на части, которые называются программными модулями. Такой метод – метод модульного программирования. Каждый модуль должен быть независим от остальных частей проги, те он разрабатывается самостоятельно компилируется и тестируется.

Методы разработки структуры программ


Любая сложная система имеет древовидную структуру, в узлах дерева находятся программные модули, а дуги являются связями между модулями. A уровень B C уровень D E F G уровень

Контроль культуры программ


1) Статический контроль. Просматривается структура программы и удовлетворяет ли каждый модуль описанным характеристикам. 2) Смежный контроль. Контроль сверху – разработчики архитектуры и внешнего описания. Снизу – разработчики модулей.

Язык Ассемблер.


1. Особенности языка Ассемблер. Основные сведения об архитектуре процессора и IBM PC. 2. Особенности программ в COM-файлах и в EXE-файлах. 3. Регистры микропроцессора, сегменты. Их роль в выполнении программы на Ассемблере. Вычисление абсолютного адреса. Форматы представления команды и кодирование данных в памяти ЭВМ.

Технология программирования. Структурный подход.


1. Понятие правильной программы. Причины возникновения ошибок в программных средствах. 2. Надежность ПС. Обеспечение надежности. 3. Жизненный цикл программного средства. Подходы к организации разработки программного средства. 4. Стадии жизненного цикла.

Язык программирования Си.


1. Функции. Передача аргументов в функцию. Возвращение значений из функции. 2. Формальные параметры ф-ции по умолчанию. Перегрузка ф-й. Inline-функции.

СТРУКТУРЫ.


ЦЕЛЬ РАБОТЫ: Изучить правила создания произвольного типа данных с помощью структуры и правила работы с этим типом. 1. Порядок выполнения работы.

СПИСОК ЗАДАНИЙ НА 10 ЛАБОРАТОРНУЮ РАБОТУ


1. Создать двунаправленный список. Вставлять новые узлы в начало списка. Распечатать список. 2. Создать двунаправленный список. Вставлять новые узлы в середину списка. Распечатать список. 3. Создать двунаправленный список. Вставлять новые узлы в конец списка. Распечатать список.

Последовательная запись и чтение файла. Прямой доступ к файлу по чтению и записи.


ЧТЕНИЕ ИЗ ФАЙЛА И ЗАПИСЬ ДАННЫХ В ФАЙЛ Метод доступа к дисковой памяти, поддерживающий использова-ние оглавления, «блокирование», «разблокирование» записей, обес-печивается прерыванием DOS 21H.

Создание и использование макроопределений и макрокоманд. Библиотеки макроопределений


Ассемблер имеет макросредства, которые определяются програм-мистом. Для этого задаются имя макроса, директива МАСRO. Завер-шается макроопределение директивой ENDM. <имя макроопр.> MACRO <тело макроопред., состоящее из операторов >   ENDM < конец макроопред.>.

Процедуры. Знакомство с некоторыми функциями 10 прерывания BIOS.


ПРЕРЫВАНИЯ ДЛЯ СЛУЖБ ROM BIOS Двенадцать прерываний ROM BIOS распадаются на пять групп: — 10Н, 13Н, 14Н, 15Н, 16Н, 17Н прерывания обслуживают конкрет-ные перефирийные устройства; — 11Н, 12Н прерывания сообщают о конфигурации компьютера; — 1АН работает с часами времени-даты;

Способы адресации в командах языка Ассемблера Тема 5. Знакомство с некоторыми функциями 21 прерывания DOS.


РЕЖИМЫ АДРЕСАЦИИ Под адресацией данных подразумевают способы описания соот-ветствующих адресов хранения операндов, используемых в программе. Различают основные способы описания операндов (и соответствующие формы адресации): 1. Операнды-регистры; 2. Непосредственные операнды; 3. Операнды в памяти.


ЛАБОРАТОРНАЯ РАБОТА N 1 Тема 1. Архитектура центрального процессора. Тема 2. Типы данных в языке Ассемблера. Тема 3. Использование средств создания и отладки программ на языке Ассемблера.