Разработка программы на языке ассемблера для CPU i8086

Выбор режимов адресации, посредством которых будет осуществлен доступ к данным. Этапы создания программы. Характеристика таблицы символов и полученного файла листинга. Анализ изменения состояния регистра IP при выполнении команд JMP, Jcc, LOOPx.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 25.03.2012
Размер файла 4,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

  • Введение
  • 1 Постановка задачи
  • 2 Анализ задачи
    • 2.1 Определение входной и выходной информации
    • 2.2 Выбор модели памяти
    • 2.3 Выбор режимов адресации, посредством которых будет осуществлен доступ к данным, размещенным в оперативной памяти
    • 2.4 Разработка блок-схемы программы
  • 3 Реализация
    • 3.1 Описание этапов создания программы
    • 3.2 Характеристика полученной таблицы символов
    • 3.3 Характеристика полученного файла листинга

3.4 Характеристика полученного загрузочного модуля

  • 3.5 Анализ команд программы
    • 3.6 Анализ изменения состояния регистра IP при выполнении команд JMP, Jcc, LOOPx
    • 3.7 Анализ дампа памяти
  • 4 Тестирование
  • Заключение
  • Список использованной литературы
  • Введение
  • Курсовой проект «Разработка программы на языке ассемблера для CPU i8086» имеет цель обучить практическому применению знаний по дисциплине «Микропроцессорные средства и системы» и формирование умения самостоятельной работы с научной и справочной литературой и умение делать на основе ее изучения выводы и обобщения, создание и развитие навыков научно-исследовательской работы и практической деятельности.
  • Основными задачами курсовой работы следует считать: развитие навыков научно-исследовательской работы в части описания и формального представления основ функционирования микропроцессорных систем; а также практическое освоение методологии программирования микропроцессорных систем; приобретение опыта выработки обоснованных решений; совершенствование приемов работы с научно-технической и нормативной литературой, а также получение специальных навыков по разработке сопроводительной документации.

В первом разделе, который называется «Постановка задачи», будет размещена формулировка задачи и подробное перечисление того, что требуется сделать.

Во втором разделе, под названием «Анализ задачи», будет определена входная и выходная информация, выбрана модель памяти. А так же будут выбраны режимы адресации для доступа к данным и разработана блок-схема.

В третьем разделе, который называется «Реализация», будет представлено описание этапов создания программы.

В четвертом разделе под названием «Тестирование» будет произведён тест полученной программы на пяти наборах входных значений.

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

1 Постановка задачи

Необходимо разработать программу на языке ассемблера для CPU i8086, выполняющую преобразование строки символов и выводящую полученный результат на экран.

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

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

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

Окончательную версию программы необходимо протестировать. Тестирование будет проводиться как минимум на пяти входных переменных.

Так же в приложении Г представлена работа выполнения в АЛУ команды арифметического сложения операндов.

В приложение Е будут помещены страницы презентации.

2 Анализ задачи

Дана строка, содержащая не менее пяти слов разделённых одним или несколькими пробелами. Требуется переставить символы в каждом слове в обратном порядке и каждое слово переставить в обратном порядке.

2.1 Определение входной и выходной информации

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

Рисунок 1 - Таблица ASCII

Все поля, зарезервированные поля данных должны быть определены в составе сегмента данных программы (data segment).

Для определения данных используются, главным образом, три директивы ассемблера: db (define byte, определить байт) для записи байтов, dw (define word, определить слово) для записи слов и dd (define double word, определить двойное слово) для записи двойных слов:

db 255

dw 6.553

dd 100000000

По условию задачи дана строка байт, поэтому необходимо использовать define byte (db).

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

Рассмотрим целые числа без знака и со знаком. Числа без знака это самый простой вид чисел: они представляют собой весь диапазон двоичных чисел, которые можно записать в байте, слове или двойном слове. Для байта числа без знака могут принимать значения от 00h (0) до FFh (255); для слова - от 0000h (0) до FFFFh (65535); для двойного слова - от 00000000h (0) до FFFFFFFFh (4294967295). Пример кодирования беззнаковых чисел:

2910=1D16

В вычислительной технике принято записывать отрицательные числа в так называемом дополнительном коде, который образуется из прямого путем замены всех двоичных нулей единицами и наоборот (обратный код) и прибавления к полученному числу единицы. Это справедливо как для байтовых (8-битовых) чисел, так и для чисел размером в слово или в двойное слово. Пример кодирования знаковых чисел:

