Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2012- СИСПРОГ на МАСМ.doc
Скачиваний:
21
Добавлен:
09.11.2019
Размер:
553.47 Кб
Скачать

1Организация среды исполнения для масм

1.1Цель работы

Научиться задавать значения переменных среды исполнения, которые обеспечат корректную работу компилятора, компоновщика и других компонент пакета МАСМ. Изучить основы командного языка консольных пакетных файлов.

1.2 Теоретические сведения

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

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

Но часто возникают ситуации, когда вводить команды вручную становится неудобно. Во-первых, когда приходится многократно вводить длинные, сложные команды и при этом легко допустить ошибку печати. Во-вторых, когда пользователь хочет выполнить некоторую логическую связанную последовательность действий одним вызовом. Для этого существует возможность создавать так называемые пакетные командные файлы. Это обычные текстовые файлы, но имеющие расширение *.bat (от английского «batch» - «серия, пачка, пакет, группа») или *.cmd. Правила написания таких пакетов называются консольным командным языком.

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

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

Cls – очистить экран консоли.

Rem комментарий – строка комментария в пакетном файле.

Echo строка – вывести на экран строку.

Echo. – вывести на экран пустую строку.

Echo off – начиная с данной команды отключить эхо-вывод исполняемых команд на период исполнения пакетного файла.

Echo on – включить эхо вывод.

Модификатор @ перед именем команды отключает эхо-вывод только этой команды. Например, @echo off .

Dir – вывести список папок и файлов текущей активной папки.

Del имя_файла – стереть файл.

Ren имя1 имя2 – переименовать файл с именем имя1 в имя2.

Диск: - сделать активным диск: .

Cd путь – на текущем активном диске сделать активной папку, на которую указывает путь.

Md имя_папки – создать папку внутри текущей активной.

Rd имя_папки – стереть внутри текущей активной папки пустую папку с именем_папки.

Pause – выводит приглашение «Нажмите любую клавишу» и приостанавливает выполнение пакетного файла до нажатия любой клавиши на клавиатуре.

Вызов пакетного файла производится как вызов обычной команды – вводом в командной строке имени пакетного файла, при этом расширение .bat можно не вводить. Интересно то, что из файлов имя.bat, имя.com и имя.exe одной папки приоритет вызова самый высокий именно у файла имя.bat.

Если вызывать пакетный файл с текстовыми параметрами, которые идут в строке после его имени, то эти параметры можно передавать внутрь пакета, используя их символические имена %1, %2 и т.д. К примеру, команда ML %1.asm пакетного файла с именем имя.bat подразумевает вызов программы ML, которая обработает файл, задаваемый первым параметром командной строки. Расширение имени обрабатываемого файла тут вводить не нужно, оно (.asm) присоединяется в самой команде. Значит, вызов

имя myprog

придаст нашей команде внутри пакетного файла вид ML myprog.asm, что и требовалось.

В пакетных файлах можно проверять некоторые условия. Можно проверять факт успешного или неуспешного завершения команды (программы) проверкой значения специальной системной переменной errorlevel. Если команда, вызванная непосредственно перед проверкой, завершилась успешно, то переменная errorlevel будет иметь значение 0, иначе 1, или, в более общем случае, не ноль. По итогам проверки можно выполнить любую допустимую команду или выполнить внутри пакетного файла переход на метку. Приведем пример с выполнением команды2:

команда1