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


StdIn PROC lpszBuffer:DWORD, bLen:DWORD



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

Ввод и вывод элементов массива с преобразованием во внутреннее представление.

Цель работы

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

 

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

Процессоры семейства IA-32 поддерживают команды обработки строк для организации циклической обработки последовательностей элементов длиной 1, 2 или 4 байта.

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

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

2. Процедура ввода.

3. Процедура замены символов конца строки нулем.

4. Функция преобразования завершающейся нулем строки в число.

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

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

7. Команда организации счетного цикла.

 

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

 

Написать программу ввода массива из 12 чисел размером двойное слово и вывода того же массива:

¾ числа должны вводиться в одну строку через пробелы;

¾ вывод всех чисел должен осуществляться каждое в своей строке;

¾ перед отрицательными числами необходимо выводить знак " -".

 

Пример выполнения линейной программы в среде разработки 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, расположенном справа вверху.

 

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

 

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

Библиотека 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

...

 

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

Ввод и вывод элементов массива с преобразованием во внутреннее представление.

Цель работы

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

 

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

Процессоры семейства IA-32 поддерживают команды обработки строк для организации циклической обработки последовательностей элементов длиной 1, 2 или 4 байта.

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

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

2. Процедура ввода.

3. Процедура замены символов конца строки нулем.

4. Функция преобразования завершающейся нулем строки в число.

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

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

7. Команда организации счетного цикла.

 

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

 

Написать программу ввода массива из 12 чисел размером двойное слово и вывода того же массива:

¾ числа должны вводиться в одну строку через пробелы;

¾ вывод всех чисел должен осуществляться каждое в своей строке;

¾ перед отрицательными числами необходимо выводить знак " -".

 

Пример выполнения линейной программы в среде разработки 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, расположенном справа вверху.

 

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

 

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

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

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

StdIn PROC lpszBuffer: DWORD, bLen: DWORD

Первый операнд – адрес буфера ввода, второй – размер буфера ввода (до 128 байт). В буфере ввода введенная строка завершается символом конца строки (13, 10).

2. Процедура замены символов конца строки нулем:


Поделиться:



Популярное:

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


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