Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Программирование целочисленных вычислений. Логические команды.



Лабораторная работа №7

Программирование целочисленных вычислений. Логические команды.

Цель работы

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

 

Предмет исследования

Процессоры семейства IA-32 поддерживают логические операции над однобайтовыми, двухбайтовыми и четырехбайтовыми целыми числами.

Контрольные вопросы

1. Определите структуру машинной команды ассемблера.

2. Какие типы данных обрабатывает современный процессор фирмы Intel?

3. Как определяется размер операнда машинной команды?

4. Что такое «модель памяти Flat», и для чего она используется?

5. Какие команды относятся к командам, манипулирующим с битами?

7. Как реализованы команды ввода-вывода?

 

Задание к работе

1) Разработать консольное приложение, использую ассемблер MASM32, вычисляющее следующее логические выражения( =N – последняя цифра зачетки, – предпоследняя цифра, ):

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

N Операции   N Операции
 
 
 
 
 

2) Результат операций вывести в консольном окне

3) В соответствии с вариантом выполнить команды сдвига результата вычислений(N – последняя цифра зачетки).

N Команда
0, 1, 2 сдвиг влево логический на 2;
3, 4, 5 сдвиг влево арифметический на 3
6, 7 сдвиг вправо арифметический 2
8, 9 сдвиг вправо логический 1

 

4) Подготовить отчет по выполнению работы.

Пример выполнения линейной программы в среде разработки RadASM ассемблер Masm32

Среда разработки RadASM представляет собой среду разработки программного обеспечения для ОС Windows, изначально предназначенную для написания программ на языке ассемблера. Имеет гибкую систему файлов настроек, благодаря чему может быть использована как среда разработки программного обеспечения на высокоуровневых языках, а также документов, основанных на языках разметки.

Проект представляет собой набор файлов. В файле «Имя_проекта.rap» (расширение – rap) содержится информация о настройках проекта; файлах, входящих в проект. Помимо этого файла, проекта так же содержит файл «Имя_проекта.asm» (расширение – asm) – файл, содержащий основную часть программы. Так же могут входить дополнительные файлы.

Главное окно программ при запуске выглядит следующим образом (рисунок 1).

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

Для создания нового проекта необходимо зайти в меню «Файл» и выбрать пункт «Новый проект» (рисунок 2).

Рисунок 2 – Окно пункта меню «Файл»

 

В выпадающем списке «Ассемблер» необходимо выбрать строку «masm» (рисунок 3). Тип проекта – «Console App». Ввести имя проекта. Имя проекта должно содержать ОДНО СЛОВО БЕЗ ПРОБЕЛОВ. При необходимости ввести описание. По умолчанию проекты сохраняются в папке «radasm\Masm\Projects», где radasm – имя папки, содержащий среду. Необходимости указать местоположение проекта на диске D: \\... Нажать кнопку «Next > ».

 

Рисунок 3 – Выбор типа проекта

Далее необходимо выбрать базовый шаблон проекта (рисунок 4). Шаблоны находятся в папке «radasm\Masm\Templates\». В шаблоне уже прописан базовый код, общий для всех проектов и необходимые настройки компилятора и отладчика. После создания проекта, в редакторе будет загружена программа (рисунок 5). В данной лабораторной работе не используется шаблон (Нажимаем «Next > ».)

Рисунок 4 – Выбор шаблона проекта

 

Предпоследнее окно Мастера предлагает выбрать типы создаваемых файлов – выбираем Asm (исходные файлы ассемблера), и папки – выбираем папку Bak, используемую для размещения предыдущих копий файлов (рисунок 5).

Рисунок 5 – Выбор типов файлов и папок

 

Последнее окно Мастера определяет доступные для работы с проектом пункты меню запуска приложения Создать и выполняемые команды. В данной сборке выполняемые команды уже настроены, поэтому в нем можно ничего не менять, хотя использоваться будут не все пункты созданного меню, а только следующие: Assemble (транслировать или, точнее, ассемблировать), Link (компоновать), Run (выполнить) и Run w/Debug (выполнить в подключенном отладчике).

Рисунок 6 – Пункты меню запуска приложения

 

В результате будет получена пустая заготовка консольного приложения Windows. Просмотреть эту заготовку можно, дважды щелкнув левой клавишей мыши по файлу *.asm в окне навигатора Project, расположенном справа вверху.

 

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

 

При выполнение используйте следующие команды:

Логические команды.

NOT Операнд; логическое НЕ;

AND Операнд1, Операнд2; логическое И;

OR Операнд1, Операнд2; логическое ИЛИ;

XOR Операнд1, Операнд2; исключающее ИЛИ;

TEST Операнд1, Операнд2; И без записи результата.

Операнды байты или слова.

Пример. Выделить из числа в AL первый бит:

And al, 10000000B

Команды сдвига

Mov bx, ax

Shl ax, 1

Shl ax, 1

Add ax, bx

Shl ax, 1

 

Организация ввода вывода

Библиотека MASM32.lib содержит специальные подпрограммы ввода-вывода консольного режима:

1. Процедура ввода:

DATA

zapros DB 'Input value: ', 13, 10, 0; запрос

buffer DB 10 dup ('0'); буфер ввода

CODE

...

Invoke StripLF, ADDR buffer

; Преобразование в SDWORD