(-17)10 = EF16

Результат действия можно разместить в ячейке оперативной памяти или регистре процессора.

Пример размещения результата суммирования в регистре bl:

data segment

a db 2

b db 8

code segment

start:

mov bl, a

add bl, b ; результат сохраняется в регистре bl

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

data segment

a db 2

b db 8

cym db ?

code segment

start:

mov bl, a

add bl, b

mov cym, bl ;результат суммирования копируется в ячейку памяти cym

Для решения поставленной задачи используем второй вариант размещения результатов работы в ячейке оперативной памяти.

2.2 Выбор модели памяти

С помощью директивы .Model можно выбрать одну из стандартных моделей памяти.

Каждая модель имеет свои ограничения по максимальному размеру памяти, выделяемой для команд и данных. Для различных моделей требуется определенное число байт под размещение команд и данных. При использовании всех моделей памяти, кроме tiny, создаются программы типа .exe. Модель памяти .tiny используется для разработки .com файлов.

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

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

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

Сегемент стека используется для прерываний и для сохранения значений регистров. Так как в программе это используется не много то размер стека выбираем равным 64 байт или 40h байт.

.stack

dw 64 dup(0)

По файлу листинга можно сделать вывод о размере сегменте данных и сегменте кодов.

Сегмент данных будет примерно занимать 640 байт.

Сегмент кодов будет примерно занимать 1056 байт.

2.3 Выбор режимов адресации, посредством которых будет осуществлен доступ к данным, размещенным в оперативной памяти

Режимом адресации называют процедуру нахождения операнда для выполняемой команды. Если команда использует два операнда, то для каждого из них должен быть задан способ адресации, причем режимы адресации первого и второго операнда могут как совпадать, так и различаться. Операнды команды могут находиться в разных местах: непосредственно в составе кода команды, в каком-либо регистре, в ячейке памяти(описание регистров процессора находится в приложении Б).

При реализации задачи буду использовать 3 режима адресации:

- Регистровая адресация

- Прямая адресация

- Индексная адресация

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

Примеры использования регистровой адресации операндов:

dec di; увеличивает содержимое регистра di на 1

mov bx,di; содержимое di засылаем в bx

Прямая адресация (абсолютная) используется в тех случаях, когда явно известен адрес операнда. Адресуется память непосредственным указанием смещения. Адрес ячейки памяти (слова или байта) указывается в команде, обычно в символической форме. По умолчанию считается, что все операнды находятся в сегменте данных, поэтому при вычислении адреса используется текущее содержимое регистра DS. Сегмент можно переопределить. Фактически, прямая адресация - это непосредственное указание смещения d16.

Примеры использования прямой абсолютной адресации:

mov g,si ;запись содержимого регистра si в шестнадцати битную переменную с именем g, расположенную в сегменте данных

mov si,d ; значение шестнадцати битной переменной d заносится в регистр si

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

Примеры использования индексной адресации:

mov al,str[si] ; в регистр al заносится 8-битный элемент из массива str по индексу si

mov mas[si],dl ; в элемент массива mas по индексу si заносится содержимое регистра dl

2.4 Разработка блок-схемы программы

Блок-схема алгоритма решения задачи находится в приложении А.

В ней отображены следующие этапы решения задачи:

· В массив записывается количество пробелов между слов.

· Перестановка символов в обратном порядке и перестановка слов в обратном порядке.

· Вывод получившейся строки на экран.

3 Реализация

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

3.1 Описание этапов создания программы

Программист использует текстовый редактор (text editor) для написания исходного файла в кодировке ASCII.

Следующая операция состоит в трансляции исходного текста программы, т.е. в преобразовании строк исходного языка в коды машинных команд. Эта операция выполняется с помощью транслятора с языка ассемблера. После трансляции образуются два файла - листинг трансляции *.LST и объектный файл с расширением OBJ. Листинг представляет собой текстовый файл, предназначенный для чтения в каком-нибудь редакторе, и содержит исходный текст оттранслированной программы вместе с машинными кодами команд. В случае обнаружения ошибок транслятором, они также включаются в листинг.

Объектный файл является основным результатом работы транслятора и представляет собой текст программы, преобразованный в машинные коды. Объектный файл может включать вызовы подпрограмм из внешних библиотек загрузочных модулей. Хотя в этом файле уже присутствуют коды команд, он не может быть выполнен. Для того чтобы получить выполнимую программу объектный файл необходимо скомпоновать.

