Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методички к 78К0 / Лаба1-78К0.doc
Скачиваний:
89
Добавлен:
12.03.2015
Размер:
1.61 Mб
Скачать

3.6 Просмотр окна ввода-вывода (Terminal I/o)

Часто возникает необходимость отладить конструкции в вашем коде, которые используют «stdin» и «stdout» (стандартные функции ввода-вывода) при отсутствии аппаратных средств.

То есть симулировать работу с внешними устройствами ввода-вывода.

Окно “Terminal I/O” доступно только в C-SPY если вы компоновали вашу программу используя включенную опцию «With I/O emulation modules»,

настройки «With» в закладке «Output» опций компоновщика.

(см. п 2.6 Компоновка программ, стр.11 )

Для открытия окна “Terminal I/O” воспользуйтесь командой View>Terminal I/O . Вид окна представлен на рисунке 22.

Рисунок 23 – Информационное окно отладчика.

Рисунок 22 – Окно содержимого буфера ввода-вывоа.

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

3.7 Достижение конца программы.

Чтобы завершить выполнение вашей программы, выберите, Debug> Go.

Или нажмите кнопку в панели инструментов.

Сообщения о ходе выполнения программы, контрольных точках и достижения конца программы, будут отображаться в окне “Debug Log”, как показано на рисунке 23.

Если Вы хотите запустить программу снова, выберите команду Debug> Reset в верхнем меню, или нажмите кнопку в панели инструментов.

Чтобы выйти из C-SPY , выберите команду Debug>Stop Debugging в верхнем меню или нажмите кнопку в панели инструментов.

4. Соединение программных модулей на языках с и ассемблера.

В некоторых проектах бывает необходимо написать некоторые части программы на языке ассемблера. При написании подпрограммы на языке ассемблера, которую будет вызывать программа на языке С, необходимо знать о соглашении о вызовах, используемом компилятором. В этом примере Вы воспользуетесь функцией компилятора , которая создаст выходной файл ассемблера из файла “Utilities.c”.

Создайте новый проект в рабочем пространстве “tutorials” , используемом в предыдущих главах, и назовите проект project2. Добавьте файлы "Tutor.c" и "Utilities.c" к проекту.

Для того чтобы отображался краткий обзор рабочего пространства, нажмите закладку Overview, расположенную внизу окна рабочего пространства. Чтобы видеть только недавно созданный проект, нажмите закладку project2. Для данного этапа, окно project2 должно быть активным.

Чтобы установить настройки, выберите Project> Options, и выберите категорию Общих параметров (General Options).

Выберите Project> Options. Обратите внимание, что доступны только C/C++ Compiler и Custom Build категории .

В категории "C/C++ Compiler", выберите "Override inherited settings" и проверьте следующие параметры настройки, согласно таблице 2:

Таблица 2 – Настройки C/EC++ compiler.

Закладка

Настройки

Code

Size: None

List

Output assembler file

Include source

Include compiler runtime information (должно быть отключено).

В этом примере необходимо использовать низкий уровень оптимизации при компилировании кода, чтобы показать компилятору доступ к местной и глобальной переменной. Если используется более высокий уровень оптимизации, требуемые ссылки на местные переменные могут быть удалены. Фактическое функциональное объявление не изменено уровнем оптимизации.

Нажмите «ОК», чтобы вернутся к окну рабочего пространства.

Откомпилируйте файл "Utilities.c". После этого выходной файл “Utilities.s26” будет находиться в подкаталоге projects\debug\list. Для того чтобы убедиться, как компилятор создал файл на языке ассемблера, по исходному коду на зыке С, откройте файл Utilities.s26. Исследуйте этот код и посмотрите где и как вызываются подпрограммы и функции ассемблера, и как осуществляется выход из них.

Соседние файлы в папке методички к 78К0