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


ИСПОЛЬЗОВАНИЕ ОПЕРАТОРОВ ЯЗЫКА АССЕМБЛЕРА



Как вы знаете из урока 1, программисты могут создавать программы, используя широкий спектр языков программирования. Затем компилятор преобразует операторы программы в машинный код (нули и единицы), который понимает компьютер. Каждый тип компьютеров поддерживает промежуточный язык, называемый языком ассемблера, который попадает в категорию между машинным языком и языком программирования, таким как C++.

Язык ассемблера использует другие символы для представления инструкций машинного языка. В зависимости от назначения ваших программ, возможно, вам потребуется выполнить операции низкого уровня, для которых необходимо использовать операторы языка ассемблера. В таких случаях вы можете использовать оператор C++ asm длявстраивания операторов языка ассемблера в программу. Большинство создаваемых вами программ не потребуют операторов языка ассемблера. Следующая программа USE_ASM.CPP использует оператор asm, чтобы вставить операторы языка ассемблера, необходимые для озвучивания динамика компьютера в среде MS-DOS:

#include < iostream.h>

void main(void)

{
cout < < «Сейчас будет звонить! » < < endl;
asm

{
MOV AH, 2
MOV DL, 7
INT 21H
}

cout < < «Есть! » < < endl;
}

Как видите, используя оператор asm, программа комбинирует C++ и операторы языка ассемблера.

ЧТО ВАМ НЕОБХОДИМО ЗНАТЬ

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

1.

1. Помещение параметров в стек и переход к функции и из нее вносит издержки, из-за которых ваша программа выполняется немного медленнее.

2. Ключевое слово inlineзаставляет компилятор C++ заменять вызов функции эквивалентной последовательностью операторов, которые бы выполняла эта функция. Поскольку встроенные операторы избавляют от издержек на вызов функции, программа будет выполняться быстрее.

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

4. Ключевое слово asmпозволяет вам встраивать операторы языка ассемблера в программы на C++.

Как вы знаете, большинство команд, вводимых вами в ответ на системную подсказку, позволяют включать дополнительную информацию, такую как имя файла. Например, при использовании команды MS-DOS COPY для копирования содержимого одного файла во второй файл вы указываете в командной строке имена обоих файлов. Аналогично, если ваш компилятор основан на командной строке, вы должны включать имя вашего исходного файла при вызове компилятора. В этом уроке рассмотрены способы, с помощью которых ваши программы на C++ обращаются к аргументам командной строки. К концу данного урока вы освоите следующие основные концепции:

  • Программы на C++ трактуют аргументы командной строки как параметры функции main.
  • По традиции C++ передает два (иногда три) параметра в main, которые в большинстве программ называются argc и argv.
  • Параметр argc содержит количество аргументов командной строки, передаваемых в вашу программу.
  • Параметр argv представляет собой массив указателей на символьные строки, каждая из которых соответствует одному параметру командной строки.
  • В зависимости от компилятора ваши программы могут получить доступ к третьему параметру с именем env, который представляет собой массив указателей на символьные строки, указывающих на переменные среды.

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

ДОСТУП К argv И argc

Если вы запускаете программу из системной подсказки, командная строка, которую вы вводите, становится вашей командной строкой:

С: \> COPY SOURCE.DOC TARGET.DOC < ENTER>

В данном случае командная строка указывает команду (COPY) и два аргумента (имя файлов SOURCE. DOC и TARGET. DOC). Чтобы разрешить вашей программе доступ к командной строке, C++ передает два параметра в функцию main:

void main(int argc, char *argv[])

Первый параметр argc содержит количество элементов в массиве argv.Например, в случае предыдущей команды COPY параметр argc должен содержать значение 3 (он включает имя команды и два аргумента). Следующая программа SHOWARGC.CPP использует параметр argc для вывода количества аргументов командной строки:

#include < iostream.h>

void main(int argc, char *argv[])

{
cout < < «Количество аргументов командной строки равно » < < argc < < endl;
}

Выберите время для эксперимента с этой программой, вызывая ее с разным количеством параметров, как показано ниже:

С: \> SHOWARGC А В С < ENTER>

Количество аргументов командной строки равно 4

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

С: \> SHOWARGC «Это один аргумент» < ENTER>

Количество аргументов командной строки равно 2

Рис. 36. Массив argv указывает аргументы командной строки.

Второй параметр функции main с именем argv представляет собой массив указателей на символьные строки, которые содержат индивидуальные части командной строки. Например, рис. 36 иллюстрирует, как элементы массива argv могли бы указывать записи командной строки.

Следующая программа SHOWARGV.CPP использует оператор for для вывода элементов массива argv (командная строка программы). Программа запускается с первого элемента массива (имя программы) и затем выводит каждый элемент, пока значение переменной цикла не станет больше, чем argc:

#include < iostream.h>

void main(int argc, char *argv[])

{
int i;
for (i = 0; i < argc; i++) cout < < «argv[" < < i < < " ] содержит » < < argv < < endl;
}

Откомпилируйте и запустите эту программу, используя командную строку, подобную следующей:

С: \> SHOWARGV А В С < ENTER>

argv[0] содержит SHOWARGV.EXE

argv[l] содержит А

argv[2] содержит В

argv[3] содержит С

Доступ к аргументам командной строки

Для увеличения количества задач, выполняемых программой, C++ позволяет вашей программе обращаться к аргументам командной строки, используя два параметра, которые C++ передает в main. Первый параметр argc содержит количество аргументов командной строки (включая имя программы). Второй параметр argv представляет собой массив указателей на символьные строки. Каждая символьная строка соответствует аргументу командной строки. Чтобы обратиться к аргументам командной строки, измените заголовок функции main, как показано ниже:

void main(int argc, char *argv[])


Поделиться:



Популярное:

  1. III. Вид работы: «Использование информационной базы данных»
  2. V. Использование психодиагностических методик
  3. Аварийные радиобуи EPIRB, SART. Назначение, использование, эксплуатационные проверки.
  4. Активное использование речевых средств и средств информационно- коммуникационных технологий (далее – ИКТ) для решения коммуникативных и познавательных задач.
  5. Анализ рентабельности собственного капитала. Использование модели Дюпона в финансовом управлении.
  6. Анализ товарооборота, его использование для характеристики показателей деятельности
  7. Ассортимент полуфабрикатов и их использование
  8. Базы данных. Использование ЭВМ для хранения неструктурированной (текстовой) информации. Информационно-поисковые системы.
  9. Беседа с использованием проективных заданий («Зазеркалье») (адаптированная методика Е.И.Изотовой).
  10. Взгляды и мнения на использование фотомонтажа в фотожурналистике.
  11. ГЛАВА 5. ИСПОЛЬЗОВАНИЕ ИНТЕРНЕТА В ТУРИСТСКОМ БИЗНЕСЕ
  12. Государственный контроль за использованием и воспроизводством лесных ресурсов.


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


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