Компоновка объектного файла выполняется с помощью программы компоновщика (редактора связей) (или загрузчик -linker). Эта программа получила такое название потому, что ее основное назначение - подсоединение к файлу с основной программой файлов с подпрограммами из библиотек и настройка связей между ними. Однако, компоновать необходимо даже простейшие программы, не содержащие подпрограмм, т.к. компоновщик также создает специальный заголовок в начале программы и изменяет формат объектного файла, преобразуя его в выполнимый файл с расширением EXE. Такой файл может быть загружен в ОП и выполнен. Файл с программой компоновщика обычно именуется LINK.EXE.

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

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

Размещено на http://www.allbest.ru/

Рисунок 2 - Цикл трансляции, загрузки и выполнения

Ассемблер дополнительно создает файл листинга, в который копирует исходную программу (в удобном для печати виде), с номерами строк и соответствующими машинными кодами. Загрузчик создает дополнительный файл перекрестных ссылок (map file), в котором находится информация о сегменте кода программы, сегментах данных и стека.

Файл библиотеки загрузочных модулей содержит подпрограммы, которые уже оттранслированы в машинные коды. Все процедуры библиотеки, запрашиваемые из других программ, копируются в исполняемый файл на этапе загрузки. (При программировании на языках высокого уровня, например, на PASCAL или С, библиотеки загрузочных модулей используются очень широко, хотя это и скрыто от программиста.)

Приведем список всех имен файлов, которые создаются при трансляции и компоновке программы.

Таблица1 - Файлы, создаваемые ассемблером и загрузчиком.

Имя файла

Описание

Этап создания

polusumm.asm

Исходная программа

Редактирование

polusumm.obj

Объектный модуль

Трансляция

polusumm.lst

Листинг

Трансляция

polusumm.exe

Выполняемая программа

Загрузка

polusumm.map

Файл перекрестных ссылок

Загрузка

Файл листинга отображает всю информацию программе, показывая смещение каждой команды, машинные коды, сгенерированные ассемблером, и исходный код программы.

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

3.2 Характеристика полученной таблицы символов

При создании загрузочного модуля формируется таблица со всеми данными, которые используются в программе (рисунок 3).

Рисунок 3 - Таблица символов

В первом столбце таблицы отображены имена символов, использованных в программе. Во втором столбце отображено смещение относительно начала сегмента. В третьем столбце описан размер, в четвёртом - тип. В пятом отображена информация о том в каком сегменте находится элемент.

3.3 Характеристика полученного файла листинга

При реализации задачи получается файл листинга (Приложение Д).

Рисунок 3 - Фрагмент файла листинга

На фрагменте файла листинга (рис. 3) видны следующие столбцы:

1. Номера строк

2. Смещение

3. Машинные коды команд (данных)

4. Мнемоническое представление

3.4 Характеристика полученного загрузочного модуля

При реализации поставленной задачи мы получили загрузочный модуль Zadacha.exe размером равным 1116 байт. Этот файл может быть непосредственно загружен в ОП и выполнен.

3.5 Анализ команд программы

программа ассемблер

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

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

1. mov dx,di

Команда MOV замещает операнд-приемник операндом-источником. При этом исходное значение операнда-приемника теряется. Операнд-источник не изменяется. В зависимости от описания операндов, пересылается слово или байт. Команда не воздействует на флаги процессора. В нашем случае значение регистра DX пересылается в регистр DI.

Машинный код команды: 1000 1011 1101 0111

16-ричный код команды: 8BD716

Приемник - регистровая адресация. Источник - регистровая адресация.

Выполним действие:

0000 0000 0000 0000

0000 0000 0000 0010

0000 0000 0000 0010

Рисунок 4 - Выполнение команды mov dx,di

2. cmp di,len

Команда сравнения двух чисел.

Машинный код команды: 1000 0011 1111 1111 0001 0101

16-ричный код команды: 83FF1516

Приемник - регистровая адресация. Источник - прямая абсолютная адресация.

Выполним действие:

_0000 0000 0000 0010

0000 0000 0001 0101

1111 1111 1110 1100

Установим флаги:

CF=1; ZF=0; SF=1; OF=0; PF=1; AF=1

Ответ: FFED16

Рисунок 5 - Выполнение команды cmp di,len

jge c4

Короткий переход, если больше или равно.

Машинный код команды: 0111 1101 0000 0010

16-ричный код команды: 7D0216