Invoke atol, ADDR buffer; результат в EAX

...

4. Процедура вывода завершающейся нулем строки в окно консоли:

StdOut PROC lpszBuffer: DWORD ; буфер вывода, зав. нулем

5. Процедура преобразования числа в строку:

DATA

result DWORD?; поле результата

string DB 13, 10, 'Result ='; заголовок вывода

resstr DB 16 dup (? ); выводимое число

CODE

...

; Преобразование

Invoke StdOut, ADDR string

...

 

 

Лабораторная работа №7

Программирование целочисленных вычислений. Логические команды.

Цель работы

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

 

Предмет исследования

Процессоры семейства IA-32 поддерживают логические операции над однобайтовыми, двухбайтовыми и четырехбайтовыми целыми числами.

Контрольные вопросы

1. Определите структуру машинной команды ассемблера.

2. Какие типы данных обрабатывает современный процессор фирмы Intel?

3. Как определяется размер операнда машинной команды?

4. Что такое «модель памяти Flat», и для чего она используется?

5. Какие команды относятся к командам, манипулирующим с битами?

7. Как реализованы команды ввода-вывода?

 

Задание к работе

1) Разработать консольное приложение, использую ассемблер MASM32, вычисляющее следующее логические выражения( =N – последняя цифра зачетки, – предпоследняя цифра, ):

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

N Операции   N Операции
 
 
 
 
 

2) Результат операций вывести в консольном окне

3) В соответствии с вариантом выполнить команды сдвига результата вычислений(N – последняя цифра зачетки).

N Команда
0, 1, 2 сдвиг влево логический на 2;
3, 4, 5 сдвиг влево арифметический на 3
6, 7 сдвиг вправо арифметический 2
8, 9 сдвиг вправо логический 1

 

4) Подготовить отчет по выполнению работы.

Пример выполнения линейной программы в среде разработки RadASM ассемблер Masm32

Среда разработки RadASM представляет собой среду разработки программного обеспечения для ОС Windows, изначально предназначенную для написания программ на языке ассемблера. Имеет гибкую систему файлов настроек, благодаря чему может быть использована как среда разработки программного обеспечения на высокоуровневых языках, а также документов, основанных на языках разметки.

Проект представляет собой набор файлов. В файле «Имя_проекта.rap» (расширение – rap) содержится информация о настройках проекта; файлах, входящих в проект. Помимо этого файла, проекта так же содержит файл «Имя_проекта.asm» (расширение – asm) – файл, содержащий основную часть программы. Так же могут входить дополнительные файлы.

Главное окно программ при запуске выглядит следующим образом (рисунок 1).

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

Для создания нового проекта необходимо зайти в меню «Файл» и выбрать пункт «Новый проект» (рисунок 2).

Рисунок 2 – Окно пункта меню «Файл»

 

В выпадающем списке «Ассемблер» необходимо выбрать строку «masm» (рисунок 3). Тип проекта – «Console App». Ввести имя проекта. Имя проекта должно содержать ОДНО СЛОВО БЕЗ ПРОБЕЛОВ. При необходимости ввести описание. По умолчанию проекты сохраняются в папке «radasm\Masm\Projects», где radasm – имя папки, содержащий среду. Необходимости указать местоположение проекта на диске D: \\... Нажать кнопку «Next > ».

 

Рисунок 3 – Выбор типа проекта

Далее необходимо выбрать базовый шаблон проекта (рисунок 4). Шаблоны находятся в папке «radasm\Masm\Templates\». В шаблоне уже прописан базовый код, общий для всех проектов и необходимые настройки компилятора и отладчика. После создания проекта, в редакторе будет загружена программа (рисунок 5). В данной лабораторной работе не используется шаблон (Нажимаем «Next > ».)

Рисунок 4 – Выбор шаблона проекта

 

Предпоследнее окно Мастера предлагает выбрать типы создаваемых файлов – выбираем Asm (исходные файлы ассемблера), и папки – выбираем папку Bak, используемую для размещения предыдущих копий файлов (рисунок 5).

Рисунок 5 – Выбор типов файлов и папок

 

Последнее окно Мастера определяет доступные для работы с проектом пункты меню запуска приложения Создать и выполняемые команды. В данной сборке выполняемые команды уже настроены, поэтому в нем можно ничего не менять, хотя использоваться будут не все пункты созданного меню, а только следующие: Assemble (транслировать или, точнее, ассемблировать), Link (компоновать), Run (выполнить) и Run w/Debug (выполнить в подключенном отладчике).

Рисунок 6 – Пункты меню запуска приложения

 

В результате будет получена пустая заготовка консольного приложения Windows. Просмотреть эту заготовку можно, дважды щелкнув левой клавишей мыши по файлу *.asm в окне навигатора Project, расположенном справа вверху.

 

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

 

При выполнение используйте следующие команды:

Логические команды.

NOT Операнд; логическое НЕ;

AND Операнд1, Операнд2; логическое И;

OR Операнд1, Операнд2; логическое ИЛИ;

XOR Операнд1, Операнд2; исключающее ИЛИ;

TEST Операнд1, Операнд2; И без записи результата.

Операнды байты или слова.

Пример. Выделить из числа в AL первый бит:

And al, 10000000B

Команды сдвига


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-03; Просмотров: 618; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.044 с.)
Главная | Случайная страница | Обратная связь