Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экзамен информатика.doc
Скачиваний:
27
Добавлен:
25.04.2019
Размер:
464.38 Кб
Скачать
  1. Понятие о языке Ассемблера. Этапы разработки программы на ассемблере.

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

Разработка программы на Ассемблере состоит из следующих этапов:

1)Составление алгоритма в виде блок-схемы или структурного описания,

2)Реализация алгоритма в виде команд макроассемблера, набрав текст программы в редакторе,встроенном в FAR. Даем команду SHIFT+F4, в возникшем окне создаем файл с расширением ASM, набираем текст

3)Переводим(транслируем,ассемблируем) программу с помощью ассемблера. Мы используем макроассемблер MASM 6.12. В результате будет создан объектный файл. Если на этом этапе будут обнаружены ошибки, то их следует исправить с помощью редактора

4)Преобразование объектного файла в исполняемый файл типа COM или EXE

5)Выполнить исполняемый файл, запустив его обычным оборазом

  1. Windows api функция для вывода символов на экран. Ее основные параметры и их назначение.

Попробуем организовать вывод результата работы на экран, иначе говоря, сделать так, чтобы числа-результаты вывелись после простого запуска файла name.EXE

При этом будут использоваться несколько процедур, прототипы которых находятся в файлах с расширением .INC. Сами процедуры — Функции Windows API(Application Programming Interface – интерфейс прикладных программ) находятся в библиотеках с расширением .LIB.

Потребуется процедура GetStdHandle, которая получает дескриптор (описание) стандартного устройства, в нашем случае устройства вывода.

Также нужна процедура WriteConcoleA, выводящая символы на экран. Эта процедура содержит 5 параметров:

1) stdout — дескриптор устройства ввода-вывода (монитора), полученный процедурой GetStdHandle;

2) ADDR buf — адрес начала сообщения;

3) BSIZE – размер сообщения,т.е. Число байтов в нем;

4) ADDR cWritten – адрес участка памяти, где хранится процедура WriteConcoleA сохранит число выведенных на экран символов;

5) NULL всегда равен нулю;

Но самое главное, числа нужна преобразовать в символы(поскольку программа может выводить только символы). Для такого преобразования в системе Windows есть специальная процедура wsprintf. В отличии от многих других процедур, число параметров wsprintf переменно и зависит от количества преобразуемых чисел. Но первые параметры всегда одни и те же: это адрес буфера, где процедура сохраняет число в виде последовательности символов, адрес форматной строки, указывающий процедуре, какое выполнить преобразование, и, конечно, само преобразумеое число.

Так же используется дополнительный блок данных, который начинается со служебного слова .data . Он содержит список переменных с их описанием или даже с заданием ссамих значений переменных. Для описания переменных размера двойного слова используется служебное слово DWORD. Для переменных размером в байт — BYTE. Если значение переменной пока неопределено, то указывается знак «?»