Рисунок 6 - Выполнение команды cmp di,len

3. inc cx

Увеличивает приемник (регистр или переменная) на 1. Единственное отличие этой команды от ADD приемник,1 состоит в том, что флаг CF не затрагивается. Остальные арифметические флаги (OF, SF, ZF, AF, PF) устанавливаются в соответствии с результатом сложения.

Машинный код команды: 0100 0001

16-ричный код команды: 4116

Регистровый режим адресации.

Выполним действие:

+0000 0000 0000 1101

0000 0000 0000 0001

0000 0000 0000 1110

Установим флаги:

CF=?; ZF=0; SF=0; OF=0; PF=1; AF=0; IF=1; DF=0

Ответ: 0E16

Рисунок 7 - Выполнение команды inc cx

4. xor di,di

Команда выполняет операцию логического исключающего ИЛИ над соответствующими парами битов операндов приемник и источник. Флаги: CF=0, OF=0, PF, AF не определен, ZF, SF.

Машинный код команды: 0011 0011 1111 1111

16-ричный код команды: 33FF16

Регистровый режим адресации.

Выполним действие:

0000 0000 0001 1011

0000 0000 0001 1011

0000 0000 0000 0000

Установим флаги:

CF=0; ZF=1; SF=0; OF=0; PF=1; AF=?

Ответ: 0016

Рисунок 8 - Выполнение команды xor di,di

3.6 Анализ изменения состояния регистра IP при выполнении команд JMP, Jcc, LOOPx

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

cmp cx,0

jz l_str_pust

Режим адресации: прямой относительный режим адресации

Код команды: 7468h; IP1=000D IP2=000F

Короткий переход, если нуль (ZF=1). Если условие истинно переход по адресу IP+Rel8. В данном случае при истинности условия состояние регистра IP будет иметь следующий вид IP=IP+68h.

cmp di,len

jge c4

Режим адресации: прямой относительный режим адресации

Код команды: 7D02h; IP1=002A IP2=002C

Короткий переход, если больше или равно (SF=OF). Если условие истинно переходим по адресу IP+Rel8. В данном случае при истинности условия состояние регистра IP будет иметь следующий вид IP=IP+02h.

cmp di,len

je exit

Режим адресации: прямой относительный режим адресации

Код команды: 742Bh; IP1=0058 IP2=005A

Короткий переход, если равно (ZF=1). Если условие истинно переходим по адресу IP+Rel8. В данном случае при истинности условия состояние регистра IP будет иметь следующий вид IP=IP+26h.

loop b1

Режим адресации: прямой относительный режим адресации

Код команды: E2F9h; IP1=0073 IP2=006E

Основная команда цикла. Выполняет декремент содержимого регистра СХ, анализируя его: если СХ=0, то передает управление следующей команде, иначе передает управление команде, метка которой указана в качестве операнда.

Состояние регистра IP будет иметь следующий вид: IP=IP+F9h.

3.7 Анализ дампа памяти

Дамп сегмента данных:

По адресу 0710:0000 и по 0710:001D находится исходная строка. Далее следуют необходимые для работы программы переменные.

Рисунок 9 - Дамп сегмента данных

Дамп сегмента стека:

Стек в программе используется во время прерываний.

Рисунок 10 - Дамп сегмента стека

Дамп сегмента кодов находится в приложении В.

4 Тестирование

Цель тестирования: проверка работоспособности программы на различных наборах входных переменных.

Разработаю пять тестовых примеров для тестирования реализованной задачи задачи:

Тест 1

Исходная строка: 'evedfgdsfag 53809 jfdSDmk 43 '

Ожидаемый результат: '34 kmDSdfj 90835 gafsdgfdeve '

Результат выполнения программы: '34 kmDSdfj 90835 gafsdgfdeve '

Рисунок 11 - Тест №1

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

Тест 2

Исходная строка: ' fijoei8 1122 90 qwxm cc'

Ожидаемый результат: ' cc mxwq 09 2211 8ieojif'

Результат выполнения программы: ' cc mxwq 09 2211 8ieojif'

Рисунок 12 - Тест №2

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

Тест 3

Исходная строка: ' 1234 56 88211 99 '

Ожидаемый результат: ' 99 11288 65 4321 '

Результат выполнения программы: ' 99 11288 65 4321 '

Рисунок 13 - Тест №3

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

Тест 4

Исходная строка: ''

Ожидаемый результат: программа должна вывести сообщение 'otsutstvuyt simvoli'

Результат выполнения программы: 'otsutstvuyt simvoli'

Рисунок 14 - Тест №4

В том случае если входная строка будет пуста, программа будет выводить сообщение 'otsutstvuyt simvoli'.

Тест 5

Исходная строка: '1 23'

Ожидаемый результат: '32 1'

Результат выполнения программы: '32 1'

Рисунок 15 - Тест №5

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

Заключение

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

Самостоятельно научился высчитывать предполагаемый размер программы, читать дампы памяти, анализировать состояние регистра флагов.

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

Список использованной литературы

1. А.Н Степанов «Архитектура вычислительных систем и компьютерных сетей», Питер 2007г.

2. А.А. Ровдо «Микропроцессоры от Intel 8086 до Pentium3 и Xeon AMD-K6-3», Москва ДМК 2000г.

3. Б.Я. Цикер, С.А. Орлов «Организация ЭВМ и систем», Питер 2004г.

4. А.Н. Морозевич «Микро ЭВМ, микропроцессоры и основы программирования», Минск Вышэйшая школа 1990г.

5. В.Ф. Шалыгин «Программирование МПС», Москва Высшая школа 1990г.

6. Ю.В. Новиков, П.К. Скоробогатая «Основы МПТ», Москва интернет институт информационных технологий 2003 г.

7. В.И. Бойко и др. «Микропроцессоры и микроконтроллеры», БХВ Петербург 2004г.

Размещено на Allbest.ru


Подобные документы

  • Изучение символьных и строковых типов данных, алгоритма задачи на языке программирования Паскаль. Описания получения и установки отдельного символа строки, изменения регистра символов. Анализ создания и просмотра файла, поиска и сортировки информации.

    курсовая работа [440,7 K], добавлен 13.06.2011

  • Рассмотрение основ создания калькулятора на объектно–ориентированном языке программирования Java, который будет подсчитывать длину текста. Математическая модель и алгоритм работы программы. Описание файлов готовой программы расчета символов в тексте.

    курсовая работа [276,5 K], добавлен 28.11.2014

  • Разработка транслятора упрощенного языка ассемблера. Преобразование файла в мнемокодах в файл, содержащий объектный двоичный код. Анализ набора команд. Выбор формата ассемблерной команды. Методика определения типа операнда. Формирование строки листинга.

    курсовая работа [189,2 K], добавлен 14.02.2016

  • Порядок составления программ копирования строки символов в рядом расположенную область памяти в обратном порядке и напрямую. Определение адресов источника и получателя. Организация адресации операндов, строк и циклов посредством промежуточного регистра.

    контрольная работа [20,6 K], добавлен 09.11.2010

  • Разработка программы, обеспечивающей ввод и редактирование информации (новостей) об объектах в соответствии с заданной предметной областью. ER-модель базы. Исходный код программы. Доступ к данным, осуществляемый с использованием средств JDBC или ODBC.

    лабораторная работа [624,1 K], добавлен 13.11.2014

  • Приемы управления работой печатающих устройств в MS-DOS. Формирование новых символов для матричного принтера. Разработка команд для их загрузки в оперативную память данного устройства. Подбор программы, реализующей процесс печати заданных символов.

    курсовая работа [814,6 K], добавлен 29.06.2011

  • Разработка клиентской программы, демонстрирующей возможности таблицы символов, реализованной на базе бинарного поиска. Программная проверка подлинности информационного массива. Временная эффективность поиска, алгоритмов создания таблицы символов.

    контрольная работа [235,1 K], добавлен 10.03.2019

  • Принцип работы транслятора. Исследование формата данных объектного файла шестнадцатиразрядной системы DOS для последующего преобразования его в файл программы. Используемые директивы и команды ассемблера. Алгоритмы программы и таблицы компилятора.

    контрольная работа [35,9 K], добавлен 07.07.2012

  • Этапы процедуры принятия решений. Разработка математического алгоритма. Блок-схема алгоритма работы программы. Разработка программы на языке программирования С++ в среде разработки MFC. Текст программы определения технического состояния станка с ЧПУ.

    курсовая работа [823,0 K], добавлен 18.12.2011

  • Исследование арифметических, логических и вспомогательных операций, выполняемых микропроцессором. Построение блок-схемы инициализации резидентной программы и тела резидента. Характеристика основных особенностей написания программы на языке ассемблера.

    лабораторная работа [67,8 K], добавлен 20.11.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.